Solon v3.9.3

react - ReActAgent 调用与选项调整

</> markdown
2026年1月28日 下午5:20:48

ReActAgent 的调用采用流式 API 设计,通过 options(Consumer<ReActOptionsAmend>) 可以对单次对话进行深度的行为控制。

1、调用时选项调整示例

agent.prompt("帮我分析一下这个项目的代码质量")
     .session(mySession) 
     .options(o -> o.maxSteps(10)          // 增加推理步数
                    .planningMode(true)    // 开启规划模式
                    .temperature(0.7)      // 调整模型温度
                    .skillAdd(new CodingSkill())) // 临时挂载技能
     .call();

2、可用选项说明 (ReActOptionsAmend)

选项分为 ReActAgent 运行控制、模型参数控制、能力挂载(工具/技能) 以及 扩展配置 四大类。

A. 运行控制

这些选项直接影响 ReActAgent 循环的深度、容错和逻辑流转。

部分方法说明默认值 / 备注
maxSteps(int)设置单次任务最大推理步数默认 10。防止 Agent 进入死循环。
retryConfig(int, long)设置重试次数及延迟(毫秒)默认 3次 / 1000ms。
sessionWindowSize(int)设置会话回溯窗口大小默认 8。控制短期记忆的深度。
outputSchema(String)约束输出格式 (JSON Schema)强迫 Agent 输出符合特定结构的字符串。
planningMode(boolean)是否开启规划模式开启后 Agent 会在 Action 前先生成 Plan。
planningInstruction(text/fn)自定义规划阶段的指令支持静态字符串或 Lambda 动态生成。
feedbackMode(boolean)是否开启反馈模式允许 Agent 主动调用 feedback 工具寻求人工介入。
feedbackDescription(fn)自定义反馈工具的描述引导 Agent 什么时候该寻求反馈。

B. 模型基础参数 (ModelOptions)

底层大模型的通用配置。

部分方法说明默认值 / 备注
temperature(double)控制随机性(0.0-2.0)o.temperature(0.5)
max_tokens(long)限制生成的总 Token 数o.max_tokens(2000)
top_p(double)核采样控制o.top_p(0.9)
response_format(map)强制响应格式如 json_object
user(String)传递终端用户标识用于服务商侧的安全审计

C. 能力挂载 (Tools & Skills)

用于动态为当前调用增加或减少“手脚”。

部分方法说明默认值 / 备注
toolAdd(Object)添加本地 Java 对象工具自动扫描 @ToolMapping 注解方法。
toolAdd(FunctionTool)添加函数工具描述实例手动构建的工具描述。
skillAdd(Skill)挂载 AI 技能单元聚合了指令、工具和准入检查。

D. 扩展与拦截

部分方法说明默认值 / 备注
toolContextPut(key, val)注入工具执行上下文会成为 FunctionTool 参数的一部分。
interceptorAdd(interceptor)添加 ReActInterceptor 拦截器可在推理步骤前后插入自定义审计或修改逻辑。
optionSet(key, val)设置自定义扩展选项用于透传给特定模型参数选项。