把 ChatGPT 网页端变成 Coding Agent Harness(远端 MCP 桥方案)

在已部署 oracle3 远端 MCP(agent-v2 = filesystem + shell)的基础上,用「远端 MCP 桥(IO 手脚)+ remote-coding-agent Skill(大脑流程)+ Project Bootstrap(上下文加载)+ 委托远端 Coding Agent(复杂实现)」四层,让普通 ChatGPT 网页对话具备 Observe→Reason→Act→Verify→Iterate 的 agent-like coding loop。

#type / howto #status / growing #tech / ai #tech / dev #resource / chatgpt #resource / openai #resource / mcp #infra / oracle #resource / bodysense

[!abstract] 一句话 agent-v2 已经把你「能读/能改/能跑命令」的能力门槛跨过了;剩下要补的不是更多权限,而是自动发现规则 + Skill 编排 + agent loop 规范。远端 SKILL.md 现在就能读、就能遵循,只是还不能像 ChatGPT 原生 Skill 一样自动触发;远端 .mcp.json 现在能读,但不会自动变成 ChatGPT 的 tools。本笔记讲如何把这四层组织起来,把普通网页聊天升级成稳定的 Web Coding Agent Harness。

部署层(怎么把 agent-v2 接通)见 通过 Secure MCP Tunnel 让 ChatGPT 读写 oracle3 上的 BodySense。本笔记是「接通之后怎么用成 agent」。

[!info] related notes

把 ChatGPT 网页端变成 Coding Agent Harness

0. 你现在实际已经拥有什么

agent-v2(经 Secure MCP Tunnel 连到 oracle3 的 combined-mcp.mjs)已经提供完整底层闭环:

ChatGPT 网页
   ↓ 理解任务
   ↓ agent-v2.read_text_file        ← 读代码
   ↓ 理解
   ↓ agent-v2.edit_file/write_file  ← 改代码
   ↓ agent-v2.run_command           ← pnpm / npm / pytest / go test / git diff ...
   ↓ 读取错误
   ↓ 继续改
   ↓ 再测
   ↓ 完成

这就是 coding agent 最核心的 Observe → Reason → Act → Verify → Iterate 闭环。实测 oracle3 上已存在全部「材料」:BodySense 的 AGENTS.md / AGENT.md.mcp.jsontools/agent-skills/*/SKILL.md,以及全局 ~/.hermes/skills/**/SKILL.md。所以「材料都在远端」已经成立。

[!warning] 产品层限制(别误解目标) OpenAI 明确说明:ChatGPT 正式 Agent mode 不会使用 custom apps。所以不要理解成「把 agent-v2 塞进官方 Agent mode」。我们做的是让普通 ChatGPT 对话本身具备 agent-like coding loop——这正是 OpenAI 对 full MCP custom apps 的定位:让 ChatGPT 不止 search/read,而是执行 write/modify 并组合多工具完成复杂工作流。

1. 三个必须区分的概念(核心心智模型)

这一步是后面一切的前提,搞混就会反复踩坑。

① 普通聊天 ≠ agent-like loop,但 agent-v2 已能支撑后者。 普通聊天是「问→答」。agent-like loop 是「理解→读→改→跑→看结果→再改」。agent-v2 给的是后者所需的手脚;缺的是让它主动进入这个循环的编排。

② 远端 SKILL.md ≠ ChatGPT 原生 Skill。

ChatGPT 原生 Skill
  ↓ 已注册到 Skill registry
  ↓ 自动知道 name + description
  ↓ 任务匹配时自动激活 → 渐进加载 SKILL.md

远端 oracle3 上的 SKILL.md(如 ~/.hermes/skills/foo/SKILL.md)
  ↓ 对网页 ChatGPT 而言只是「一个它有权限读的 Markdown 文件」
  ↓ 默认不知道它存在
  ↓ 必须先 search / list / read 才能遵循

结论:能遵循,但不是原生自动发现。OpenAI 原生 Skill 有独立发现机制(metadata 驱动自动触发 + 渐进式加载);远端 SKILL.md 目前只是仓库里的普通文件。

③ 远端 .mcp.json ≠ ChatGPT 的 tools。

ChatGPT 能调用哪些 MCP tools
  ↓ 由「连接到 ChatGPT 的 MCP App 本身暴露的 tools/list」决定
  ✗ 不由「扫描远程 repo 的 .mcp.json」决定

BodySense 的 .mcp.json 里定义了 context7 / codegraph / playwright / github / nx-mcp,但 ChatGPT 不会因为 agent-v2 能这个文件,就自动把它们变成当前聊天的 tools。两层是独立的。

2. 架构总览(四层)

