执行循环在源码中可见
BaseAgent、ReActAgent、DynamicAgent 分别管理轮次、思考 / 动作和工具执行。普通工具可并行,人工表单等路径有串行处理。
机制参考 · 按需阅读 / 读工具执行循环
跟着 Java 代码读懂“想一步、做一步、再看结果”
适合补执行引擎机制:模型如何提出工具调用,工具结果如何回到下一轮,何时并行、何时等待人。建议只抽取一个小业务,不照搬全部浏览器和办公工具。
JDK 17 · Spring Boot 3.5.6 · Spring AI 1.1.2 · 手写 ReAct 执行循环
提交 27ead6adaf501b87333f04844f539bf278c2448a
仓库许可证标识:Apache-2.0(读取该 SHA 的 LICENSE)。本页介绍所读版本,未保证未来版本保持相同行为。
CompletableFuture 与并发DashScope 或其他兼容模型的 Key/额度,真实模型调用可能付费。MySQL/PostgreSQL 是可选配置,不是全部必需。v4.7.0 与本次源码 pom4.10.12 不同,学习时固定 commit,不混用不同版本说明。已经在源码中读到
需要自己补齐或验证
建议改造 · 不是原仓库成绩
按顺序完成最小闭环,再增加难度。只把真正实现并测过的部分写进简历;如果声明支持恢复或并发,就补对应的故障实验。
两个只读工具加一个模拟工单写入工具;明确每个工具的执行权限。
只允许独立只读工具并行;写工具用业务幂等键和批准记录。
相同任务比较固定流程与自由工具循环。
每读一步,画一条调用关系,写下输入、状态变化和失败出口。无需先把整个仓库读完。
src/main/java/com/alibaba/cloud/ai/lynxe/runtime/executor/DynamicToolPlanExecutor.javasrc/main/java/com/alibaba/cloud/ai/lynxe/runtime/service/ExecutionSnapshotService.java先用自己的实现和实验回答,再对照源码。只背术语,很难解释异常情况。
selectedToolKeys 中,还需要服务端授权与参数校验?maxSteps 耗尽该算成功吗?给用户的状态和内部失败原因怎样对应?CompletableFuture.allOf 或并行工具中一个失败,其他工具怎么办?源码链接是阅读证据;改造建议是待完成任务。二者都不等于完整系统运行证明。