上下文工程:让 AI Agent 稳定工作的关键

翻译:Transwan 校对:Carl Cui 如果你经常使用 AI Agent,大概率碰到过这种情况:任务刚开始的时候,agent 表现得很好,能理解目标,也能选对工具,前几步推理看起来都在正轨上;但跑到第十几步、二十几步之后,质量开始变得不稳定,它可能忘了最初的要求,开始调用一些没必要的工具,或者输出明显变得粗糙。 很多人的第一反应是模型不够强,但在 Agent 场景里,问题往往不在模型本身,而在它在执行过程中看到了什么、忘掉了什么,以及被哪些无关信息干扰了。 这就是上下文工程要解决的问题,组织模型所看到的内容被称为上下文工程。过去我们谈提示词工程,关注的是如何写好一段初始指令;现在我们构建 Agent,要关心的是如何管理模型在每一步能看到的全部信息。一个可靠的 Agent,不只有一个好 prompt,而是有一套能够持续运转的工作记忆系统。 1. 什么是上下文工程,为什么 Agent 特别需要它 提示词工程解决的是“怎么把任务说清楚”。比如角色怎么设定,目标怎么描述,输出格式怎么约束,示例怎么给。这在普通聊天场景里很有效,因为聊天机器人通常只是在回答一个问题。但 Agent 不一样,它会连续执行动作,会浏览网页、调用 API、读取文件、写代码、运行命令,并根据中间结果继续做下一步决策。每一次工具调用、每一段检索结果、每一次对话历史,都会成为模型下一步推理时可能看到的上下文。 所以,上下文工程不是提示词工程的替代品,而是它在 Agent 时代的扩展。Anthropic 对这个概念的定义很直接:上下文是你从 LLM 中采样时包含进去的 token 集合;上下文工程,就是优化这些 token 的效用,让模型持续得到我们想要的结果。换句话说,关键不是把更多东西塞进窗口,而是在正确的时间、以正确的形式,让模型看到真正有用的信息。 可以把模型想象成 CPU,把上下文窗口想象成 RAM。CPU 再强,如果内存里塞满了无关内容,程序也会变慢、变乱。Agent 也是一样。上下文窗口一旦被大量工具输出、历史对话、过期信息和重复内容占满,模型的推理质量就会下降。这个过程通常不是到了上下文上限才突然发生,而是在窗口还远没有填满时就已经开始退化。 这类现象常被称为 context rot,也就是上下文腐烂。Chroma 的研究测试了多个前沿模型,发现随着输入长度增加,模型表现会变得越来越不稳定。另一个经典问题叫 Lost in the Middle:模型更容易使用上下文开头和结尾的信息,中间的信息反而容易被忽略。对 Agent 来说,这尤其危险,因为最初的任务目标、约束和关键背景,可能在几十步之后被大量工具输出埋到中间。模型虽然“看得到”,但实际上已经不怎么用它了。 一个 Agent 的上下文通常也远不止用户的一句话。它至少可能包含七类内容:系统提示、工具定义、工具调用结果、检索到的知识、对话历史、短期和长期记忆,以及 Agent 当前的状态。系统提示定义 Agent 的身份、边界、任务流程和工具使用原则;工具定义告诉模型每个工具能做什么、参数是什么、什么时候该用;工具调用结果可能是网页全文、文件内容、命令输出或 API 返回值;RAG 系统会把检索到的文档片段塞进来;对话历史记录之前发生过什么;记忆系统加入用户偏好和历史经验;Agent 状态里还有当前计划、待办事项、已完成步骤和草稿笔记。 这些内容都在争夺同一个上下文窗口。如果不加管理,窗口迟早会被填满,而且不一定是被有价值的信息填满。很多长任务 Agent 到后面变得敷衍,并不是它突然变笨了,而是它的工作记忆被污染了。 2. 四个核心策略:写入、选择、压缩、隔离 最有效的方式是把上下文工程拆成四个动作:写入、选择、压缩和隔离。这四个词看起来简单,但基本覆盖了 Agent 上下文管理的大多数问题。 ...

June 8, 2026 · 2 min · Marina Wyss

提示词工程:与 AI 对话的艺术

