尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

gstack 的 GPT 模型行为叠加层(model-overlays/gpt.md):从四条行为规则到 Preamble 注入机制

gstack 的 GPT 模型行为叠加层(model-overlays/gpt.md):从四条行为规则到 Preamble 注入机制 gstack 的 GPT 模型行为叠加层model-overlays/gpt.md从四条行为规则到 Preamble 注入机制【免费下载链接】gstackUse Garry Tans exact Claude Code setup: 23 opinionated tools that serve as CEO, Designer, Eng Manager, Release Manager, Doc Engineer, and QA项目地址: https://gitcode.com/GitHub_Trending/gs/gstack本文以 gstack 仓库中的 model-overlays/gpt.md 为核心逐条解析该 GPT 模型家族行为叠加层model overlay的四条行为规则与从属性边界条款并结合 scripts/resolvers/model-overlay.ts、scripts/models.ts 与 scripts/resolvers/preamble.ts 的源码说明该文件如何被解析、继承并注入每个 skill 的 Preamble。读完后你将理解 gstack 如何按模型家族差异化调教 Agent 行为、{{INHERIT}}继承链如何工作以及如何定位验证这些规则的测试用例。1. 什么是模型叠加层gpt.md 在项目中的定位gstack 是一套面向 CEO / Designer / Eng Manager / QA 等角色的技能skill工具集。每个 skill 独立运行通过模板解析生成完整的系统前导Preamble。不同模型家族Claude、GPT、Gemini、o 系列等在话痨程度、完成度偏好、提问节奏上各有惯性gstack 用model-overlays/目录下的一个.md文件对应一个模型家族对模型做行为微调scripts/models.ts 定义了全部受支持的模型家族常量ALL_MODEL_NAMESclaude、opus-4-7、fable-5、opus-4-8、sonnet-5、gpt、gpt-5.4、gpt-5.6-sol、gemini、o-seriesmodel-overlays/{family}.md即该家族的行为补丁文件gpt.md 就是 GPT 家族的基准补丁文件头部注释明确强调host ≠ modelClaude Code 可以跑任何 Claude 模型Codex CLI 跑 GPT/o 系列生成器不会从 host 自动推断模型用户可显式传--model否则由各 host 提供生成默认值scripts/models.ts。CLI 模型名的归一化由 resolveModel() 完成其规则直接决定了什么样的调用最终落到 gpt.md输入示例解析结果说明gpt、gpt-5、gpt-6gpt族启发式/^gpt(-|$)/匹配gpt-5.4、gpt-5.4-mini、gpt-5.4-turbogpt-5.4/^gpt-5\.4(-|$)/优先于通用gpt规则gpt-5.6-solgpt-5.6-sol仅精确匹配可达源码注释明确禁止为 Sol 添加族模式防止Terra、Luna等未来变体误继承 Sol 的行为画像scripts/models.tso3、o1-pro等o-series落到 o-series.md未知输入null由调用方决定报错或回退因此gpt.md是 GPT 族的兜底行为基线任何未被更精细规则捕获的 GPT 模型 ID最终都套用这份 32 行的行为补丁。2. gpt.md 全文规则逐条解析gpt.md 全文仅 32 行但每一条都针对 GPT 模型族在长任务中的典型失效模式。以下按原文顺序逐条展开。2.1 Completion bias完成度偏好不要在完整解法可达时以部分解法结束回合。遇到错误就去调试测试失败就去修复遇到歧义就做最佳判断并继续推进——除非真的被卡住否则不要停下来问。这条规则对抗的是把问题抛回给用户的懒惰收尾错误堆栈、失败测试、模糊点只要可解决就应就地解决。注意它不是无条件鲁莽推进——第 2.5 节会说明它必须从属于 skill 工作流的安全门。2.2 Prefer doing over listing做优先于列清单当你想写你也可以试试 X、Y、Z时自己挑最优的一个执行然后报告结果。这是对选项堆砌型回复的直接约束模型应输出决策 执行 结果而不是把选择题留给用户。2.3 No preamble禁止开场白跳过好问题让我来帮你、跳过复述用户请求。直接进入工作。针对 GPT 模型常见的寒暄式开场要求输出以实际工作开始。2.4 AskUserQuestion is NOT preamble例外条款与完整决策简报格式这是全文最关键的例外上面No preamble和Prefer doing over listing不适用于 AskUserQuestion 的内容。原文理由很直接——当你调用 AskUserQuestion 时用户即将做一个决策他们需要的是上下文而不是简短。每当模型发起 AskUserQuestion必须输出 Preamble 中 AskUserQuestion Format 一节由 scripts/resolvers/preamble/generate-ask-user-format.ts 生成规定的完整四段格式Re-ground重新锚定项目 分支 任务1–2 句话SimplifyELI10用 16 岁青少年能懂的大白话解释正在发生什么、赌注是什么。原文强调这是不可协商的Non-negotiable这不是开场白——具体利害而非抽象权衡Recommend推荐单独一行RECOMMENDATION: Choose [X] because [one-line reason]。原文两次强调永不省略这一行永不把它折叠进选项列表Options选项A) B) C)带字母的选项附 Completeness 分数当选项在覆盖度上可区分时或附选项在种类上不同options differ in kind的说明当选项不可用同一覆盖度尺度比较时。对应地Preamble 中生成的完整决策简报模板长这样摘自 generate-ask-user-format.tsDN — 一行问题标题 Project/branch/task: 用 _BRANCH 写的一句锚定 ELI10: 16 岁能懂的 2-4 句大白话说明利害 Stakes if we pick wrong: 选错会怎样一句话 Recommendation: choice because one-line reason Completeness: AX/10, BY/10 或Note: options differ in kind, not coverage Pros / cons: A) 选项 (recommended) ✅ 具体、可观测的优点≥40 字符 ❌ 诚实的缺点≥40 字符 B) 选项 ✅ 优点 ❌ 缺点 Net: 一句话总结真正的权衡其中Completeness采用 10 分制10 完整实现、7 happy path、3 捷径(recommended)标签必须保留因为 gstack 的 AUTO_DECIDE 机制依赖它generate-ask-user-format.ts。gpt.md 还给出了自检触发器如果你发现自己正要发出一个没有 ELI10 段落、没有 RECOMMENDATION 行、或只是罗列选项后问选哪个的 AskUserQuestion——停下来退一步重新按完整格式输出。用户反正会要求你这么做所以第一次就做对。2.5 Subordination叠加层必须从属于 skill 工作流原文最后一节划定了边界提醒从属性适用。当 skill 工作流说 STOP 时就停下。当 skill 通过 AskUserQuestion 发问时那是等待用户的门wait-for-user gate不是歧义。Completion bias 不能覆盖安全门safety gates。也就是说第 2.1 节的做完再说和第 2.2 节的别列选项自己做主在 skill 显式要求停下、或 skill 通过 AskUserQuestion 征询用户时全部失效。这条自限条款不是孤立的文案——它和解析器自动注入的从属声明下一节共同构成双重保险。3. 注入机制gpt.md 如何进入系统提示3.1 解析器与三级回退scripts/resolvers/model-overlay.ts 的头部注释完整描述了优先级规则精确匹配ctx.model gpt时读取 model-overlays/gpt.mdINHERIT 指令若文件首个非空白行是{{INHERIT:base}}解析器先把基准家族的内容读出来再拼接到本文件剩余内容之前。这让 gpt-5.4.md 能在gpt.md之上追加规则而不重复内容文件缺失返回空字符串优雅降级不报错未设置 ctx.model返回空字符串。readOverlay()的实现model-overlay.ts用seen集合做环检测防止继承循环正则INHERIT_RE要求指令必须出现在文件开头。gpt-5.4.md 正是这个机制的实例——它以{{INHERIT:gpt}}开头即先注入 gpt.md 全文再追加自己的反冗余协议状态更新一行化、不叙述将要做什么、代码改动只展示变更行等。3.2 从属包装每个 overlay 自动带上优先级声明generateModelOverlay()model-overlay.ts不会裸返回文件内容而是包一层带标题的区块## Model-Specific Behavioral Patch (gpt) The following nudges are tuned for the gpt model family. They are **subordinate** to skill workflow, STOP points, AskUserQuestion gates, plan-mode safety, and /ship review gates. If a nudge below conflicts with skill instructions, the skill wins. Treat these as preferences, not rules. gpt.md 全文即无论 overlay 文件内容如何skill 冲突时 skill 胜出把规则当偏好而非律法这句话总会随每个 overlay 出现。这从机制层面保证了 gpt.md 第 2.5 节的自我约束即使被模型忽略也有系统级声明兜底。唯一的例外是gpt-5.6-sol解析器为它生成不同的声明文本限定它只对complete / full / every / exhaustive / 100% / Boil the Ocean这类模糊完成度词汇做消歧且明言永远不要用这个补丁跳过任何具体需求model-overlay.ts。对照 gpt-5.6-sol.md 的内容可以看到它解决的是另一个 GPT 侧问题——过度扩张任务边界explicit task is the lake相邻重构只做报告不做实施、调查有界、验证通过即终止与 gpt.md 解决完成度不足恰好互补。3.3 Preamble 中的位置顺序即语义在 scripts/resolvers/preamble.ts 的组装配方中generateModelOverlay(ctx)紧随generateAskUserFormat(ctx)之后拼接// AskUserQuestion Format renders BEFORE the model overlay so the pacing rule // is the ambient default; the overlays behavioral nudges land as subordinate // patches. Opus 4.7 reads top-to-bottom and absorbs the first pacing directive // it hits; reversing this order regresses plan-review cadence (v1.6.4.0 bug). ...(tier 2 ? [generateAskUserFormat(ctx)] : []), generateBrainSyncBlock(ctx), generateModelOverlay(ctx),源码注释交代了一个真实事故v1.6.4.0 曾因 overlay 中的提问节奏指令渲染在 skill 级 pacing 规则之上模型自上而下读入后把错误指令当成了环境默认值导致 plan-review 节奏回退。这个教训同时解释了 gpt.md 为何反复强调 AskUserQuestion 的完整格式——Preamble 的 AskUserQuestion Format 段落是环境默认而 gpt.md 中的对应条款只是针对 GPT 家族倾向于在提问前省略上下文这一习惯的强化重申二者顺序不可颠倒。4. 验证体系这些规则如何被测试锁定gstack 对 overlay 的约束不靠口头约定而是有三层可执行验证回归测试锁定关键措辞。以 test/model-overlay-opus-4-7.test.ts 为范本测试直接断言 overlay 文件包含/不包含特定指令如必须含Pace questions to the skill、不得含**Batch your questions.**并调用generateModelOverlay()验证解析后输出确实继承了{{INHERIT:claude}}基准、含从属声明。针对 GPT 族的等价证据在 Codex e2e 测试的 touchfiles 清单中test/codex-e2e-plan-format.test.ts 将model-overlays/gpt.md与model-overlays/gpt-5.4.md列入格式回归测试的变更触发文件——一旦这两个 overlay 被改动plan 格式 e2e 用例必须重跑test/codex-e2e-sol-scope.test.ts 同样把 model-overlays/gpt-5.6-sol.md 和解析器本体列为触发文件。行为级 overlay 评测 harness。test/fixtures/overlay-nudges.ts 维护嵌入在 overlay 中的 nudges 评测夹具配合 test/skill-e2e-overlay-harness.test.ts 在真实 skill 会话中验证行为补丁是否生效。付费评测前置体检。scripts/preflight-agent-sdk.ts 在任何付费 eval 运行前确认readOverlay()能正确解析{{INHERIT}}指令且不残留未解析的指令字符串。此外scripts/resolvers/preamble/generate-upgrade-check.ts 会在 Preamble 升级检查中处理.feature-prompted-model-overlay标记文件缺失时提示Model overlays are active. MODEL_OVERLAY shows the patch.——即 Preamble 会明确告诉模型存在一个行为补丁区段引导其注意## Model-Specific Behavioral Patch (gpt)的存在。5. 小结读 gpt.md 的正确姿势gpt.md 是 GPT 模型家族在 gstack 中的行为基线核心是四组规则完成度偏好、做优先于列清单、禁止寒暄开场以及最关键的例外——AskUserQuestion 决策简报必须输出 Re-ground / ELI10 / RECOMMENDATION / Options 四段完整格式它不是独立指令而是被 model-overlay.ts 解析、带上从属于 skill 工作流的包装标题、按精确顺序注入 Preamble 的补丁preamble.ts与 generate-ask-user-format.ts 生成的 AskUserQuestion Format 形成环境默认 家族强化的分工家族变体通过{{INHERIT:gpt}}在其上叠加如 gpt-5.4.md 的防冗余协议而 gpt-5.6-sol.md 走精确匹配 独立消歧声明的特殊通道所有规则均有测试锁定touchfiles 触发、overlay harness、preflight 体检改动 overlay 文件会直接触发对应 e2e 回归。理解这套机制后当你阅读 gstack 中任意model-overlays/*.md时都可以用同一框架拆解它针对哪个模型家族、对抗哪种行为惯性、在继承链中处于哪一层、被哪些测试用例守护。【免费下载链接】gstackUse Garry Tans exact Claude Code setup: 23 opinionated tools that serve as CEO, Designer, Eng Manager, Release Manager, Doc Engineer, and QA项目地址: https://gitcode.com/GitHub_Trending/gs/gstack创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表