跳到正文

上下文工程

Context Engineering

高级通用

上下文工程(Context Engineering)是为一次 AI 任务选择、组织和更新模型可见信息的工作。它解决的是信息缺失、过时或互相冲突导致的答非所问;比如让改代码的 Agent 先看到相关文件、项目约定和验收条件。

你可能会说:「我想让 AI 改这个功能时看懂项目现状,别漏掉约定,也别被旧讨论带偏。」

读之前建议先了解(这是一个高级概念)

动手看看

任务:修复登录失效后的跳转请求返回 401 时,引导用户重新登录。
本次模型可见信息
代码:src/api/client.ts统一请求入口,已有 401 分支。
约定:复用登录导航工具使用 goToLogin,勿硬编码地址。
验收:登录后回到原页面跳转携带 returnTo,并补回跳测试。
旧文档:401 只弹提示
示意修改方案
在 client.ts 的 401 分支修改
待确认请求入口未看到代码,无法核实修改位置。
调用 goToLogin
待确认登录导航方式不能确定项目是否有现成工具。
携带 returnTo,补回跳测试
只明确了重新登录回跳行为和测试标准尚未明确。
先澄清:跳转还是只提示?旧文档与当前任务冲突,不能直接照做。
方案为预设示意,并非实时模型输出
提供相关代码
提供项目约定
提供验收条件
混入过时文档

开关决定这次任务让模型看见什么。试着移除材料或混入旧文档,对比左右两栏;悬停或聚焦信息卡可高亮查看。重点不是塞得多,而是相关、明确且有效。

要点

  1. 1

    先判断任务缺少什么信息

    你让 Agent 修改结算页时,光说“加优惠码”不够。它还得知道价格在哪里计算、现有接口怎么返回错误,以及什么结果算完成。先找出这些信息,才能减少凭空猜测。

  2. 2

    把相关材料放进当前任务

    上下文可以来自你的说明、代码文件、工具查询结果和项目规则。我们会按任务挑选材料,说明哪些是现状、哪些只是参考;因为把整段历史都塞进去,旧决定可能盖过新需求。

  3. 3

    随工作进展更新关键信息

    Agent 查完代码后,最初的假设可能已经不成立。让它根据查到的实现调整计划,并保留已确认的约束和未解决的问题,这样后续修改与测试才有共同依据。

容易混淆的地方

提示词通常指你写给模型的指令;上下文工程还关心指令之外,模型能看到哪些文件、历史和工具结果,以及它们何时更新。RAG 是从资料中检索相关内容的一种做法,可以为上下文工程供料,但不能替你判断哪些资料可信、是否适合当前任务。

什么时候用

适合用

  • 让 Agent 接手已有网站的功能开发,需要结合当前代码、项目约定和验收条件。
  • 做客服 AI 工具时,需要按用户问题取出相关帮助文档,并区分现行规则与旧版本。
  • 一次开发任务跨多轮对话和工具调用,需要保留已确认的决定,同时更新被代码证实的事实。

不适合用

  • 只是把网页标题改成指定文字,文件和位置都已明确,直接修改并检查结果就够了。
  • 按固定公式计算运费且输入字段明确,用普通代码实现和测试,比让模型读取资料再判断可靠。
  • 需求是阻止无权限用户读取订单,不靠调整模型上下文解决;先做服务端权限控制。

练一练

你让 Agent 为已有后台添加导出功能。它读到一年前的讨论说“所有人可导出”,但当前代码按角色限制数据访问。你会怎么安排下一步?

让 AI 帮你做

请先为这次后台导出功能做上下文工程:查看相关代码和项目规则,列出已确认的权限约束、缺失信息及互相冲突的资料;不要把旧讨论直接当作现行要求。确认导出范围后再给出修改计划和验收点。

接下来学什么