Solon v3.9.3

agent - 身份、指令与输出属性

</> markdown
2026年2月2日 下午5:57:14

1、name、role、profile、instruction 身份属性

name,role,profile 和 instruction 是极为关键的属性。

属性默认值描述
namereact_agent身份标识(必须团队内唯一)
role 角色职责,表达:我是什么人?能干什么?
profile/档案画像,加入团队协作时,告诉队友我的详细档案
instruction 核心指令,表达:我要注意什么?或做什么?。支持 #{xxx} 模板形式

示例:

// 客户验证专员:身份真实性核查
ReActAgent customerValidator = ReActAgent.of(chatModel)
        .name("customer_validator")
        .role("身份验证与行为分析专家(负责验证用户身份的真实性与一致性)")
        .instruction("### 验证规则\n" +
                        "1. 检查实名认证状态。\n" +
                        "2. 对比收货地址与注册地址的偏移度。\n" +
                        "3. 如果是代收货人,需提高警惕级别。")
        .build();

2、、outputKey、outputSchema 输出控制属性

属性默认值描述
outputKey/输出答案的同时,也输出到 FlowContext(方便后续流程节点获取)
outputSchema/要求根据 JsonSchema 描述,输出 json 数据。(支持 string 或者 type 配置)

outputKey (一般在团队协作时用)示例:

ReActAgent translator = ReActAgent.of(chatModel)
        .name("translator")
        .outputKey("translate_result")
        .role("翻译官")
        .instruction("直接输出译文,不要任何前缀解释。")
        .build();

ReActAgent polisher = ReActAgent.of(chatModel)
        .name("polisher")
        // 核心:框架自动解析 #{translate_result} 并替换为 Session 中的值
        .role("润色专家")
        .instruction("请对这段译文进行优化:#{translate_result}")) //一般没有必要用模板(团队协作时,会自动传递)
        .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)
                .role("你是一个高精度信息提取专家")
                .instruction("从文本中提取关键实体,严格遵守 JSON Schema 规范。")
                .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);