news 2026/9/10 5:38:13

Codex CLI 中的 GPT-5.1 系统提示词全解析:从 AGENTS.md 规范到端到端任务执行的工程化设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Codex CLI 中的 GPT-5.1 系统提示词全解析:从 AGENTS.md 规范到端到端任务执行的工程化设计

Codex CLI 中的 GPT-5.1 系统提示词全解析:从 AGENTS.md 规范到端到端任务执行的工程化设计

【免费下载链接】system_prompts_leaksExtracted system prompts from Anthropic - Claude Fable 5.1, Opus 5, Claude Design, Claude Code. OpenAI - ChatGPT GPT-6-Astra, Codex. Google - Gemini 3.8 Flash, 3.1 Pro, Antigravity. xAI - Grok, Grok Bot, Cursor, Kimi and more! Updated regularly.项目地址: https://gitcode.com/GitHub_Trending/sy/system_prompts_leaks

GPT-5.1 是运行于 Codex CLI(OpenAI 开源的终端编程智能体)之上的通用推理模型。本仓库抓取并逐字保留了其 base system prompt(见 OpenAI/Codex/old/gpt-5.1.md),完整还原了 OpenAI 如何在"人格—上下文—规划—执行—验证—收尾"六个维度上为终端编码智能体设计行为契约。读完本文,你将理解 Codex CLI 智能体的内部指令架构、AGENTS.md 的生效范围与优先级规则,以及 update_plan、apply_patch 等工具约定的设计逻辑,并掌握用此类提示词工程思路改进自有 Agent 的关键方法。

一、抓取快照:先读懂这份文档的"元数据"

文档头部记录了该提示词被抓取时的快照信息,这决定了本文讨论的适用范围:

字段含义
Sluggpt-5.1该提示词对应的模型/会话标识
DescriptionBroad world knowledge with strong general reasoning官方对模型能力的定位
Client version0.119.0抓取时 Codex CLI 客户端版本
Fetched at2026-04-11T18:08:13.251889Z抓取时间戳
Default reasoning levelmedium默认推理强度档位
Context window272000上下文窗口大小
Body sourcebase_instructions(no template / no personality variable system)正文来源与模板使用情况

其中 "Body source" 是最有信息量的一行:它表明这份正文是基础指令(base_instructions)原样拼接,没有套用带{{ personality }}变量插槽的模板,也不存在人格变量系统。这与同仓库更新的 Codex 完整提示词形成鲜明对照——后者在正文中直接保留了{{ personality }}占位符(见 OpenAI/Codex/codex-full.md),并衍生出 OpenAI/Codex/personality_friendly.md 与 OpenAI/Codex/personality_pragmatic.md 等独立人格文件。

同一抓取批次(相同 client version 0.119.0 与 272000 上下文)还包含三个 Codex 变体:gpt-5.1-codexgpt-5.1-codex-maxgpt-5.1-codex-mini(见 OpenAI/Codex/old/gpt-5.1-codex.md、OpenAI/Codex/old/gpt-5.1-codex-max.md、OpenAI/Codex/old/gpt-5.1-codex-mini.md)。它们与此文档的分工不同:本文档的身份是"GPT-5.1 running in the Codex CLI",而三个 codex 变体的身份统一为 "You are Codex, based on GPT-5",分别面向通用编程、深度推理与"更便宜更快但能力稍弱"三种场景。

二、身份锚点:GPT-5.1 与 Codex CLI 的关系澄清

正文开篇即声明身份:You are GPT-5.1 running in the Codex CLI, a terminal-based coding assistant,并明确 Codex CLI 是 OpenAI 主导的开源项目。紧接着有一条容易忽略但极其重要的消歧说明:

Within this context, Codex refers to the open-source agentic coding interface (not the old Codex language model built by OpenAI).

即在当前语境下,"Codex" 专指开源的智能体编码接口(Codex CLI),而非 OpenAI 早年同名的 Codex 编程模型。这种命名消歧被写进系统提示词本身,是为防止模型在历史训练语料中把两个同名概念混淆——这对任何接手旧代码库或旧产品名的 Agent 都是一种可复用的提示词工程技巧。