flowchart TD
    Web[ChatGPT 网页对话] --> Skill[remote-coding-agent Skill<br/>大脑:流程/规则/判断/循环]
    Skill --> Boot[Project Bootstrap<br/>进入 repo 先加载上下文]
    Boot --> Bridge[agent-v2<br/>IO Bridge:read/edit/write/search/shell]
    Bridge -->|小任务| Direct[直接改代码 + 跑测试]
    Bridge -->|复杂任务| Delegate[run_command 启动远端 Coding Agent<br/>Codex / OpenCode / Claude Code]
    Delegate --> RemoteRepo[远端 agent 自己消费<br/>AGENTS.md · SKILL.md · .mcp.json]
    RemoteRepo --> Back[CodeGraph / Context7 / Playwright / GitHub / Nx]
    Direct --> Verify[Verify:test/lint/typecheck]
    Delegate --> Verify
    Verify -->|FAIL| Bridge
    Verify -->|PASS| Done[完成 + review]

职责边界一句话:agent-v2 负责「能不能做」(IO 手脚),Skill / AGENT.md 负责「应该怎么做」(大脑)。

3. 第一步:把 agent-v2 固定成「IO Bridge」,不再频繁改 schema ⭐

这是整个架构最重要的决定。理由:

  • 你现在是 ChatGPT Business,已发布的 custom MCP app 的 action 快照是冻结的——改 schema 不能 Refresh,必须 recreate 一个新 app(见 runbook 的「Business 快照冻结」坑)。所以 agent-v2 的 14 个工具要长期稳定
  • MCP 仍属 beta,频繁加工具 = 频繁 recreate,成本极高。

不要做「大杂烩」schema:

✗ 错误:agent-v2 里堆 bodysense-test / memoflow-test / run-codex / run-opencode / run-codegraph ...

要做「稳定 IO + shell 兜底」:

✓ agent-v2 只稳定提供 filesystem + shell
  所有高级能力(pnpm / go test / nx / docker / playwright / 启动 codex ...)
  全部走 run_command

run_command 其实就是万能逃生舱:任何新需求先问「能不能通过 shell 用?」能,就 run_command 解决,不要为它新增一个 MCP 工具。

固定后的责任模型:

  • agent-v2能不能做(IO / 执行)
  • remote-coding-agent Skill / AGENT.md应该怎么做(流程、规则、判断)

4. 第二步:Project Bootstrap 协议(马上就能做,无需改 App)

问题本质:ChatGPT 能访问项目,但进入项目后怎么知道项目规则?答案就是 Bootstrap——把它制度化。

完整协议(每次 coding 任务前执行):

1. 确认 repo root
   (向上找 .git / AGENTS.md / package.json / go.mod / pyproject.toml)
2. 读取 AGENTS.md
3. 按其链接继续读取 AGENT.md(你的 AGENT.md 已声明「仓库内 AI 协作唯一维护入口」)
4. 发现项目级 Skills:tools/agent-skills/**/SKILL.md
5. 根据当前任务「只加载相关 Skill」(渐进式,不全读——见下)
6. 检查 .mcp.json / package.json / project metadata
7. git status --short && git branch --show-current
8. 才开始任务

关键细节:不要一次把所有远端 Skills 塞进上下文。 oracle3 上有几十甚至上百个 ~/.hermes/skills/**/SKILL.md,全读上下文立刻爆炸。正确做法模仿 OpenAI 原生 Skill 的渐进式加载:先发现名字 → 按任务选 → 只读相关 Skill。例如任务「RAG 检索不稳定」→ 只读 validate-rag-pipeline/SKILL.md,不碰 validate-local-deploy

为什么固定检查 git status:防止 agent 进入项目后把用户已有的修改误当成自己产生的而覆盖/丢弃。bootstrap 时应记录工作树状态,并约定「已存在的修改默认不得覆盖或丢弃」。

Bootstrap 完成后可形成一份内部 PROJECT_CONTEXT 状态(root / branch / instructions / relevant skills / stack / available local MCP / working tree),从这时才开始工作。

5. 第三步:做真正的 remote-coding-agent ChatGPT Skill(大脑)

把第二步从「希望模型记得」变成「正式可复用工作流」。Skill 本质是一份长期保存的 Agent Operating Manual(给新工程师的 SOP),可包含 SKILL.md + references/ + scripts/,ChatGPT 可在任务匹配时自动采用。它负责五件事:

  1. 触发条件:用户要求改远程代码 / 修 bug / 实现 feature / 重构 / 跑测试 / review 并实施,且 agent-v2 可用时。

  2. 强制 BootstrapNever edit a project before bootstrapping it. 把第 4 步制度化。

  3. Direct vs Delegated 判断(最重要):

    维度Direct lane(网页 ChatGPT 自己改)Delegated lane(委托远端 Coding Agent)
    适合小 bug、1–3 文件、配置、简单测试修复、机械改动大型 feature、跨模块、架构重构、复杂 bug、大量探索
    流程read → edit → run_command test → 失败继续 edit写 brief → run_command 启动 codex/opencode → 检查 git diff → 跑测试 → review → 有问题再 dispatch
  4. 强制 Verification修改代码 != 完成任务。必须 Implementation → Verification → Review → Completion。JS 跑 pnpm test/lint/typecheck,Go 跑 go test ./...,Python 跑 pytest,或按项目 AGENT.md 决定。只有 tests pass + diff reviewed 才算完成。

  5. 控制危险操作:默认禁止 git push / git reset --hard / git clean -fd / rm -rf / 生产部署 / 改 secrets,除非用户明确要求。这样 run_command 能力虽强,行为仍受编排层约束。

