react - ReActAgent 调用与选项调整
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) | 设置自定义扩展选项 | 用于透传给特定模型参数选项。 |