文档进一步定义了能力边界,即模型可见的全部能力来源有三类:

  1. 接收用户提示与 harness 提供的上下文(如工作区文件);
  2. 通过流式思考与回复、创建与更新计划与用户沟通
  3. 发起函数调用以运行终端命令、应用补丁(apply patches),并可按运行配置将这些调用升级(escalate)给用户审批后再执行——其细节由正文引用的 "Sandbox and approvals" 一节(未包含在本次抓取正文中)约束。

三、人格设定:简短、直接、友好,优先可行动

"Personality" 小节给出了默认语气基调:concise, direct, and friendly(简洁、直接、友好)。其落点不是空泛的风格声明,而是可操作的行为准则:

  • 高效沟通,始终让用户清楚当前动作,但不堆砌无关细节;
  • 优先给出可行动的指导,明确陈述假设、环境前提与下一步;
  • 除非被明确要求,避免对自己工作做过度冗长的解释。

这一节为整个提示词定下"信息量换带宽"的基调——后续的响应频率、更新话术、最终消息格式,本质都是这一人格约束在不同环节的实例化。

四、AGENTS.md 规范:仓库内"人类给 Agent 的指令"如何生效

AGENTS.md 是本提示词中系统化程度最高的一节,它定义了"仓库所有者如何通过文件约束 Agent 行为"的完整协议:

基本模型:仓库任何位置都可能存在AGENTS.md,这些文件是人类向 Agent 传递容器内工作技巧的途径,例如编码规范、代码组织方式、运行/测试说明。

作用域(scope):一份AGENTS.md的作用域是包含它的那个文件夹为根的整棵目录树

对最终补丁的约束:对于最终 patch 中触碰的每一个文件,Agent 都必须遵守任何作用域覆盖该文件的 AGENTS.md 指令。

冲突裁决规则(优先级从高到低):

  1. 直接来自 system/developer/user 的指令(即 prompt 本身)优先于 AGENTS.md;
  2. 嵌套更深的 AGENTS.md 在指令冲突时胜出(就近原则);
  3. 代码风格/结构/命名类指令只作用于该文件作用域内的代码,除非文件另有声明。

已注入无需重读的路径:仓库根目录的 AGENTS.md,以及从 CWD 向上到根目录路径上每个目录的 AGENTS.md,都会随 developer message 一起注入,不必重复读取。而当工作目录是 CWD 的子目录、或位于 CWD 之外时,Agent 需要主动检查可能适用的 AGENTS.md。

这套协议的价值在于它把"项目约定"从提示词中剥离、下沉到仓库文件里:同一个模型无需在系统提示词里硬编码每个仓库的规范,只需遵循一套统一的"发现—作用域—优先级"规则。这与 OpenAI/Codex/codex-full.md 中"你更偏好仓库既有模式、框架与本地 helper API"的工程判断准则是一脉相承的。

五、自主性与持久性:默认倾向"动手改代码"

"Autonomy and Persistence" 明确了任务执行的总原则:在当前回合内尽量把任务端到端彻底处理完——不停留在分析或部分修复,而是把改动推进到实现、验证、并给出清晰结果说明,除非用户明确暂停或改道。

最具指导意义的是"默认假设"条款:

除非用户明确要求一份计划、询问关于代码的问题、正在头脑风暴解决方案,或有其他迹象表明不该写代码,否则应假定用户希望你修改代码或运行工具来解决问题。

换句话说,提示词强制 Agent 把"只是口头给出方案"视为失败模式。对应的反面清单同样清晰:仅当用户要计划、问代码问题、或头脑风暴时才"只说不做"。遇到挑战或阻塞时,Agent 应先尝试自行解决,再交还用户。

六、响应性设计:User Updates Spec 的长任务沟通协议

针对"工具调用会持续数轮"的协作场景,提示词专门用 "User Updates Spec" 规定更新频率与话术,防止 Agent 长时间静默或刷屏:

