维度 | CodeAgent | ToolCallingAgent |
|---|---|---|
行动表达方式 | 可执行 Python 代码 | JSON 结构化工具调用 |
单步操作能力 | 多工具组合、循环、条件 | 每次调用单一工具 |
状态管理 | 变量跨步骤持久化 | 无内置变量持久化 |
模型要求 | 需具备代码生成能力 | 需具备函数调用能力 |
基准表现 | 在多工具任务上更优 | 传统范式,兼容性更好 |
CodeAgent 是 smolagents 的默认和旗舰 Agent 类型。当任务涉及多工具组合、数据转换、数值计算或需要保留中间状态时,CodeAgent 通过代码表达可以显著减少步骤数和模型调用次数。研究表明,相比 JSON 工具调用,代码方式可减少约 30% 的步骤,并在 GAIA 等复杂规划基准上取得更好的性能。
ToolCallingAgent 适用于以下情况:
总体而言,除非有特定的兼容性或格式需求,建议优先使用 CodeAgent。