Solon v3.8.3

agent - 关键属性

</> markdown
2026年1月14日 下午5:07:26

1、name、title、description、systemPrompt

name,description,systemPrompt 是极为关键的属性。

属性默认值描述
namereact_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);