ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

oh-my-codex v0.8.5 技术解读:Posture-Aware Agent 路由与三处关键修复

oh-my-codex v0.8.5 技术解读:Posture-Aware Agent 路由与三处关键修复 oh-my-codex v0.8.5 技术解读Posture-Aware Agent 路由与三处关键修复【免费下载链接】oh-my-codexOmX - Oh My codeX: Your codex is not alone. Add hooks, agent teams, HUDs, and so much more.项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-codex本篇以 oh-my-codex v0.8.5 版本发布说明为核心系统拆解该版本引入的实验性 Posture-aware Agent 路由机制Role / Tier / Posture 三维元数据体系并逐一还原 Windows ESM 动态导入崩溃、tmuxcapture-pane空输出、遗留模型别名泄漏三处修复的根因与源码实现。读完本文你将理解 oh-my-codex 如何通过omx setup为 Codex 原生 Agent 注入姿态指令与模型分级元数据掌握-S -N与-l N在 tmux 历史捕获中的语义差异以及 Node ESM 加载器对file://URL 的硬性要求。版本概览v0.8.5 发布于 2026-03-06包含自v0.8.4..dev的7 个非合并提交贡献者为 Yeachan-Heo、HaD0Yun、sjals93。完整提交日志见文末亦可对照仓库 CHANGELOG.md 中[0.8.5]一节。版本主线可归纳为四件事引入Posture-aware agent routing实验特性PR #588 / #592修复 Windows 下bin/omx.js的 ESM 动态导入崩溃PR #589修复 issue #557修复 tmuxcapture-pane使用非法 flag 导致 HUD 与通知拿不到终端输出PR #593修复 issue #591清理遗留模型别名gpt-5.3-codex/o3在 prompt 文件与运行时元数据中的残留引用PR #592 的一部分。核心特性Posture-aware Agent 路由实验性v0.8.5 最核心的改动是让每个 Agent 携带Sisyphus 风格Sisyphus-style的姿态元数据把原本混在一起的角色、推理深度和工作风格拆分为三个独立维度维度含义取值RoleAgent 的职责executor、planner、architect等Tier推理深度 / 成本LOW、STANDARD、THOROUGH文档原文Posture运行风格frontier-orchestrator、deep-worker、fast-lane说明Tier 维度在文档中以LOW/STANDARD/THOROUGH命名在后续版本的源码中这一维度由 Agent 定义的reasoningEffort字段承载取值为low/medium/high/xhigh见 definitions.ts 第 10 行。引用本版本文档时应保留原始命名同时以当前仓库实现为准。执行omx setup后生成的配置运行omx setup后原生 Agent 配置文件会写入~/.omx/agents/每个角色对应的 TOML 文件如planner.toml中会新增三个段落## OMX Posture Overlay—— 姿态指令posture overlay## Model-Class Guidance—— 模型分级指引model-class guidance## OMX Agent Metadata—— 机器可读的元数据清单。代表性路由映射文档给出的三条代表性路由规则为planner/architect/critic→frontier-orchestrator边界型编排者负责意图分类、委派、路由决策executor/build-fixer/test-engineer→deep-worker深度执行者偏向端到端实现explore/writer→fast-lane快车道偏向快速检索与轻量合成这些映射在当前仓库的 definitions.ts 中有完整实现例如explore的posture: fast-lane、modelClass: fast、routingRole: specialistplanner额外携带exactModel: gpt-5.6-solwriter为fast-lane但modelClass: standard——可见 posture 与 modelClass 是两个独立维度不能混为一谈。源码级拆解姿态指令如何被写入原生 AgentAgentDefinition 数据模型在 src/agents/definitions.ts 中AgentDefinition接口定义了完整的路由元数据字段export interface AgentDefinition { name: string; description: string; reasoningEffort: low | medium | high | xhigh; exactModel?: gpt-5.6-terra | gpt-5.6-sol; posture: frontier-orchestrator | deep-worker | fast-lane; modelClass: frontier | standard | fast; routingRole: leader | specialist | executor; tools: read-only | analysis | execution | data; nativeSubagentDelegation?: allowed; category: build | review | domain | product | coordination; }其中routingRoleleader/specialist/executor决定角色在路由层级中的位置category用于按构建、评审、领域、产品、协调分组。POSTURE_OVERLAYS 与 MODEL_CLASS_OVERLAYSsrc/agents/native-config.ts 是姿态指令的生成核心。三种姿态的 overlay 文本如下frontier-orchestrator实现前先做意图分类存在专家时优先委派与编排把第一个决策当作路由问题研究 vs 规划 vs 实现 vs 验证在方案可能引发可避免问题时先简洁地质疑用户假设保留显式的 executor 交接边界不吞掉本应由专家执行的深度实现工作。deep-worker任务明显偏向实现时直接执行并端到端完成先探索、再按既有模式做最小改动严格验证——声称完成前必须给出诊断、测试与构建证据仅在不同方案实质失败或架构权衡超出局部实现范围时才向上升级。fast-lane为快速分类、检索、轻量合成和窄路由决策优化除非任务边界清晰且明显否则不启动深度实现超出快速分类范围时升级给 frontier-orchestrator 或 deep-worker保持高质量、范围感知、模糊时保守。MODEL_CLASS_OVERLAYS则按模型能力分级给出指引frontier 类模型强调可操控性、权衡推理与精准委派standard 类强调自治与边界平衡、显式验证与窄范围控制fast 类强调快速检索与路由、宁升级也不硬撑。指令组装顺序composeRoleInstructionscomposeRoleInstructions按以下顺序组装developer_instructions剥离 prompt 文件的 YAML frontmatter 后的正文追加POSTURE_OVERLAYS[posture]## OMX Posture Overlay段追加MODEL_CLASS_OVERLAYS[modelClass]## Model-Class Guidance段若解析出的模型为精确模型如gpt-5.6-terra追加## Exact Model Guidance段强制 inspect → plan → act → verify 顺序禁止虚报结果原生 Agent 且未声明nativeSubagentDelegation: allowed时追加native_subagent_leaf_guard叶子守卫禁止其再派生子 Agent最后追加## OMX Agent Metadata段逐行写出role、posture、model_class、routing_role、resolved_model及可选的native_subagent_delegation。模型解析链resolveAgentModel每个角色最终落到哪个模型遵循严格优先级见 native-config.ts 的resolveAgentModel.omx-config.json中agentModels[agentName]的显式覆盖Agent 定义的exactModel如 planner/architect 固定为gpt-5.6-solresearcher 固定为gpt-5.6-terraexecutor特例直接继承 frontier主模型按modelClass映射frontier→ 主模型fast→ spark 模型standard→ 标准子 Agent 模型。默认模型常量定义在 src/config/models.tsDEFAULT_FRONTIER_MODEL gpt-5.6-sol、DEFAULT_STANDARD_MODEL gpt-5.6-terra、DEFAULT_SPARK_MODEL gpt-5.6-luna。用户可通过~/.omx-config.json的env块OMX_DEFAULT_FRONTIER_MODEL、OMX_DEFAULT_STANDARD_MODEL、OMX_DEFAULT_SPARK_MODEL或models/agentModels/agentReasoning块覆盖默认值。解析顺序统一为模式级覆盖 default键 环境变量 内置默认值。生成与校验闭环生成installNativeAgentConfigs遍历目录清单为每个可安装角色读取prompts/name.md调用generateAgentToml产出 TOML含model、model_provider、model_reasoning_effort、三引号包裹的developer_instructions写入~/.codex/agents/或~/.omx/agents/见 native-config.ts。校验src/scripts/verify-native-agents.ts 的assertTomlStructure会逐项断言生成的 TOML 满足name/description/model_reasoning_effort与定义一致developer_instructions非空且包含## OMX Agent Metadata元数据行必须含- role:、- posture:、- model_class:、- routing_role:允许委派的角色必须带native_subagent_delegation: allowed且不得出现叶子守卫反之叶子角色必须带守卫且不得出现委派标记。这条校验链保证了姿态路由元数据在发布、安装、运行时三层之间不会漂移。对应测试覆盖在 src/agents/tests/definitions.test.ts 与 src/agents/tests/native-config.test.ts另外 src/utils/agents-model-table.ts 会根据当前config.toml与覆盖项自动生成Model Capability Table把每个角色的推荐模型、推理力度与 use case含 posture 与 modelClass一并呈现。Bug 修复一Windows ESM 动态导入崩溃PR #589问题根因bin/omx.js在 Windows 上启动时报ERR_UNSUPPORTED_ESM_URL_SCHEME。原因是 Node 的 ESM loader 只接受file://URL 作为模块标识而import()收到的是一个裸绝对路径如C:\...。该错误正是ERR_UNSUPPORTED_ESM_URL_SCHEME的典型触发场景。修复方式将解析出的绝对路径通过url.pathToFileURL()转换为file://URL 后再执行动态导入。修复后的代码形态可在当前仓库 src/cli/omx.ts 中直接看到import { fileURLToPath, pathToFileURL } from url; // ... const distEntry join(root, dist, cli, index.js); if (existsSync(distEntry)) { const { main } await import(pathToFileURL(distEntry).href); await main(process.argv.slice(2)); }同样的模式被广泛用于脚本与测试的动态加载例如 src/scripts/smoke-packed-install.ts 中import(pathToFileURL(join(packageRoot, dist/...)).href)以及 src/hooks/extensibility/plugin-runner.ts 中为插件缓存失效追加时间戳查询参数的写法。可见路径必须先pathToFileURL再import已成为 oh-my-codex 在跨平台特别是 Windows环境下加载编译产物与插件的统一约定。Bug 修复二tmux capture-pane 返回空输出PR #593问题根因此前调用capture-pane时误用了-l N。-l并非 tmux 用于指定历史捕获行数的 flag正确的 API 是-S -N-S指定起始行的负数偏移-N表示从历史缓冲末尾往前数 N 行。由于 flag 无效终端最近输出从未被真正捕获直接导致HUD recent-output 显示为空、通知内容提取失败。修复方式与源码现状修复后统一使用-S -N。当前实现位于 src/scripts/tmux-hook-engine.tsexport function buildCapturePaneArgv(paneTarget: any, tailLines 80): string[] { return [capture-pane, -t, paneTarget, -p, -S, -${tailLines}]; }其中-t指定 pane 目标、-p将捕获内容输出到 stdout、-S -N捕获最后 N 行历史。该 argv 由 src/notifications/tmux.ts 的captureTmuxPaneWithLiveness消费默认捕获 12 行上限 2000 行且会在捕获前通过list-panes检查 pane 是否存活pane_dead并process.kill(pid, 0)探测进程确保不向已死的 pane 发起捕获。此外 src/notifications/tmux-detector.ts 复用同一 argv 构造器并强调参数永远以数组传递、绝不拼进 shell 字符串以防恶意 paneId 注入issue #156 的教训。另一个相关细节captureTmuxPaneWithLiveness返回的内容还会经过 src/notifications/tmux.ts 的sanitizeTmuxAlertText过滤——只含 OMX 元数据段如[OMX...]、ralph:n/m、分支名等的行会被剔除避免 HUD 状态行污染告警文本同时保留真实运行故障。这解释了为什么 v0.8.5 之后通知内容提取与HUD recent-output能同时恢复正常。Bug 修复三遗留模型别名泄漏清理PR #592 的一部分问题背景v0.8.2 已从配置层移除gpt-5.3-codex与o3两个模型别名但仍有15 个 prompt 文件与运行时 native-config 生成器继续引用它们。当姿态路由激活后这些残留引用会干扰 Tier / model-class 的引导判断——例如一个应走 standard 通道的角色其 prompt 里却残留gpt-5.3-codex字样容易造成模型选择与姿态指令不一致。修复方式全面清除 prompts 与definitions.ts元数据中的遗留别名引用。从当前仓库看配置层已迁移到 GPT-5.6 时代的三个默认模型gpt-5.6-sol/gpt-5.6-terra/gpt-5.6-luna见 src/config/models.ts且 src/cli/setup.ts 把gpt-5.3-codex与gpt-5.5归入LEGACY_SETUP_MODELS仅在用户交互确认时才执行升级迁移。这一演进链条0.8.2 移除别名 → 0.8.5 清理残留 → 后续迁移至 5.6说明模型别名是贯穿配置、prompt、元数据、测试的多层契约任何一层滞后都会造成路由语义漂移这也是 v0.8.5 专门建立verify-native-agents校验闭环的动机。其他变更README Maintainers 章节新增维护者名单Yeachan-Heo、HaD0Yun。基准对比截图向docs/benchmarks/添加 benchmark comparison 截图对应文件为 docs/benchmarks/tetris-benchmark-comparison-20260306.png文件名日期与 v0.8.5 发布日一致。完整提交日志v0.8.4..v0.8.507e2cfd chore: bump version to 0.8.5 and add maintainers to README 9bbe1e8 fix(notifications): use valid tmux capture-pane history flag 0ae60af docs(bench): add benchmark comparison screenshot 2f4862a docs(omx): remove remaining legacy model alias references 0d2115c fix(omx): remove legacy model aliases from prompts and runtime metadata 8fb3aa0 fix(bin): use file:// URL for dynamic import on Windows f448108 feat(omx): add posture-aware agent routing metadata验证与落地建议查看姿态元数据运行omx setup后检查~/.omx/agents/role.toml确认developer_instructions中包含## OMX Posture Overlay、## Model-Class Guidance、## OMX Agent Metadata三段且元数据行的posture/model_class/routing_role与 definitions.ts 一致。校验一致性仓库内通过src/scripts/verify-native-agents.ts对全部可安装角色做结构断言升级或自定义角色后可用相同思路核对 TOML 结构含叶子守卫与委派标记的互斥关系。检查模型通道结合omx setup生成的 Model Capability Table生成逻辑见 src/utils/agents-model-table.ts确认各角色实际解析到的模型属于预期的 frontier / standard / spark 通道必要时通过~/.omx-config.json的agentModels/agentReasoning做局部覆盖。tmux 场景若 HUD recent-output 或通知仍取不到终端输出优先核对调用侧使用的 argv 是否为[capture-pane, -t, pane, -p, -S, -N]避免重新引入-l这类无效 flag。以上所有实现细节均可在当前仓库对应源码与测试中复核例如 native-config.ts、verify-native-agents.ts、tmux-hook-engine.ts、tmux.ts、omx.ts 及 CHANGELOG.md。【免费下载链接】oh-my-codexOmX - Oh My codeX: Your codex is not alone. Add hooks, agent teams, HUDs, and so much more.项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-codex创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表