📌 项目地址:coleam00/context-engineering-intro | ⭐ 13,406 颗星 | 🔧 Python | 📜 MIT
提示词工程不够用了
我写代码经常要跟AI协作。过去一年试了无数种提示词写法,结果就一个感受:同一个模型,同一段需求,今天写得完整,明天就给你写岔。不是模型抽风,是我每次给的上下文不一样。
这个项目用1.3万个星证实了一个判断:多数AI写代码翻车,错不在模型,在于没给它干活需要的底牌。
项目作者coleam00提出了一个概念——Context Engineering(上下文工程)。他跟传统提示词的区别,我直接拿项目里的原话说:提示词是给一张便利贴;上下文工程是给一套完整的剧本。
便利贴和剧本的区别在哪?便利贴只写“干什么”,剧本要写场景、人物、台词、道具、走位。AI写代码需要后者。
项目的四层信息结构
仓库是个模板,克隆下来往里填你自己的项目信息。目录结构不长,我拆开说每一层管什么事。
context-engineering-intro/
├── .claude/
│ ├── commands/
│ │ ├── generate-prp.md
│ │ └── execute-prp.md
│ └── settings.local.json
├── PRPs/
│ ├── templates/
│ │ └── prp_base.md
│ └── EXAMPLE_multi_agent_prp.md
├── examples/
├── CLAUDE.md
├── INITIAL.md
└── INITIAL_EXAMPLE.md
第一层:CLAUDE.md —— 规矩写在明处。
这个文件是AI每次对话会最先读的。你在里头写“所有函数必须有类型注解”、“所有数据库操作走ORM代理”、“错误码用枚举类,不要返回原始字符串”。AI按这个规矩出牌,不会自由发挥。
仓库里没写具体的规矩例子,但逻辑很明显:规矩越具体,AI输出越稳定。比如你写“错误处理统一格式”,不如写“错误响应结构为 { code: 整数, message: 字符串, data: null } ”。
第二层:examples/ —— 用代码说话。
规矩是文字,例子是实物。仓库README强调这层“critical”,因为AI看你的真实代码比读一百字描述管用。放几段你项目里典型的API实现、数据库操作、单元测试。AI看了就会按你的代码风格走。
第三层:INITIAL.md —— 需求的入口。
你在这里写功能需求。不能只写“帮我实现注册功能”,要写清楚业务背景、技术约束、边界情况、验收条件。仓库提供了一个INITIAL_EXAMPLE.md做参考,大致方式是:说明你要做什么、为什么要做、对技术栈有什么要求、怎么算做完。
第四层:PRPs/ —— AI生成的施工图。
PRP全称Product Requirements Prompt。你写完INITIAL.md后,执行命令让AI生成PRP,它会结合CLAUDE.md的规矩和examples/的风格,产出一份包含具体步骤、代码参考、验证标准的需求说明书。
仓库有示例文件EXAMPLE_multi_agent_prp.md,展示了完整的PRP长什么样。包含任务拆解、依赖关系、输出清单、验收条件。
四步工作流程
README里写的流程很简洁,四个步骤,没有多余的操作。
第一步:写INITIAL.md。 把你的需求填进去。背景要写清楚:这个功能是为了什么用户场景?技术约束有哪些?验收标准是什么(比如“列表接口支持分页参数page和size”、“注册接口对重复邮箱返回409”)?
第二步:执行/generate-prp INITIAL.md。 这是仓库自定义的Claude Code命令。AI会读你的需求,结合项目规矩和代码示例,生成一份完整的PRP文件,存到PRPs/目录。
第三步:执行/execute-prp PRPs/你的功能名.md。 AI拿着这份PRP开始写代码。PRP里内置了验证步骤,AI写一段会停下来检查是否符合要求,不是一口气写完才发现跑偏。
第四步:调整PRP模板。 仓库提供了基础的prp_base.md,你可以改,加入你项目特有的约束,比如“部署要写健康检查”、“日志必须带trace_id”。改一次,后续所有功能需求都会按这个标准执行。
我试用后的几个判断
这套系统能积累信息、有反馈闭环,不是一次性技巧。
信息有层级,AI不会混淆重点。 规矩、示例、需求、执行计划分开存放。AI知道规矩是长期规则,需求是本次目标。不像传统做法把所有东西揉进一个提示词,AI自己去分辨优先级。
从“写提示”变成“建文档”。 你花时间写好CLAUDE.md和examples/后,后面每次需求只要写INITIAL.md。AI自动生成PRP、自动校验。时间投入一次,长期重复使用。
PRP内置了校验机制。 AI不是写完交差,而是边写边对照验收标准。这减少了“看起来对了但实际不可用”的代码产出。
项目是Python写的,但模板逻辑不限于Python。 换个技术栈,目录结构可以照用,改一改CLAUDE.md和examples/里的内容即可。
几个值得注意的地方
CLAUDE.md要写得像给新工程师的手册。 越具体越好。比如“日期字段统一用ISO 8601格式,存储为UTC,返回给前端转为本地时区”。这种细节AI自己猜不准,写进规矩就对了。
examples/不要贪多。 放几段有代表性的完整代码片段就行。一段API实现,一段数据库CRUD,一段测试用例。AI看两三个例子就能学出模式。
INITIAL.md要写清楚边界情况。 比如“用户名已存在返回409”、“页码超出范围返回空数组而不是404”。AI如果不被告知这些,会自由发挥。
迭代PRP模板。 仓库的基础模板够用,但你项目有独特的流程(比如多步骤审批、跨服务调用),可以加到PRP模板里,后续所有功能PRP都会包含这些环节。
这个模板做的事很简单:把AI需要的项目上下文系统化地准备好,而不是每次靠临时发挥。从1.3万个星来看,很多人跟我的感受一样——AI写代码不是玄学,是工程。