跳到正文

上下文工程:让 AI 写对代码的关键

给对上下文、设好边界 —— 决定 AI 帮你写代码靠不靠谱的那件事

一句话:AI 帮你写代码靠不靠谱,80% 不取决于模型多强,而取决于你给了它什么上下文、设了什么边界。这就是「上下文工程」,也是面试聊 AI 协作时最能体现深度的点。 心智:模型只知道你给它的 回到第 1 篇——模型不记忆、不联网。它对你项目的全部认知,只来自你这次塞进上下文的东西。所以「让 AI 写对代码」本质是:把对的信息,在对的时机,以对的结构喂给它。 System Prompt:先定身份和规矩 System Prompt 是整段对话的"宪法",放最前、最稳。一个好的编码类 System Prompt 通常包含: 注意它在做的事:给身份、给约束、给红线、给验收标准——而不是堆一堆"请你很棒地写代码"这种废话。 上下文工程的四个动作 给相关、别给全部:不是把整个项目都塞进去(注意力会稀释、还烧 token),而是给这次任务相关的文件 / 片段。 给结构,不只是代码:目录结构、关键约定、数据流,比一堆零散代码更能让它"进入状态"。 给反例和边界:"参考 X 文件的写法""不要用 any""别动 Y"——负向约束往往比正向描述更有效。 给验收方式:让它知道"怎样算做完"(跑通哪个测试 / 命令),它会自己往那个目标收敛。 一个对比 ❌ 「帮我加个登录功能」 ✅ 「在 src/pages/Login.tsx 加邮箱+密码登录,复用 src/api/auth.ts 里的 login(); 表单校验参考 Register.tsx 的写法;不要引新依赖;完成后跑 pnpm test:auth 确认通过。」 后者把"上下文 + 边界 + 验收"都给齐了,AI 一次写对的概率高得多。 常见坑 上下文塞太满:以为给得越多越好,结果关键约束被淹没。够用就好。 只说要什么,不说不要什么:漏了红线,它就可能动你不想让它动的东西。 不给验收标准:它不知道"算不算做完",容易半成品或过度发挥。 一轮对话越拖越长:历史堆太多后它开始"忘事",该开新对话就开新的(或做摘要)。 关联面试题 「怎么让大模型稳定输出你想要的格式 / 行为?」(System Prompt + 约束 + 校验) 「Prompt 工程里你踩过哪些坑?」 👉 去 题库 搜 Prompt 工程 / System Prompt / 稳定输出。 训练营延伸 上下文工程往工业级走,就是 Agent 里的「上下文管理」:超长任务怎么压缩历史(摘要 / 裁剪)、多 Agent 之间怎么传上下文——是训练营 Agent 工程那条线的硬核内容。