用Claude Code经验告诉你:别只盯着 Prompt,上下文才是生死线!
即使Prompt编写得再出色,AI助手有时仍会表现出困惑,例如遗忘先前的对话、误解指令,或在处理复杂任务时彻底“掉线”。
这不是错觉。
创造了Claude的Anthropic公司发布了一篇有关提示词和上下文的重磅指南,一针见血地指出了问题的根源。该指南指出,AI发展的下一个阶段,核心已不再是“提示词工程 (Prompt Engineering)”,而是“上下文工程 (Context Engineering)”。Claude Code的设计也遵循这些规则,理解这些内容有助于AI Agent设计。
简单来说,决定AI Agent智能与否的关键,已从“如何提问”,转变为“提供何种信息”。
告别 Prompt,欢迎来到“上下文”!
过去,普遍专注于Prompt的编写技巧,力求AI能够准确理解指令。这类似于学习一门新外语,努力使表达更清晰。
然而,Anthropic指出,这条路径已接近瓶颈。
因为AI Agent正在处理日益复杂的任务,不再是简单的问答模式。它需要像人类一样,能够联系上下文,进行多步骤的思考和行动。
此时,仅优化Prompt就像只要求员工“好好听话”,却不提供工作所需的资料和背景信息,即使指令再清楚,也难以高效完成任务。
“上下文工程”正是解决此问题的关键。它研究的是,在AI执行任务的每一步中,应为其提供哪些最关键、最有效的信息。这些信息构成了AI的“工作记忆”。
Prompt仅是输入的一部分。而上下文,则包含了系统指令、工具、MCP、外部数据、历史对话等AI当前能够看到的所有信息。有效管理这些信息,才是提升AI智能性的核心。

示意图:Prompt只是上下文冰山一角
AI “注意力” 是有限的
或许有人会问,信息不是越多越好吗?将所有资料都提供给AI是否可行?
恰恰相反。
研究发现,当AI的上下文窗口(Context Window)中的信息量增加时,其表现会随之下降。这种现象被称为“上下文腐烂 (Context Rot)”。
这与人类的认知过程类似。设想处理一个重要项目时,若有人不断在耳边重复无关信息,注意力会分散,工作效率将大打折扣。
AI也存在“注意力预算 (Attention Budget)”。每一个进入上下文的信息都会消耗其注意力。信息过载会导致AI出现“脑雾”现象,难以抓住重点,甚至遗忘最初的目标。
因此,上下文工程的核心原则是:用最少、最高效的信息,促使AI做出最正确的决策。
打造一个好的上下文,Anthropic 给出的三条规则
既然上下文如此重要,应如何有效管理?Anthropic提供了三个简单实用的建议。
1. 系统提示 (System Prompts)
系统提示是为AI设定规则的环节。这里的编写应如同优秀的领导者,目标明确,指令清晰,同时给予执行者自主发挥的空间。
- •过于死板:若采用大量if-else逻辑将AI的每一步都固化,它将变得脆弱,一旦遇到新情况便会“死机”。
- •过于模糊:若仅给出“要智能一点”等模糊指令,AI将无从下手。
最佳实践是,采用清晰的语言,如Markdown标题或XML标签,将指令划分为不同模块,例如<background_information>(背景信息)、<instructions>(操作指令)、## 输出格式。这样AI便能一目了然。
2. 工具 (Tools)
提供给AI的工具,本质上是一种全新的软件。它不再是传统代码中输入A必须输出B的确定性模式。它代表着确定性系统(开发者的代码)与不确定性智能体(AI)之间的一份合约。
这份合约的优劣直接决定了AI的办事效率。Anthropic发现,最令AI感到“头痛”的工具,通常具有以下几个共同问题:
- •命名模糊,需猜测含义:例如,一个工具参数名为
user。该user究竟是指用户ID、用户名还是邮箱地址?人类尚需猜测,AI则更容易出错。一个规范的参数名应为user_id或user_email,清晰明确。 - •功能重叠,选择困难:若同时为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而言,一个好的例子如同胜过千言万语的图片,能使其迅速领悟期望的行为模式。
三种更高级玩法
对于需要数小时甚至更长时间的超长任务,例如迁移大型代码库,AI的上下文窗口显然不足以应对。如何解决?
Anthropic提出了三种更高级的策略:
- 1.压缩 (Compaction):当对话即将超出限制时,让AI自行总结先前的聊天记录,提炼关键信息,然后带着这份“会议纪要”开始新的对话。
- 2.结构化笔记 (Structured Note-taking):让AI学会自主记笔记。例如,在处理复杂项目时,它可以随时将重要发现、待办事项记录在一个外部的
NOTES.md文件里。需要时再查阅,从而避免遗忘关键信息。 - 3.子智能体架构 (Sub-agent Architectures):将一个大型任务分解,分配给多个“专家”AI。例如,“资料搜集员”、“代码分析师”、“报告撰写员”。主AI负责统筹,各子AI专注于各自领域,最终汇总结果。这种方法既高效,又避免了主AI的“认知”过载。这正是Claude Code的Subagents理念。
下次当AI Agent表现不佳时,不必再仅仅专注于Prompt的调整。应检查其上下文,是否存在过多冗余信息,或缺少关键指引。