频率与篇幅

  • 每出现值得同步的有意义信息/洞察,发 1–2 句短更新;
  • 预计长时间埋头工作前,先发一条简短的 heads-down 说明(为什么、何时回报),恢复时再总结收获;
  • 只有初始计划、计划更新和最终总结允许多行多段的长文本。

语气:友好、自信、资深工程师气场(friendly, confident, senior-engineer energy),积极协作、谦逊,快速修正错误。

内容节奏

  • 第一次工具调用前给出简短计划:目标、约束、下一步;
  • 探索途中主动指出有意义的发现(helps the user understand what's happening);
  • 计划变更(例如放弃承诺的 helper、改做内联微调)要在下一次更新或总结中显式说明。

提示词甚至给出了大量可直接复用的真实话术范例,如"I've explored the repo; now checking the API route definitions.""I'm about to scaffold the CLI commands and helper functions."等,全部是当下进行时、指明下一步动作的短句——这正是"流畅编码伙伴"人格在工程沟通中的具体落地。

七、Planning:update_plan 工具的完整状态机

Agent 通过update_plan工具维护步骤进度并向用户渲染。提示词对"何时用计划、计划怎么拆、状态怎么流转"约束得非常细:

适用场景:任务非平凡且需跨较长时间多动作;存在逻辑阶段或依赖顺序;有歧义需要高层级目标对齐;需要中间检查点;用户一次提出多个诉求;用户明确要求使用计划工具;以及在工作中自行生成的新步骤需要先列入计划再执行。同时强调不要用计划给简单任务凑步骤、不要规划自己无法验证的事项,单步简单查询直接回答即可。

高质量计划标准:每个步骤一句话(如 "Add CLI entry with file args → Parse Markdown via CommonMark library → Apply semantic HTML template → Handle code blocks, images, links → Add error handling for invalid files"),5 步左右的粒度,逻辑有序、可逐步验证。提示词专门用正反两组示例(high-quality vs low-quality)做对比训练——低质量示例(如 "Create CLI tool → Add Markdown parser → Convert to HTML")因颗粒度过粗而被点名。

状态机纪律

  • 同一时刻只能有一个in_progress项;
  • 项完成即标记completed,状态转换要及时发布;
  • 禁止pending直接跳成completed(必须先置in_progress),也禁止事后批量补标多项完成;
  • 回合结束前必须让所有项处于completed或被显式canceled/deferred
  • 理解变化导致作用域转变(拆分/合并/重排条目)时,须先更新计划再继续,防止计划"发霉"(go stale)。

调用update_plan后不得复述计划全文(harness 已展示),只总结改动并点出重要上下文或下一步。

八、任务执行与编码准则

"Task execution" 把 Agent 定义为coding agent:必须坚持到查询完全解决才结束回合让出控制权,函数调用失败也要坚持推进,绝不猜测或编造答案。并明确边界:允许在环境内修改仓库(即使私有)、允许做漏洞分析、允许向用户展示代码与工具调用细节。

值得注意的工具纪律:文件编辑必须用apply_patch工具(只认这一种拼写,NEVER tryapplypatchapply-patch),且它是 FREEFORM 工具,补丁不得包在 JSON 里。这条在后续 "Tool Guidelines" 中给出了完整的补丁信封格式规范。

随后是一组编码守则(可被 AGENTS.md/用户指令覆盖):

  • 根因修复问题,而非表面打补丁;
  • 避免不必要的复杂度;不修无关的 bug 或坏测试(可在最终消息中提及);
  • 必要时更新文档;改动最小化、聚焦任务、与既有代码风格一致;
  • 需要更多上下文时用git log/git blame追溯历史;
  • 未经明确要求绝不添加版权/许可头、绝不git commit或新建分支;
  • 未经明确要求不写内联注释不使用单字母变量名
  • 禁止在输出中使用类似【F:README.md†L5-L14】的伪内联引用——CLI 无法渲染它们。正确做法是输出合法文件路径,让用户可直接点击在编辑器中打开。

最后一点尤其值得关注:它说明 Codex CLI 的输出链路把"可点击文件路径"当作一等公民,任何中间格式的引用标记都会破坏 UI 体验。

九、验证、测试与"雄心 vs 精准"

验证工作一节规定了测试启动哲学:先跑针对你所改代码的最具体测试快速发现问题,再逐步扩大到更广的测试以建立信心。没有测试时,如果代码库相邻模式显示有合理位置,可以补一个;但不要给完全没有测试的代码库硬加测试。格式化问题最多迭代 3 次,仍未解决就以正确方案交付并显式说明格式遗留。

一个实用的"审批模式"条款:在非交互审批模式(neveron-failure)下可主动跑测试/lint;在交互审批模式(untrustedon-request)下应先把测试命令推迟到用户准备收尾时再跑,因为这类命令耗时且拖慢迭代;而测试类任务(加测试、修测试、复现 bug 验证行为)无论审批模式都可主动执行。

"Ambition vs. precision"则给出了创造性投入的判断标尺:全新任务(无既有上下文)可以放开手脚体现创造力;而在既有代码库中要像外科手术一样精准——尊重周边代码,不做越界的重命名/变量改动,按用户需要的详略与复杂度交付,在任务模糊时做高价值的创意补充,在需求明确时则保持克制。

十、最终消息的呈现规范(Final answer)

这是本提示词对输出格式约束最强的部分,体现了 Codex CLI 将最终回答当作"会被 CLI 样式化渲染的纯文本"来处理的设计:

  • 章节标题:仅在提升可读性时使用,保持简短(1–3 词)、**Title Case**格式、标题以**开头结尾、标题下第一个 bullet 前不留空行、避免过度分节。
  • Bullet:一律-加空格;相关点尽量合并,不给琐碎细节单独列条;列表保持 4–6 条、按重要性排序。
  • Monospace:所有命令、路径、环境变量、代码标识符与代码样例统一用反引号包裹;绝不混用 monospace 与粗体标记,根据该词是关键字(**)还是行内代码/路径(`)二选一。
  • 文件引用:必须给出相关起始行,使用行内代码让路径可点击;每条引用独立成路径;行号一基、可带列号;禁止file://vscode://https://等 URI;不提供行区间。
  • 结构:从 general → specific → supporting info 组织;复杂回答用清晰标题分组、简单结果用最少标题。
  • 语气:协作自然、像编码搭档交接;现在时与主动语态;段落自洽,避免"见上文/下文"。
  • Verbosity 硬约束:极小改动(≤10 行)→ 2–5 句或 ≤3 bullets,无标题,最多 0–1 段 ≤3 行的代码;中等改动 → ≤6 bullets 或 6–10 句、最多 1–2 段 ≤8 行片段;大型多文件改动 → 按文件总结、除非关键否则避免贴大段代码;永远不出现before/after 对照、完整方法体或超长滚动代码块。
  • 禁止:在正文里出现字面 "bold"/"monospace" 字样、直接输出 ANSI 转义码、深层嵌套 bullet。

十一、工具使用约定:Shell、apply_patch 与 update_plan

正文收尾部分是三条工具级操作约定:

Shell commands:检索文本/文件优先使用rgrg --files(远比grep快);若rg不存在才用替代品;不要用 Python 脚本输出文件的大段内容。

apply_patch:文件编辑统一走这个工具,其补丁语言是"精简的、面向文件的 diff 信封"。完整信封格式如下(原文原样):

*** Begin Patch *** Add File: hello.txt +Hello world *** Update File: src/app.py *** Move to: src/main.py @@ def greet(): -print("Hi") +print("Hello, world!") *** Delete File: obsolete.txt *** End Patch

规则只有两条:每个操作必须带 Add/Delete/Update 之一的动作头;即便是新建文件,每一行内容也必须用+前缀。

update_plan:调用update_plan时提供 1–5 个一句话步骤(每步不超过 5–7 个词),每步带pending/in_progress/completed状态;步骤完成就用update_plan把已完成项标completed、把当前项标in_progress,始终只有一个 in_progress,直到全部完成。

十二、仓库横向对照:base_instructions 在 Codex 提示词演进中的位置

将本文件放回仓库的 Codex 提示词家族中,可以清晰地看到其定位与演进脉络:

  • 同批次(client 0.119.0)的三个 codex 变体(gpt-5.1-codex.md、gpt-5.1-codex-max.md、gpt-5.1-codex-mini.md)与本文档共享同一套元数据(版本、抓取时间、272000 上下文窗口),但角色身份分化为 "Codex based on GPT-5" 系列,说明 OpenAI 在同一版本中同时维护了以模型为中心和以工具为中心的两类身份叙事;
  • 本文档自述 "Body source: base_instructions (no template / no personality variable system)",意味着它是无人格插槽的原始形态;而仓库内更新的 codex-full.md(完整版 SYSTEM INSTRUCTIONS,含<DEVELOPER_INSTRUCTIONS><USER_INSTRUCTIONS><ENVIRONMENT_CONTEXT><BUILTIN_TOOLS>等分区)与独立人格文件,代表了其后模板化、结构化的发展方向;
  • 仓库 README.md 还收录了plan_mode(OpenAI/Codex/plan_mode.md)、auto-review、computer-use 等模式级提示词,显示 Codex 的做法是把"通用人格 + 模式专项 + 仓库 AGENTS.md"分层组合,而非把所有行为塞进单份提示词。

从这份早期 base_instructions 到分层模板体系的演进可以推断:Codex 提示词工程的核心策略始终是把可复用的行为契约(任务执行、沟通协议、工具纪律)固化为共享指令,把可变的场景因素(人格、模式、仓库规范)外置为可插拔组件——这正是本仓库抓取文档最具工程借鉴价值的一点。

结语

gpt-5.1的这份系统提示词展示了一套高度工程化的编码 Agent 行为契约:用身份声明与命名消歧建立模型认知锚点,用 AGENTS.md 作用域与优先级协议把项目约定交给仓库文件,用"默认动手"与持久性原则保证端到端交付,用 User Updates Spec 与 update_plan 状态机管理长任务中的沟通节奏,再用 final answer 格式约束把输出压缩成适合 CLI 渲染、路径可点击的高信噪比文本。对于想设计或调校自己 Coding Agent 的开发者,这份抓取稿本身就是一份可以直接对照取用的规格说明书。

【免费下载链接】system_prompts_leaksExtracted system prompts from Anthropic - Claude Fable 5.1, Opus 5, Claude Design, Claude Code. OpenAI - ChatGPT GPT-6-Astra, Codex. Google - Gemini 3.8 Flash, 3.1 Pro, Antigravity. xAI - Grok, Grok Bot, Cursor, Kimi and more! Updated regularly.项目地址: https://gitcode.com/GitHub_Trending/sy/system_prompts_leaks

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 5:37:49

概率云测试:用平行宇宙抓随机bug的实战方法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/10 5:32:21

LabVIEW原生实现DataMatrix与PDF417二维码生成

简介&#xff1a;本资源是一款基于LabVIEW开发的DataMatrix与PDF417二维条码生成工具&#xff0c;面向工业自动化、仪器控制及嵌入式系统领域的工程师与高校师生&#xff0c;解决LabVIEW平台下缺乏原生高兼容性二维码生成能力的问题。压缩包共464个文件&#xff0c;含351个可直…

作者头像 李华
网站建设 2026/9/10 5:30:08

STM32嵌入式中旋转开关与Modbus浮点参数协同设计

1. 为什么一个4档旋转开关要动用Modbus和float拆分&#xff1f;——从IO资源瓶颈说起你手头那块STM32F103最小系统板&#xff0c;GPIO口明明标着“51个通用IO”&#xff0c;可真到做工业现场采集模块时&#xff0c;光是8路DI、6路DO、2路RS485、1路CAN、1路USB、1路SPI Flash……

作者头像 李华
网站建设 2026/9/10 5:30:03

多隐层架构的数理本质:函数逼近与流形折叠

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/10 5:26:08

微环谐振腔光频梳LLE方程MATLAB仿真入门与实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华