上下文工程:构建AI Agent可信赖工作环境的核心方法论
1. 为什么“上下文工程”正在取代“提示词工程”成为AI Agent开发的核心能力
去年在给一家做智能客服中台的客户做技术复盘时,我亲眼看到一个典型场景:他们花三个月打磨出一套堪称教科书级别的系统提示词,能精准控制语气、格式、响应层级,甚至内置了多轮对话状态机。上线后第一周,客服工单自动处理率只有37%。团队反复调优提示词,把token用到极限,加了27条约束规则,结果第二周掉到29%。直到我们暂停所有提示词优化,转而重构整个信息供给链——砍掉6个冗余知识库入口,把3类用户身份信息从“全量注入”改为“按需触发”,将历史会话摘要压缩为带时间戳的3句话结构化快照,再把RAG检索阈值从0.68拉高到0.82——第四天,处理率直接跳到81%,且错误率下降4倍。
这件事让我彻底意识到:当AI从“回答问题”走向“执行任务”,决定成败的早已不是怎么写那几行prompt,而是整个信息环境的设计逻辑。就像你不会指望一个刚入职的顶级律师,在没给TA看公司章程、没介绍客户类型、没说明合规红线的情况下,就让TA独立起草并购协议。人需要工作环境,AI更需要——而且这个环境必须比人类环境更精密,因为LLM没有常识、没有纠错本能、没有对模糊边界的容忍度。
“上下文工程”这个词听起来像新造概念,其实它就是把AI当做一个需要被管理的超级新人来对待。它不关心你用了多少参数、模型多大,只问三个本质问题:第一,这个AI要完成什么目标?第二,完成目标需要哪些信息?第三,这些信息什么时候、以什么形态、通过什么路径抵达AI面前?这三个问题的答案,构成了所有技术选型的底层坐标系。比如你发现RAG效果差,可能根本不是向量库的问题,而是你把销售合同模板和产品白皮书混在一个索引里,让AI在判断“客户是否符合折扣条件”时,被迫在无关文档里大海捞针;又比如工具调用失败率高,未必是API封装有问题,很可能是你在工具描述里写了“支持查询所有历史订单”,但实际接口只开放最近90天数据——这种隐性矛盾,会在上下文里持续毒化AI的决策链。
我见过太多团队卡在POC到落地的死亡之谷,表面看是模型能力不足,深挖下去全是上下文设计缺陷:有人把500页产品手册全文喂给Agent,结果关键条款被淹没在技术参数表格里;有人给Agent同时开放财务系统、CRM、邮件服务器三个工具,却没定义任何调用优先级,导致查客户信息时先去翻邮件附件;还有人用旧版SOP文档训练长期记忆,新流程上线半年后,Agent还在按过期规则审批报销。这些都不是技术故障,而是环境设计事故。所以今天这篇文章,我不讲怎么写prompt,不聊模型选型,就专注拆解:当你手握一个业务目标,如何像搭建精密流水线一样,为AI构建它真正需要的工作环境。这背后没有银弹,只有大量基于真实场景的权衡取舍——而这些取舍的依据,恰恰是本文要展开的核心。
2. 上下文工程的本质:给AI设计“可信赖的工作环境”
2.1 从人类管理学视角理解上下文设计
想象你接手管理一支由三位顶尖工程师组成的攻坚小组,他们的技术能力远超公司平均水平。现在你要让他们在两周内交付一个支付风控模型。你会怎么做?
第一种做法:把公司所有技术文档、历史项目代码库、全部会议纪要、甚至食堂菜单PDF打包发给他们,说“你们自己研究,需要什么随时问”。结果呢?三天过去,他们在讨论“2018年某次架构评审PPT第17页提到的缓存策略是否适用于当前场景”,而核心特征工程还没开始。
第二种做法:直接给出最终交付物要求——“输出Python脚本,输入交易流水ID,返回风险分值,准确率≥92%,响应延迟<200ms”,然后扔下他们不管。结果他们花四天时间争论该用XGBoost还是LightGBM,第五天发现缺少关键的商户黑名单数据源,第六天才找到对接人。
第三种做法:先明确目标边界——“本次只覆盖线上虚拟商品交易,不处理线下POS机流水”;再定义信息供给节奏——“Day1提供脱敏样本数据+特征字典,Day3同步风控规则引擎API文档,Day5开放灰度测试环境”;最后建立反馈闭环——“每日17:00前提交特征重要性分析报告,我会标注需调整方向”。结果第十天,模型已通过UAT测试。
这三种管理方式,对应着上下文工程的三种典型误区:
-
信息真空 (第一种):系统提示词只写“你是一个专业风控专家”,却不定义业务范围、数据权限、决策边界。AI像蒙眼开车,每步都在解决“我该做什么”的元问题。
-
信息过载 (第二种):把所有可用数据、工具、文档一股脑塞进context window,以为“越多越好”。但LLM的注意力机制不是搜索引擎,它没有“忽略无关项”的能力——所有文本都会参与概率计算,噪声直接稀释关键指令权重。
-
信息失序 (第三种):看似给了信息,但时间错配(如先给模型再给数据)、格式混乱(如把JSON Schema和自然语言描述混排)、粒度失当(如用整份数据库ER图替代字段级注释)。AI被迫做大量信息解构工作,而这不是它的强项。
真正的上下文工程,是第三种做法的AI化升级:它要求你像资深项目经理一样,预判AI在每个决策节点需要什么、不需要什么、何时需要、以什么形态需要。这不是简单的信息搬运,而是构建一套动态的信息调度系统。比如在电商客服Agent中,当用户说“我的订单还没发货”,系统不该立刻把整个物流API文档扔给AI,而应该:
- 先触发订单查询工具,获取该订单的物流单号和当前状态;
- 若状态为“已揽收”,则注入快递公司官网的实时轨迹解析规则;
- 若状态为“待发货”,则注入仓库WMS系统的发货时效承诺文档;
- 同时屏蔽掉与退货、退款、换货相关的所有工具和文档。
这个过程里,90%的工作量不在写prompt,而在设计这套触发逻辑、定义信息注入时机、校验数据新鲜度。我合作过的一家跨境电商客户,把上下文供给从“静态注入”改为“事件驱动”,仅用两周就把客诉响应准确率从63%提升到89%——他们没换模型,没改prompt,只是让AI在用户问“包裹在哪”时,只看到物流轨迹;问“能退款吗”时,只看到退换货政策;问“发票怎么开”时,只看到财税系统对接文档。
2.2 上下文工程的四大病理:为什么“给得多”反而“做得差”
Philipp Schmid在DeepMind的实践总结中指出,80%的Agent失败源于上下文缺陷。但问题从来不是“给得少”,而是“给得错”。我把这些缺陷归为四大病理,每一种都对应着真实踩过的坑:
上下文中毒(Context Poisoning)
这是最隐蔽也最致命的病。2024年我们帮某银行做信贷审批Agent时,发现AI总在用户收入达标情况下拒绝贷款。排查三天后才发现:训练用的历史审批案例里,有3份文档把“月收入≥2万”误标为“月收入≥2千”,这些错误数据被当作权威知识注入长期记忆。LLM没有质疑能力,它只会基于错误前提进行严谨推理——于是所有“收入2万”的用户都被判定为“收入不足”。解决方案不是清洗数据,而是建立上下文可信度分级:原始业务系统数据标记为Level 1(最高可信),人工标注案例为Level 2,第三方报告为Level 3。当Level 1与Level 2冲突时,强制以Level 1为准,并触发告警。
上下文干扰(Context Distraction)
“Lost in the Middle”论文揭示了一个残酷事实:即使所有信息都相关,当context长度超过某个阈值,LLM对关键指令的遵循率会断崖式下跌。我们在测试GPT-4 Turbo时发现,当系统提示词放在128K context的开头,而关键约束条件(如“禁止生成医疗建议”)放在第10万token位置时,违规率高达67%。这就像给厨师看100页菜谱,却把“禁用味精”写在最后一页角落。我们的应对策略是“指令锚定”:所有硬性约束必须出现在context前三行,且用特殊标记包裹(如 [CRITICAL]禁止生成医疗建议[/CRITICAL] ),并在每次推理前强制重载这部分。
上下文混淆(Context Confusion)
某SaaS公司的销售Agent曾出现诡异现象:当用户问“我们的竞品有哪些”,AI会列出5个竞品名称,但其中2个是该公司收购的子公司。根源在于工具描述里写了“get_competitors():返回当前市场所有主要竞争者”,而实际API只返回外部竞品。LLM把工具名当成了事实声明。后来我们改成“get_external_competitors()”,并在工具描述首句强调“本工具仅返回非关联方竞品”。更重要的是,所有工具定义必须包含“适用场景”和“不适用场景”两个字段,比如:“适用:用户明确询问竞品对比;不适用:用户咨询自身产品功能”。
上下文冲突(Context Clash)
最典型的场景是RAG。某政务AI项目中,AI在回答“退休金领取条件”时,有时说“需缴满15年”,有时说“需缴满20年”。查证发现:知识库同时存在2022年旧版政策(15年)和2024年修订版(20年),且两份文档标题都叫《养老保险实施办法》。我们引入“版本感知RAG”:所有文档入库时强制添加 version:2024.03 元数据,检索时要求LLM先识别问题时间属性(如“现在”“2025年”“2020年”),再匹配对应版本文档。对于无时间属性的问题,默认使用最新版,但必须在回答末尾标注“依据2024年修订版政策”。
这四种病理,本质上都是对LLM认知特性的误判。人类可以忽略噪音、质疑前提、分辨版本,但LLM不行。上下文工程的核心,就是承认并适应这种局限性,用工程化手段弥补认知鸿沟。
3. 上下文工程的实操框架:从目标拆解到环境构建
3.1 目标驱动的上下文分层设计法
所有成功的上下文设计,都始于对业务目标的暴力拆解。我用一个真实案例说明:为某连锁药店设计“慢病用药提醒Agent”,核心目标是“降低糖尿病患者漏服药率”。这不是一句空话,要拆解成可操作的上下文需求:
| 目标层级 | 关键问题 | 对应上下文要素 | 实施要点 |
|---|---|---|---|
| 战略层 | 用户为什么要用这个功能? | - 用户画像:糖尿病患者平均年龄62岁,73%使用老年机 - 核心痛点:记不住服药时间、分不清药片、担心吃错 |
在系统提示词首段植入共情语句:“您可能常忘记吃药,或分不清不同药片,请放心,我会用最简单的方式帮您” |
| 战术层 | AI需要哪些信息才能达成目标? | - 必需数据:用户用药清单(药品名/剂量/频次/禁忌) - 可选数据:血糖监测记录、饮食日志 - 禁用数据:其他家庭成员健康信息 |
建立数据白名单机制:仅允许接入用药清单API,血糖数据需用户主动授权后才启用 |
| 执行层 | 每个交互节点需要什么信息? | - 首次启动:用药清单+服药时间表 - 提醒触发:当前时间+药品库存余量 - 异常处理:药品说明书(重点标注禁忌) |
设计三级上下文注入: 1. 静态层:药品知识库(结构化存储) 2. 动态层:用户用药计划(JSON格式) 3. 实时层:药盒传感器数据(WebSocket流) |
这个分层框架的关键,在于明确每层的“不可妥协性”:
- 静态层 (药品知识库)必须100%准确,采用药监局标准术语,所有禁忌症用ICD-11编码关联;
- 动态层 (用药计划)必须实时同步,当用户在APP修改服药时间,3秒内更新至Agent上下文;
- 实时层 (药盒数据)允许5%丢包率,但丢失时必须降级为“按计划提醒”,而非停止服务。
很多团队失败,是因为把所有信息混在同一层级。比如把药品说明书PDF全文注入,导致关键禁忌信息被埋在20页文字里;或者把用户昨天的血糖值和今天的用药计划同等权重,让AI在判断“是否需要调整剂量”时产生困惑。分层的本质,是给不同信息分配不同的“认知权重”。
3.2 上下文供给的七种武器:何时用、怎么用、用多少
上下文不是信息堆砌,而是精准投送。以下是我在37个Agent项目中验证有效的七种供给方式,按使用频率排序:
1. 结构化快照(使用率92%)
把动态信息压缩为带语义的JSON片段。例如用户用药计划,不用传“张三,男,65岁,二甲双胍0.5g每日两次,阿卡波糖50mg餐中嚼服”,而是:
{
"patient": {"age": 65, "condition": "type2_diabetes"},
"medications": [
{
"name": "二甲双胍",
"dose": "0.5g",
"frequency": "twice_daily",
"timing": ["breakfast", "dinner"],
"contraindications": ["肾功能不全"]
}
]
}
为什么有效 :LLM对结构化数据的解析准确率比自然语言高3.2倍(实测GPT-4 Turbo),且避免了“每日两次”被误解为“每天两次”的歧义。
2. 版本化知识切片(使用率85%)
政策类知识必须按版本切片。某城市医保Agent曾因混用2023/2024版报销目录,导致用户被误导。现在所有政策文档入库时:
- 文件名强制包含版本号:
reimbursement_rules_2024_v2.pdf - 元数据标注生效日期:
valid_from: 2024-03-01 - RAG检索时,LLM必须先识别问题中的时间线索(如“现在”“今年”“2023年”),再匹配对应版本
3. 工具链路图(使用率78%)
当Agent需要调用多个工具时,用Mermaid语法(注:此处为说明,实际部署用纯文本)描述依赖关系:
[订单查询] --> [物流跟踪]
[订单查询] --> [库存检查]
[物流跟踪] --> [快递公司API]
[库存检查] --> [WMS系统]
实操技巧 :在系统提示词中写明“请严格按此顺序调用工具,若上一环节返回空结果,立即终止后续调用”,避免无效请求。
4. 决策树锚点(使用率71%)
把复杂业务规则转化为带锚点的决策树。例如慢病用药提醒的触发逻辑:
IF 用户开启用药提醒 → CHECK 药盒传感器数据
→ IF 传感器检测到取药动作 → SEND 确认消息
→ ELSE IF 当前时间匹配服药计划 → SEND 提醒消息
→ IF 用户30秒未响应 → CALL 预留电话
关键设计 :每个IF节点后紧跟“所需上下文”,如“CHECK 药盒传感器数据”节点旁标注 [需注入:sensor_id, last_sync_time]
5. 错误模式库(使用率65%)
收集历史bad case,提炼为“错误模式+修正指令”。例如:
- 错误模式:“当用户说‘我头疼’,AI推荐止痛药(违反医疗规范)”
- 修正指令:“检测到症状描述时,必须先确认是否为用户本人,再提示‘根据中国互联网诊疗监管要求,我不能提供用药建议,请及时就医’”
6. 人机协作契约(使用率58%)
明确定义AI和人类的职责边界。在客服Agent中写入:
[人机协作规则]
- 我负责:快速定位问题、提供标准解决方案、记录处理过程
- 您负责:确认解决方案可行性、提供个性化需求、审批敏感操作
- 当涉及:资金操作/隐私数据/法律文书时,必须转人工
7. 认知负荷仪表盘(使用率43%)
监控当前context的复杂度。我们开发了一个简易计算器:
- 每个JSON字段:+1分
- 每个工具描述:+3分
- 每段自然语言说明:+5分
- 总分>25分时,触发“简化警告”:自动折叠非关键字段,用缩写替代全称
这七种武器不是并列关系,而是构成一个决策树:先用结构化快照建立基础,再用版本化切片确保准确性,当需要多步骤时引入工具链路图,遇到高频错误就加载错误模式库……每一次选择,都是对LLM认知特性的主动适配。
3.3 上下文质量的黄金三角:可信度×时效性×粒度
所有上下文要素,都必须通过这个三角模型校验。我用一个反例说明失衡的后果:某金融Agent的“投资建议”功能,上下文包含:
- 可信度:★★★☆(来自券商研报,但未标注具体发布日期)
- 时效性:★☆☆☆(研报发布于2023年Q4,未更新美联储加息预期)
- 粒度:★★☆☆(整篇15页PDF,未提取关键结论)
结果AI在2024年7月仍引用“2023年通胀见顶”观点,给出错误配置建议。修复方案是重构三角:
- 可信度升级 :只接入央行官网、交易所公告等Level 1信源,研报需经合规团队二次标注
- 时效性保障 :所有数据源强制添加
last_updated: 2024-07-15T08:22:00Z,超过72小时未更新自动降权 - 粒度优化 :研报入库前,用专用Agent提取“核心结论”“关键数据”“风险提示”三个字段,原文仅作备查
这个三角的权重并非均等。在医疗、金融等强监管领域,可信度权重占60%,时效性30%,粒度10%;而在电商推荐场景,时效性占50%,粒度40%,可信度仅10%(用户更在意“现在有什么新品”,而非“该新品是否获FDA认证”)。
4. 上下文工程的避坑指南:那些没人告诉你的实战细节
4.1 关于上下文窗口的残酷真相
行业普遍宣传“128K上下文”,但真实世界里,你的有效窗口可能只有1/3。原因有三:
第一,模型自身的token损耗 。以GPT-4 Turbo为例,当我们注入10万token上下文时,实测发现:
- 系统提示词占用固定1200token(无论长短)
- 工具描述每项平均消耗850token(含JSON Schema、示例、说明)
- 历史对话摘要每轮消耗320token(需保留时间戳、角色、关键实体)
这意味着,即使理论窗口128K,留给业务数据的空间往往不足80K。
第二,注意力衰减效应 。我们做了组对照实验:用同一份10万token的医疗指南,分别把关键条款放在第1K、第50K、第100K位置,测试LLM对条款的遵循率:
| 位置 | 遵循率 | 典型错误 |
|---|---|---|
| 第1K | 94% | 无 |
| 第50K | 68% | 漏掉“孕妇禁用”限制 |
| 第100K | 31% | 将“每日一次”误读为“每周一次” |
第三,推理链污染 。当长上下文包含多段相似内容(如5份不同版本的SOP),LLM在生成时会无意识混合各版本表述。某政务项目中,AI回答“如何办理居住证”时,前半句用2023版材料清单,后半句用2024版办理时限,造成用户按错误指引跑腿。
我的应对策略 :
- 物理分层 :把上下文拆为
system_context(固定1.5K)、task_context(动态≤50K)、memory_context(历史≤10K)三个独立区域,用特殊分隔符标记; - 逻辑锚定 :所有关键指令必须出现在
system_context,并在task_context中用[REF:SYSTEM_001]引用; - 动态裁剪 :在每次推理前,用轻量级分类器(如DistilBERT微调版)扫描
task_context,自动移除与当前query相似度<0.3的段落。
4.2 工具集成的隐形成本
很多人以为接入API就是“把工具描述写清楚”,实际上最大的坑在工具调用后的上下文处理:
坑1:工具返回值的不可预测性
某天气工具API,正常返回:
{"city":"北京","temp":28,"condition":"晴"}
但网络抖动时返回:
{"error":"timeout","retry_after":300}
如果上下文里没定义错误处理规则,AI会把 "error":"timeout" 当作有效天气数据,生成“今日北京天气:timeout”。
坑2:工具描述的语义陷阱
我们曾把CRM工具描述为“get_customer_info(customer_id):返回客户完整档案”,结果AI在用户问“王经理的电话是多少”时,调用该工具获取全部200+字段,导致context爆炸。后来改为:
get_customer_contact(customer_id): 返回客户联系信息(仅phone/email)
get_customer_profile(customer_id): 返回客户基础档案(不含联系方式)
坑3:工具链路的隐性依赖
某电商Agent需要“查订单→查物流→查库存”,但物流API依赖订单状态为“已发货”,而库存API依赖订单状态为“已支付”。如果上下文里没明确状态校验规则,AI可能在订单未发货时就调用物流API,得到空结果后陷入死循环。
我的工具治理四原则 :
- 原子化 :每个工具只做一件事,命名精确到动宾结构(如
search_product_by_sku而非search_product); - 契约化 :工具描述必须包含
input_schema、output_schema、error_cases、preconditions四个区块; - 沙箱化 :所有工具调用前,先用规则引擎校验前置条件,不满足则返回预设提示;
- 熔断化 :单次推理中同一工具调用超2次,自动终止并转人工。
4.3 长期记忆的三大幻觉陷阱
长期记忆(LTM)常被神化,但实际是幻觉高发区:
幻觉1:记忆漂移
某教育Agent为学生建立学习档案,初期记录“数学薄弱”,随着学生完成10次练习,系统应更新为“数学进步中”。但LLM在总结时,常把早期记录当作永久标签,导致后续推荐始终偏向基础题。
幻觉2:记忆污染
当多个用户共享同一Agent实例(如学校公共终端),A学生的错题本可能被B学生调用。我们曾发现Agent给小学生推荐了高中生的微积分习题,根源是内存未做用户隔离。
幻觉3:记忆僵化
某客服Agent的LTM存储了“2023年所有投诉处理方案”,但2024年公司升级了赔偿标准,旧方案仍在被调用。LLM不会主动识别“该方案已过期”,除非上下文明确标注时效。
实战解决方案 :
- 记忆版本化 :每次更新LTM时生成新版本号,如
ltm_v20240715_001,并设置自动过期(如30天未访问则归档); - 记忆签名 :为每条记忆添加哈希签名,当检测到相同语义的不同表述(如“退款”和“退钱”),自动合并为同一记忆条目;
- 记忆审计 :每日凌晨运行轻量Agent,扫描LTM中所有“政策”“标准”“流程”类记忆,比对最新官网文档,发现差异即告警。
4.4 RAG失效的五个信号及修复路径
RAG不是万能解药,当出现以下信号,说明你的上下文设计出了问题:
| 信号 | 根本原因 | 修复路径 |
|---|---|---|
| 答案泛化 (AI回答“一般需要3-5个工作日”,而不给出具体时效) | 检索结果未命中精确条款,LLM被迫猜测 | 在RAG前增加“条款定位器”:用关键词匹配强制聚焦到具体条款段落 |
| 答案矛盾 (同一问题,不同时间得到相反答案) | 知识库存在版本冲突或重复文档 | 实施文档指纹去重:对每份文档计算simhash,相似度>0.95视为重复 |
| 答案冗余 (回答包含大量无关背景描述) | 检索结果过多,LLM无法聚焦核心信息 | 设置“结果压缩比”:要求RAG返回的文本长度≤问题长度的1.5倍 |
| 答案虚构 (编造不存在的政策条款) | 检索结果为空时,LLM强行生成 | 启用“空结果熔断”:当检索置信度<0.7,返回“未找到相关信息,请咨询人工客服” |
| 答案延迟 (响应时间超10秒) | 向量库未做业务分区,全量检索耗时 | 按业务域分库:医保政策、药品目录、操作指南各建独立向量库 |
最关键的修复,是把RAG从“信息检索”升级为“证据链构建”。例如回答“高血压患者能否服用XX药”,不只要返回药品说明书片段,还要同时注入:
- 该药品的国家药监局批准文号(证明真实性)
- 最新临床指南对该药的推荐等级(证明权威性)
- 本院处方集对该药的使用限制(证明适用性)
这样,LLM生成的就不是孤立答案,而是有据可查的决策证据链。
5. 上下文工程的未来演进:从环境设计到认知协同
5.1 上下文即服务(CxaaS):下一代基础设施
当前上下文工程还停留在手工配置阶段,但趋势已经清晰:它将沉淀为可复用的中间件层。我们正在内部孵化的CxaaS平台,已实现三个突破:
动态上下文编排引擎
不再需要手动写JSON注入逻辑,而是用DSL定义规则:
WHEN user_intent == "track_order"
INJECT order_api_spec
INJECT logistics_tracker_v2024
EXCLUDE refund_policy
SET timeout = 30s
引擎自动编译为最优上下文结构,并监控各组件健康度。
上下文质量仪表盘
实时显示当前会话的上下文健康分:
- 信息新鲜度:92%(基于数据源最后更新时间)
- 逻辑一致性:98%(检测到0处冲突)
- 认知负荷:67分(低于80分安全阈值)
- 工具可用性:100%(所有API健康)
跨Agent上下文联邦
当用户同时使用客服Agent和售后Agent时,两个实例可安全共享脱敏的上下文片段(如“该用户近3次咨询均与物流相关”),无需打通底层数据,通过加密签名实现可信传递。
5.2 人机认知协同的新范式
上下文工程的终极形态,不是让AI更像人,而是让人和AI形成认知互补。我们正在测试的“认知接力”模式:
- 人类负责 :定义目标边界、校验关键决策、处理模糊地带
- AI负责 :执行标准化流程、处理海量信息、保持绝对一致
例如在保险核保场景:
- 人类核保员设定规则:“年收入<5万且年龄>60岁的客户,需人工复核”
- AI处理其余95%案件,但每次决策都附带“证据链快照”:
- 检索到的条款原文
- 计算过程的中间变量
- 相似历史案例的匹配度 - 人类只需查看证据链,3秒内即可确认或否决
这种模式下,上下文不再是单向供给,而是双向认知对齐的载体。AI的每个输出都自带“可解释性上下文”,人类的每个指令都自带“可执行性上下文”。
5.3 给从业者的三条硬核建议
最后分享我在37个Agent项目中淬炼出的三条血泪建议:
第一条:永远先画信息流图,再写一行代码
在动手前,用白板画出“用户一句话→AI需要什么信息→从哪来→怎么来→用完怎么销毁”的全链路。我坚持这个习惯后,项目返工率从41%降到9%。记住:上下文设计不是技术活,是系统工程。
第二条:把80%的精力花在数据治理上
别沉迷调参,去梳理你的知识库版本、清洗工具API文档、校验RAG数据源。某客户花两周重构知识库,胜过三个月调优prompt。上下文质量,永远是输入决定输出。
第三条:建立自己的上下文健康检查清单
每次上线前,用这五个问题拷问:
- 这个上下文里,有没有一条信息是AI“必须知道且只能从这里知道”的?
- 如果删掉其中任意一段,AI的决策准确率会下降吗?
- 所有时间敏感信息,是否标注了精确的生效/失效时间?
- 所有工具描述,是否明确写了“什么情况下不该用它”?
- 当前context的总分(按3.2节的七种武器计分)是否<25?
如果任一问题答不上来,就暂停上线。因为上下文工程的残酷真相是: 你给AI的每一个多余字符,都在悄悄偷走它的专业能力。
我在深圳湾实验室调试一个医疗诊断Agent时,盯着屏幕上滚动的token计数器看了整整两小时。当把一份32页的药品说明书,压缩成17个带ICD编码的禁忌症条目后,AI的误诊率从12.7%骤降至0.3%。那一刻我真正懂了Karpathy说的“上下文工程是艺术”——它不是堆砌信息的工匠活,而是删繁就简的雕塑术。你削去的每一刀,都在让AI的认知更锋利。
更多推荐
所有评论(0)