6. 第四步:复杂任务委托远端 Coding Agent(真正像 harness)

不是所有事都由网页 ChatGPT 自己 edit_file。需要读 60 个文件、跨 8 个 package、改 14 个文件时,交给在 oracle3 上自主探索的 Coding Agent 更高效。最佳分工:

ChatGPT = Tech Lead / PM / Reviewer
Codex / OpenCode = Implementation Agent

怎么 dispatch(经 agent-v2.run_command):构造任务 brief(repo / goal / 先读哪些文件 / 约束 / 验证命令),后台启动并轮询,避免一个 MCP request 卡几十分钟:

nohup codex "<brief>" > /tmp/task-123.log 2>&1 &
echo $!   # 返回 PID,之后用 ps -p <pid> / tail -100 /tmp/task-123.log / git status 轮询

子 agent 完成不能直接相信——这是 orchestration 关键。应独立验证:

git diff --stat && git diff      # 看它到底改了什么
pnpm ...                         # 自己跑测试

再 review:需求满足?有无无关修改?测试真过?是否破坏项目规则?失败则带着具体错误(如 TS2322 apps/web/src/foo.tsx:53)形成第二轮 dispatch,循环到 PASS。最终 loop:

Plan → Implement → Verify → Review →(FAIL)→ Implement … →(PASS)→ Done

.mcp.json 在这一层价值凸显:网页 ChatGPT 本身不会自动加载远程 .mcp.json 的 MCP,但远端 Coding Agent 运行在 oracle3 上、本身支持 MCP,能直接消费 BodySense 的 context7 / codegraph / playwright / github / nx-mcp。于是形成漂亮的两级 Agent:

ChatGPT Web ─agent-v2→ oracle3 ─run_command→ Codex/OpenCode
                                            ├─ CodeGraph MCP
                                            ├─ Context7 MCP
                                            ├─ Playwright MCP
                                            ├─ GitHub MCP
                                            └─ Nx MCP

远端 SKILL.md 同理:网页 ChatGPT 经 bootstrap 读并遵循;远端 Coding Agent 若本身支持 Skills 则直接使用。于是两层分工:ChatGPT Skill = 总体 orchestration;Remote Skills = 项目/工具具体知识——你不需要把所有远程 Skill 复制进 ChatGPT。

7. 建议的建设顺序(不要四件事同时做)

阶段1  锁定 agent-v2,不再改 schema
阶段2  设计 Bootstrap protocol
阶段3  把 protocol 做成 remote-coding-agent Skill   ← 前 3 步完成就已很好用
阶段4  先实现 direct edit loop
阶段5  加入 Codex/OpenCode delegation
阶段6  加入 background-job + polling
阶段7  加入 review / verification loop

前 3 步完成以后,网页端体验就已经很接近 coding agent。 第四层是把「很好用」升级成「真正像 agent harness」。

8. 职责划分(为什么这样分)

职责是否常改
agent-v2文件 + shell(IO 手脚)几乎不改
remote-coding-agent SkillAgent 工作流(大脑)经常迭代
AGENT.md项目规范随项目演进
Repo SKILL.md专项工作流按需增加
.mcp.jsonCoding Agent 工具按项目演进
Codex/OpenCode大型实现可替换

最大收益:以后升级 Agent 行为,不需要重新发布 MCP App。绝大多数调整只发生在 Skill / AGENT.md / remote SKILL.md 这些「软件层」,而不是 MCP schema 这个「协议层」。

9. 路线图与既有笔记的关系

  • 本笔记是 runbook oracle3↔ChatGPT 远端 MCP使用层;runbook 是部署层(接通 agent-v2 + 处理 Business 快照冻结坑)。
  • 概念底座复用系列:Coding Agents(可测试/可验证闭环)、Autonomous Coding Agent(目标驱动迭代)、MCP 在 Agent Harness 中的配置架构(项目级配置/授权/启动收敛)、Coding Agent Skills(SKILL.md 渐进式加载)。
  • 下一步最合理的是正式设计 remote-coding-agent Skill:按现有 agent-v2 + oracle3 + AGENTS.md + remote Skills + Codex/OpenCode 环境,做成可直接安装到 ChatGPT 的完整 Skill(含 SKILL.md + references/bootstrap.md + references/delegation.md + references/verification.md)。

[!tip] 一句话记忆 ChatGPT 网页端变 coding agent = 远端 MCP 桥(手脚)+ remote-coding-agent Skill(大脑)+ Bootstrap(上下文)+ 委托远端 Coding Agent(复杂实现)。先稳定 IO、再写编排、最后才委托——前 3 步就够用,绝大多数改动留在 Skill/AGENT.md 层,别碰 MCP schema。

创建于 2026/8/15 更新于 2026/8/15