•功能重叠,选择困难:如果你同时给了 AI 一个search_jira和一个find_issue_in_jira的工具,它可能就要当场“死机”了。因为它不知道这两个功能相似的工具该用哪个。最好的做法是使用命名空间,比如把工具命名为jira.search_issue和asana.search_task,这样 AI 就能清晰地知道不同工具的服务边界。
•返回一堆“天书”:工具执行完,返回给 AI 一大堆计算机才看得懂的uuid或者内部 ID,这不仅浪费了宝贵的“注意力预算”,还让 AI 难以理解。一个好的工具,应该返回人类可读的name,并且可以提供 “简洁模式 (concise)” 和 “详细模式 (detailed)” 的选项。这样,AI 就可以只在需要时才去获取那些技术细节,平时则用最少的信息来做判断。
简单来说,设计工具的原则和管理上下文一样:用最清晰、最高效的方式,给 AI 提供决策所需的最少信息。好的工具能让 AI 把注意力集中在解决问题上,而不是猜测你的工具到底该怎么用。
3. 少样本提示 (Few-shot)
用示例(Few-shot Prompting)来教 AI 是个好办法。但很多人会在这里犯错,他们恨不得把所有想到的极端情况都写成例子塞给 AI。
Anthropic 说,这完全是反效果。
正确的做法是,精心挑选几个多样化、有代表性的经典案例。对 AI 来说,一个好的例子,就是一张胜过千言万语的图片,能让它迅速领悟到我们期望的行为模式。
1.压缩 (Compaction):当对话快要超出限制时,让 AI 自己把前面的聊天记录做个总结,提炼出关键信息,然后带着这个“会议纪要”开始新的对话。
2.结构化笔记 (Structured Note-taking):让 AI 学会自己记笔记。比如,在做一个复杂项目时,它可以随时把重要发现、待办事项写在一个外部的NOTES.md文件里。需要的时候再拿出来看,这样就不会忘记关键信息。
3.子智能体架构 (Sub-agent Architectures):把一个大任务,分包给几个“专家” AI。比如一个“资料搜集员”,一个“代码分析师”,一个“报告撰写员”。主 AI 负责统筹,各个子 AI 专注于自己的领域,最后把结果汇总。这样既高效,又不会让主 AI 的“脑子”过载。这个就是 Claude Code 的 Subagents。
下次当你的 AI Agent 表现不佳时,别再只去折腾 Prompt 了。去看看它的上下文里,是不是塞了太多垃圾信息,或者缺少了关键的指引。