agent - 关键属性
2026年1月14日 下午5:07:26
1、name、title、description、systemPrompt
name,description,systemPrompt 是极为关键的属性。
| 属性 | 默认值 | 描述 |
|---|---|---|
| name | react_agent | 加入团队协作时,身份标识(必须团队内唯一) |
| title | / | 标题方便管理显示 |
| description | / | 加入团队协作时,给告诉团队我是谁?干什么的?(单独使用,可省略)。支持 #{xxx} 模板形式 |
| systemPrompt | 定义自己我是谁,干什么的?支持 #{xxx} 模板形式 |
示例:
// 客户验证专员:身份真实性核查
ReActAgent customerValidator = ReActAgent.of(chatModel)
.name("customer_validator")
.description("身份验证与行为分析专家")
.systemPrompt(ReActSystemPrompt.builder()
.role("你负责验证用户身份的真实性与一致性")
.instruction("### 验证规则\n" +
"1. 检查实名认证状态。\n" +
"2. 对比收货地址与注册地址的偏移度。\n" +
"3. 如果是代收货人,需提高警惕级别。")
.build())
.build();
systemPrompt 的两个属性:
| 属性 | 默认值 | 描述 |
|---|---|---|
| role | 角色定义 | 表达:我是什么人?如:我是个程序员 |
| instruction | 核心指令 | 表达:我要注意什么?或做什么? |
2、、outputKey、outputSchema 输出控制
| 属性 | 默认值 | 描述 |
|---|---|---|
| outputKey | / | 输出答案的同时,也输出到 FlowContext(方便后续流程节点获取) |
| outputSchema | / | 要求根据 JsonSchema 描述,输出 json 数据。(支持 string 或者 type 配置) |
outputKey (一般在团队协作时用)示例:
ReActAgent translator = ReActAgent.of(chatModel)
.name("translator")
.outputKey("translate_result")
.systemPrompt(ReActSystemPrompt.builder()
.role("翻译官")
.instruction("直接输出译文,不要任何前缀解释。").build())
.build();
ReActAgent polisher = ReActAgent.of(chatModel)
.name("polisher")
// 核心:框架自动解析 #{translate_result} 并替换为 Session 中的值
.systemPrompt(ReActSystemPrompt.builder()
.role("润色专家")
.instruction("请对这段译文进行优化:#{translate_result}")
.build())
.outputKey("final_result")
.build();
TeamAgent team = TeamAgent.of(chatModel)
.name("template_team")
.addAgent(translator, polisher)
.protocol(TeamProtocols.SEQUENTIAL)
.build();
outputSchema 示例:
ReActAgent extractor = ReActAgent.of(chatModel)
.systemPrompt(ReActSystemPrompt.builder()
.role("你是一个高精度信息提取专家")
.instruction("从文本中提取关键实体,严格遵守 JSON Schema 规范。")
.build())
.outputSchema(Personnel.class) //或 "{\"entity_name\": \"string\", \"birth_year\": \"integer\", \"title\": \"string\"}")
.build();
Personnel personnel = extractor.prompt("伊隆·马斯克,1971年出生,现任特斯拉CEO。")
.call()
.toBean(Personnel.class);
System.out.println("人名: " + personnel.entity_name);