在构建智能体工具集的过程中,如何设计高效的动作空间始终是核心挑战之一。以Claude为例,其通过工具调用实现操作,开发者可通过bash、skills或代码执行等原语构建工具,但面对数十种潜在工具选项时,如何平衡功能覆盖与使用效率成为关键问题。这一过程如同为数学家配备解题工具:纸张虽基础但计算效率低,计算器提升速度却依赖操作技能,而计算机结合代码能力则能释放最大潜力。设计智能体工具的本质,正是为其匹配与其能力相适配的"计算设备"。
在Claude Code开发过程中,团队通过持续迭代优化工具设计。初期为提升启发式提问能力,曾尝试三种方案:首先在ExitPlanTool中添加问题参数,但导致计划与提问逻辑冲突;随后改用修改版Markdown格式输出问题,虽通用性强却缺乏稳定性;最终开发的AskUserQuestion工具通过模态框实现结构化交互,既确保多选项输出,又支持在SDK或技能中复用。这一工具的成功关键在于让Claude自然掌握调用时机,而非单纯追求技术完美。
随着模型能力进化,工具需求呈现动态变化特征。初代TodoWrite工具通过待办列表维持模型运行,但系统提醒反而限制了Opus 4.5等新版模型的灵活性。升级后的任务工具引入依赖关系管理和子智能体协调机制,将工具定位从"维持运行"转向"促进沟通"。这种转变印证了工具设计需随模型能力同步迭代的规律——当模型具备修改上下文能力时,固定式待办列表反而成为桎梏。
搜索工具的演进路径更具启示性。早期RAG向量数据库虽能快速提供上下文,但存在环境脆弱性问题。引入Grep工具后,Claude获得自主搜索代码库的能力,配合技能系统实现的渐进式披露机制,使模型能通过递归探索构建多层上下文。这种从被动接收上下文到主动构建环境的转变,使Claude在一年内实现从简单文件检索到复杂嵌套搜索的能力跃迁。
面对工具膨胀风险,开发团队采用动态披露策略优化动作空间。针对用户对MCP配置等冷门问题的咨询,既未将冗长文档注入系统提示,也未开发专用工具,而是通过指南子智能体实现按需调用。该子智能体经过特殊训练,能精准定位文档关键信息并返回简洁答案,在保持主工具集精简的同时,将相关知识动态注入动作空间。这种设计使Claude Code在维持20个核心工具的情况下,仍能持续扩展功能边界。
工具设计本质是模型能力、任务目标与环境约束的三角平衡艺术。从启发式提问到自主上下文构建,从固定待办列表到动态任务协调,从全量文档注入到按需知识披露,Claude Code的演进轨迹表明:最优工具集永远处于流动状态。开发者需要持续观察模型行为、实验不同方案,在科学方法与艺术直觉的交织中寻找动态平衡点。

