1. 基本执行流程
smolagents 中的 CodeAgent 和 ToolCallingAgent 均继承自 MultiStepAgent,遵循 ReAct(Reason → Act → Observe)循环范式。Agent 接收用户任务后,在每一步中由大语言模型生成行动指令,框架执行后将结果作为观察反馈给模型,循环往复直至任务完成或达到最大步数限制。
2. 步骤类型与状态流转
Agent 的执行过程由多种步骤类型构成:
- TaskStep:记录用户的初始任务输入
- ActionStep:包含模型的输出、工具执行结果和观察信息
- PlanningStep:当启用规划功能时,记录模型的策略总结
- FinalAnswerStep:Agent 完成任务后返回的最终答案
所有步骤按顺序存储在 AgentMemory 对象中,构成完整的执行轨迹。
3. 终止条件
循环在以下三种情况下终止:
- 模型通过 final_answer 工具或匹配的工具调用产出最终答案
- 当前步数达到 max_steps 设定的上限,抛出 AgentMaxStepsError
- 模型返回无效代码或工具调用且重试失败,抛出相应的解析或执行错误