作者:Amar Chetri 译者:Carl Cui 跟 AI 对话的时候,你可能试过各种不同的语气,礼貌式的、命令式的,甚至是祈求式的。但是不知道为什么,AI 给出的答复总是不能令人满意。问题可能不在于 AI,而是在于你跟它对话的方式。 我们都有过这样的经历:打开 ChatGPT、DeepSeek 或 Gemini,带着一个绝妙的想法,输入问题,按下回车,然后 AI 的回复要么是泛泛之谈,要么存在事实错误,要么完全偏离了主题。你叹了口气,觉得这个 AI 简直笨得离谱,然后关掉浏览器。 资深的 AI 用户基本都能意识到这样的真相:LLM 不是魔法,而是“镜子”,它反映了你输入的质量。如果你从 AI 那里得到的输出质量不高,那很可能是因为输入的内容需要改善。 这就是所谓的 prompt engineering,提示词工程可以把那些拿 AI 当噱头的人和那些把 AI 作为生产力工具的人区分开来。这篇文章中,我们会教你如何构建合适的 prompt,来提高 AI 生成内容的质量。 1. 黄金法则:上下文为王 在深入探讨提示技巧之前,你需要理解一个基本原则:LLM 不记得你的生活、你的项目或你的偏好,除非你告诉它们。 当你问一个模糊的问题时,AI 的回复基本上是它所读过的关于该主题所有内容的平均值。它生来就是泛泛而谈的,你需要提供上下文,以此把它庞大的知识库缩小到正好是你需要的内容。 输出的质量与输入的质量直接相关,泛泛的提示只会产生泛泛的结果。 想象一下,你不会这样问一个人类专家:“告诉我关于营销的事情”。他们不知道从哪里开始,你可能会这样问:“我经营一家小面包店,预算只有 500 美元。这个周末我可以用什么营销策略来增加客流量?”。类似地,AI 也需要这种具体性。 2. 完美提示词的结构 在分析了数千个高效提示后,研究人员和资深用户发现了一种始终有效的结构,下面我们逐一拆解。 2.1 角色:给 AI 一个身份 提示中最强大的一句话是:“扮演……” 通过给 AI 分配一个角色,能立即缩小它的回复风格和知识库范围。 不好的提示:“为咖啡杯写一个产品描述。” 好的提示:“扮演一位获奖的生活方式品牌文案作家,为咖啡杯写一个产品描述。” 两个提示之间有天壤之别。AI 给第一个提示的回复大概会列出咖啡杯的特性,例如容量、陶瓷材质;而给第二个提示的回复更能从早晨的仪式感、入手的分量、精湛的工艺这些角度去激发潜在消费者的购买欲。AI 可以生成多种风格的回复,角色则告诉它使用哪一种风格。 2.2 任务:清楚说明你的目标 要明确你想要什么,而不是让 AI 去猜。 不好的提示:“告诉我法国大革命的事情。” 好的提示:“用 10 岁孩子能理解的方式解释法国大革命的三个主要原因。” 注意到这两个提示的区别了吗?第二个提示包含了一个限制(三个主要原因)和一个受众(10 岁孩子)。这迫使 AI 优先考虑并简化,而不是给你扔出一整章教科书般的内容。 ...

April 24, 2026 · 2 min · Amar Chetri

理解 AI Agent:动手搓一个就懂了

进入 2026 年,AI Agent 越来越频繁地出现在我们的视野里,那到底什么是 AI Agent? 举个例子,3 月份爆火的 OpenClaw “小龙虾”,本质上是一个 AI Agent;开发人员最常用的 AI 辅助编程工具 Claude Code 和 Codex,本质上也是 AI Agent。OpenClaw 和 Claude Code 功能全面,代码量也庞大。这篇文章,我们会一步一步构建一个最小版本的编码 Agent,以此建立对 AI Agent 的直观感受。 1. 四步构建法 文章按照下面 4 个步骤来构建 agent: 接入 LLM; 添加工具; 构建 agent 循环; 构建对话循环; 不论实现的 agent 执行什么任务,都可以采用这样的 4 个步骤来构建。 2. 实现编码 Agent Agent 可以使用我们熟悉的任何语言来实现,例如 TypeScript,Python,Rust 等等,只要它接入 LLM 方便,可以调用 shell 命令工具就行。这里我们选择 Python。 完整的示例代码已经上传到 GitHub,链接在文章后面 2.0 项目设置 # 如果没有安装 uv,先安装它 pip install uv # 初始化 uv 环境 uv init 2.1 接入 LLM LLM 选择了 Kimi,Kimi 开放平台 注册的账号在完成个人认证后会收到 15¥ 赠送额度,拿来演示够用了。Kimi 开放平台兼容 OpenAI 协议,可以直接使用 OpenAI SDK 接入。 ...

April 22, 2026 · 6 min · Carl Cui

如何编写真正有效的 AI Agent Skill:SKILL.md 模式详解

作者:Bibek Poudel 译者:Carl Cui 如果你写的 skill 没有触发,问题基本上都出在元数据的 description 部分,而不在 skill 内容本身。 不少人都有类似的经历:写了一个 SKILL.md,将其放在正确的文件夹中,要求 agent 使用它,但是啥反应也没有。修改了 skill 内容,仍然没有效果。问题从来不是 skill 本身的内容,而是 agent 用来决定是否激活它开头的那两行。 在本指南中,我先讲解 Agent Skills 工作原理,指出为什么大多数人会写错,然后从简单到复杂构建四个 skill:一个 README 编写器、一个 git 提交消息生成器、一个代码审查器和一个完整的 MCP 驱动的冲刺规划器。 什么是 Agent Skill? Skill 不是插件,也不是访问 API 的脚本。我们可以把它当作为团队新成员编写的入职指南。与其在每次跟 agent 对话时重新解释你的工作流程和偏好,不如将它们打包起来丢给 agent,让它根据你的请求自动加载。 本质上,skill 以一个文件夹的形式存在: your-skill-name/ ├── SKILL.md # 必需:指令 + 元数据 ├── scripts/ # 可选:agent 运行的可执行代码 ├── references/ # 可选:仅在需要时加载的文档 └── assets/ # 可选:模板、图片、字体 唯一必需的文件是 SKILL.md。其他所有内容都是可选的,但随着 skill 复杂度的增加而变得重要。 SKILL.md 格式是一个开放标准,由 Anthropic 于 2025 年 12 月在 agentskills.io 发布。它适用于 Claude Code、OpenAI Codex 和 OpenClaw。虽然格式是标准化的,但每个平台在发现和工具调用方面的实现略有不同。可以理解为同一编程语言,经过不同编译器编译后,结果不是完全相同的。在 Claude Code 上有效的 skill 很可能在 Codex 上也有效,但运行时行为(如 session snapshotting、工具权限和调用模式)在不同平台之间有所不同。 ...

April 18, 2026 · 7 min · Bibek Poudel

从零到生产:基于 Claude Code 的 AI Agent 10 步构建法

译者:Carl Cui 这篇文章来自作者 Reza Rezvani,文章分享了一个基于 Claude Code 原生功能构建 AI Agent 的方案,完全摒弃了 LangChain 等外部框架。作者的实际经验表明,使用简单的 Markdown 文件和 YAML 配置就能构建强大的 AI 代理系统,利用 Claude Code 的内置功能。这个方法简化了开发流程,降低了维护成本,适合在生产环境中部署。 六个月前,我深陷在 LangChain 编排框架中:自定义 ReAct 循环,JSON schema 验证器和一个手工构建的记忆系统,通过三个我已经不再完全理解的 Python 脚本粘合在一起。 然后我删除了所有这些。 Claude Code:如何构建你的 agent | 使用 Gemini 生成 注意: 我使用 AI 进行研究协助。这里描述的 agent 配置、生产工作流和生产上下文来自我每天在工程和运营中运行的系统。 不是因为它没用。它其实挺有用的。但每次我想改变 agent 的行为时,我都在编辑 Python 类、重新部署容器和调试序列化错误。这个系统既强大也脆弱。 替代它的东西简单得令人尴尬:带 YAML frontmatter 的 Markdown 文件,保存在 Claude Code 已经监视的目录中。不需要框架,没有构建步骤,没有部署管道,就只是些文件而已。 现在网上广为流传的那份 How to Build AI Agents from Scratch 的 cheat sheet 并没有错。其中 10 个步骤分别是:定义角色、设计 I/O、调整行为、添加推理、构建 multi-agent 逻辑、添加记忆、输出结果、包装在 UI 中、评估和监控。这些是正确的步骤。但对于 Claude Code,每一步都有原生的解决方案,不需要依赖 LangChain、CrewAI 或 OpenAI Swarm。 ...

April 15, 2026 · 4 min · Reza Rezvani