← 返回博客2026-07-20

从聊天机器人到生产级 AI 编程

我在 Claude Code + OpenAI Codex 实战中用到的概念、架构、坑和证据:从 model、Terminal/CLI、本地/云端/Remote Control,到 memory、MCP、skill、plugin、harness、workflow、hooks 与双 AI 交付。

第一部分从对话到动手:完成第一个可验证的小改动

先弄清代码在哪里运行、该用哪种工具,再用一个小任务跑通需求、修改、验证和审查。

我不想吹捧 AI,也不想靠贬低 AI 来表演怀疑精神

这篇文章不是 AI 广告,也不是一篇用几个翻车案例证明「AI 果然不可靠」的文章。我想做一件更简单的事:把自己真实使用 AI 编程的生产账本摊开,说清它帮我做到了什么,在哪里犯错,以及我怎样把这些错误变成系统规则。

过去大约三个月,我同时高强度使用 Claude Code 和 OpenAI Codex。我订阅的是每月各 200 美元的 Claude Max 和 ChatGPT Pro,基本每周都会把两边的可用额度跑满。这些额度不是用来反复生成 demo,而是在持续开发和运营一个真实的德州扑克产品 BluffKing:Rust 游戏引擎、基于 Axum 与 WebSocket 的后端服务、PostgreSQL 数据库、Vue H5、Flutter 移动端、回放系统和本地 solver coach,都在同一个生产工程里长期演进。

我也把产品带进了 H5、iOS、Android 和 Telegram 四个真实客户端的生产/发布链路。产品已经在线运行;H5 支付入口与订阅、会员权益系统已部署到生产,取消和退款流程也已实现:Stripe 测试模式与 Google Play 沙盒有完整的购买、取消、退款闭环证据;Telegram Stars 已在测试服务器验证购买与退款,但续订和有效订阅取消尚未验证;Apple 回放链路已绿,但还差第一笔沙盒购买。但我不会把「代码已上线」、「沙盒/测试闭环」和「每个渠道都完成真实资金验收」混成一个状态:截至本文审阅时,部分钱包、原生商店和链上渠道仍在完成最后的生产实付或商店验收。这不是一个只能跑 demo 的项目,但也不应该被包装成「所有支付渠道全绿」。

AI 并没有单独完成这一切。我负责产品目标、风险取舍、账号身份、付款授权和最终责任。两个 AI 的分工也不对称:普通仓库任务谁都可以实现,再由另一方审查;需要已登录 Chrome、网页控制台、打包上传或商店操作时,我直接交给 Claude Code,Codex 主要审查 diff、命令输出和页面证据;Claude 额度中断或 Codex 主动承担实现时,则反过来由 Claude 审查。我真正想分享的,就是这条从「会聊天」到「可参与 production」的中间路径。

这篇文章写给谁

  • 已经用过 ChatGPT、Claude 等对话产品,也让 AI 写过函数或脚本;
  • 自己有真实仓库、测试、CI 和生产环境,但还不敢让 Agent 大规模参与;
  • 想提高开发速度,又担心幻觉、密钥、错误部署和「AI 说完成了」的假结论。

读完以后,你应该得到什么

你不需要立刻复制我的全部系统。这篇文章的目标是让你先建立一张 AI 编程地图,分清 model、Terminal、Shell、CLI、agent、本地/云端/Remote Control、memory、MCP、skill、plugin、workflow、harness 和 hooks;再看懂它们怎样在真实项目中连起来;最后能安全完成第一个可验证、可回退、可审查的生产级小改动。

我推荐 AI 编程,不是因为 AI 不会犯错,而是因为它的错误可以被工程化地约束、发现和修复,而对我而言,它带来的生产力提升真实存在。

先把不同层放回各自的位置

GPT、ChatGPT、Codex、Claude Code、Terminal 和 CLI 不是同类东西,不应放在一张「谁更强」的对比表里。它们是一条调用链上的不同层:

智力层

Model

GPT 或 Claude 模型负责理解、推理和生成,但它本身没有你的仓库、Terminal 或账号。

产品层

Chat product / Coding-agent product

ChatGPT 这类对话产品偏问答与讨论;Codex 和 Claude Code 这类编程 Agent 产品把模型接到仓库、工具、权限和循环。

入口层

Terminal / IDE / Desktop

这些是你与产品交互的地方。Terminal 只是承载命令行会话的工程现场,它不是 AI。

命令层

Shell / CLI

Shell(zsh/bash/PowerShell)解释命令;CLI 是程序的文本入口。git 是 CLI 但不是 Agent;codexclaude 是启动编程 Agent 的 CLI。

Terminal承载会话
Shell解释命令
codex / claude CLI启动产品
Coding Agent组合模型·上下文·工具·权限·循环
Repository & evidence文件·Git·测试·浏览器·设备

我给初学者的明确推荐

如果你的目标是让 AI 参与真实仓库,我最推荐的起点是:从项目目录的 Terminal 启动一个编程 Agent CLI——Codex CLI 或 Claude Code。不要先纠结哪个模型排名第一,先选一个能读你的仓库、执行现有测试、展示 diff 且有明确权限边界的 Agent。

  • 为什么不以普通对话窗口为主:它适合解释和讨论,却不一定拥有当前仓库、命令执行和可核对证据。
  • 为什么先选 Terminal + CLI:当前目录、Git 状态、环境变量、测试输出和退出码都直接可见,也最容易进一步脚本化为 workflow 和 harness。
  • IDE 怎么用:当作看代码、对比 diff 和手工调试的辅助界面;不必为了用 Agent 放弃你熟悉的 IDE。
  • 什么时候用双 AI:先用一个 Agent 跑通「小任务→diff→验证→回退」;稳定后再加第二个新会话、尽量只读的 reviewer。

Codex 还是 Claude Code:按你真正依赖的环境选

你的主要需求更直接的选择原因与边界
纯仓库修改、命令、测试和 Git 自动化Codex CLI 或 Claude Code 都可以先选你更顺手、权限边界更清楚的一个;正确性来自任务约定与证据,不来自产品名字
必须从 CLI 使用已有登录态的 Chrome优先 Claude Codeclaude --chrome 可连接 Claude in Chrome;页面操作可直接使用当前 Chrome 登录态
想用 OpenAI 内置 Browser / Computer UseChatGPT 网页或桌面端OpenAI 官方说明内置 Browser 不在 Codex CLI/IDE;需要本地项目、内置终端或 Computer Use 时更适合桌面端,CLI 仍可运行 Playwright 或通过额外的 MCP/Plugin 接浏览器
离开工位后继续本机任务按远程入口选择ChatGPT Remote 从 ChatGPT 移动端连接配对主机;Claude Code Remote Control 可从 claude.ai/code 或 Claude 移动端连接本机 CLI/VS Code session
一句话结论:一般仓库开发任选其一;CLI 强依赖已有 Chrome 登录态时优先 Claude Code;要 OpenAI 内置浏览器时用 ChatGPT 网页或桌面端;要远程继续本机环境时,再按两家的 Remote Control 入口选择。

为什么我的日常入口一直是 Terminal

对我来说,Terminal 不是一个更「专业」的聊天框,而是工程现场。Agent 从正确的仓库或 worktree 启动后,当前目录、Git 状态、依赖、环境变量、命令输出和退出码都在同一条证据链上。

cd /path/to/project
git status
codex        # 或者:claude

我的常用路径是:进入项目目录 → 启动 Codex 或 Claude Code → 用自然语言说明目标、限制和完成条件 → Hook 检查当前 session 是否已经隔离。只读任务可以留在当前目录;如果 Agent 要在共享的 main 工作区写代码,Hook 会阻止写入,并要求它调用项目脚本创建独立 worktree,再在里面读文件、修改代码和执行测试。这样多个 session 才能并行工作而不共享同一个 HEAD 和未提交修改。最后,我再让另一个 AI 审查真实 diff 与验证证据。后文反复出现的命令、工作目录、Git、权限和 hooks,都是从这个入口展开的。

不需要先搭完后文的整套系统,Agent 才能开始写代码。一个 Agent 加一个小任务就可以起步。后面的 worktree、Hook、测试分层、独立审查和 release gate,是我在遇到并发冲突、误改、假绿和生产风险后逐步加上的护栏。项目越接近生产、并行 session 越多,越需要把这些护栏从「提醒」变成自动执行。

「远程」也不是一回事:对话、云沙箱与远程控制本机

判断一个 AI 工作方式时,最关键的问题不是「我在手机还是电脑上发 Prompt」,而是:代码和命令究竟在哪台机器上运行?

使用形态代码在哪里跑适合什么
普通对话主要在产品服务端生成回答;默认不能访问本机,只看你上传或 connector 授权的内容解释概念、写任务卡、讨论方案
云端 Agent / 远程沙箱厂商管理的隔离容器,通常 checkout 连接的 Git 仓库;不能任意访问你笔记本的文件、进程、登录态或本地设备本机关机后继续、并行任务、为仓库生成 diff/PR
本地编程 Agent你的电脑或你登录的开发机,受当前 sandbox 和 permission 约束;本机访问仅限你授权的仓库、命令、MCP、浏览器和设备需要本地依赖、未提交代码、本地 DB、浏览器或真机的日常开发
Remote Control:远程控制本机 Agent仍然在你的 Mac/Windows/开发机上——手机或浏览器只是远程窗口,session 保留本地原有的文件、工具、配置和权限离开工位后继续看进度、转向、回答问题、审批动作和复查证据
Remote MCP / Connector不是代码运行环境;它是远程服务暴露的数据与动作接口,只覆盖授权的服务范围,不等于获得整台电脑读 GitHub、Sentry、Linear、Gmail 等云服务的当前数据或执行限定动作
我的日常入口仍是本地 Terminal + Agent CLI。Remote Control 和云端沙箱不是「更高级」,而是按运行位置选:离开工位但必须继续使用同一本地 DB、MCP、浏览器或设备时选 Remote Control;本机可能关机、需要云端并行或不应触碰本机时,才选云端沙箱。对应到产品:Codex cloud 和 Claude Code on the web 是云端沙箱,ChatGPT Remote 与 Claude Code Remote Control 是远程控制入口。

Remote Control 也不等于 Computer Use。Remote Control 是「人在远程驱动一个本机 Agent session」;Computer Use 是「Agent 自己看、点、输入操作系统或应用界面」。两者可以组合,但权限和风险要分开评估。

远程控制的安全底线:主机必须保持运行和网络可达;使用账号认证与配对;保留本地 sandbox、审批和 Hook;并行 session 使用独立 worktree。不要因为你在手机上看不见所有细节,就给本机 Agent 长期 full access。

Browser、Computer Use 与「接管我现有的 Chrome」是三条不同路径

OpenAI 的内置 Browser 使用独立于日常浏览器的 profile;Computer Use 可以操作桌面应用和图形界面;只有 Chrome 扩展这条路径会接入我已经登录、正在使用的 Chrome。它们看起来都是「AI 在点浏览器」,实际依赖的权限、插件和故障边界完全不同。

一个我不会替 Codex 美化的真实缺点:在我的 Mac 和这套工作流中,Codex 直接控制 Chrome 的稳定性非常差:CLI 或桌面端只升级一个小版本,前一天还能用的连接就失效,修好后过几天又复发。切到界面上标为 GPT-5.6-SOL 的会话也不解决(这个标签只是我本机界面的记录,不是对公开模型目录的声明),因为出问题的是 Chrome 扩展、extension backend、Plugin 缓存与本地 runtime 之间的桥接,而不是模型推理。同一台机器、同一套工作流里,Claude Code 没有出现过这种反复断连。

我的实际处理方式不是每次先测试 Codex,而是直接按工具稳定性分工:凡是需要使用已有登录态 Chrome 或操作网页后台的任务,我都交给 Claude Code,例如填写 Stripe 控制台表单,或打包上传 iOS、Android 应用并操作商店后台。Codex 在这类任务里主要充当 reviewer:审查代码 diff、命令输出、状态记录和 Claude 提供的页面证据,不负责浏览器执行。这不代表 Codex 的 Chrome 链路已经修好,只是我不会再让一条反复失效的工具链阻塞生产工作。

一张能力图,而不是另一套章节编号

下面只是一张系统关系图:它帮助你看清能力怎样叠加,不代表必须按六个阶段依次安装。

1 · Model & Context模型推理,当前对话、代码和规则提供上下文
2 · Terminal / CLI / Agent & Tools终端承载 Shell 与 CLI,Agent 再调用文件、浏览器、Git 等工具
3 · MCP / Skill / Plugin连接外部系统,封装可复用能力,安装整套扩展
4 · Rules & Memory用指令文件固化必须遵守的规则,用 memory 回忆历史背景
5 · Workflow & Harness把多步任务编排成状态机,并用可执行程序控制环境与证据
6 · Hooks & Gates在关键生命周期阻止越权、跳过测试或直接破坏主分支

第一次使用 AI 编程,任务要足够小

不要从「重写整个项目」开始,也不要第一次就把支付、权限或数据库迁移交出去。最适合入门的任务应该范围清楚、结果可验证、失败后容易回退,例如:

  • 修复一个可以稳定复现的小 Bug;
  • 给已有函数增加边界测试;
  • 补一个表单校验或错误提示;
  • 重构一个输入输出明确的函数;
  • 先让 AI 解释一条调用链,不修改代码。

第一次跑通一个可信的小闭环,比第一次生成几千行代码重要得多。

给 AI 的任务卡:五项就够了

提示词不需要神秘。把下面五件事说清楚,效果往往就会大幅改善:

目标:登录失败时显示服务端返回的具体错误。

现象:当前所有失败都显示“网络错误”。

范围:只修改登录请求和错误展示,不调整页面设计。

验收标准:
1. 密码错误时显示正确提示;
2. 断网时仍显示网络错误;
3. 成功登录流程不受影响;
4. 增加回归测试。

限制:不修改接口协议,不增加新依赖。

如果你自己还说不清验收标准,AI 大概率也只能猜。先定义「怎样才算正确」,再让它动手。

一套可以直接照做的工作流

第一步:先保护现有工作,再隔离任务

先记录当前分支、基线 commit、工作区状态与 worktree。若已有未提交修改,先确认它们属于谁;不要让 Agent 自行 stash、reset、clean 或整库 restore。每个新任务应在独立 feature worktree 中写,两个 AI 不得共用同一工作目录。

git branch --show-current
git rev-parse HEAD
git status --short
git worktree list

# 确认基线和现有修改后,再从记录的基线创建隔离 worktree
git worktree add ../project-login-fix -b fix/login-error-message HEAD
cd ../project-login-fix

第二步:让实现者先调查,再修改

请先阅读项目规则和相关代码,确认根因后再修改。

要求:
1. 控制修改范围,不改变无关行为;
2. 增加一个修复前失败、修复后通过的回归测试;
3. 运行相关测试或真实环境验证;
4. 最后列出修改文件、验证结果和剩余风险;
5. 证据不足时,不要声称已经完成。

第三步:把实际差异和证据交给第二个 AI

我的实际流程里,这一步由另一个 AI 完成,不是我先逐行人工审 diff。审查者使用独立上下文,直接读取真实差异、相关代码和测试证据。

你是独立代码审查者,没有参与前面的实现。

请检查实际 diff 以及必要的上下游代码,重点寻找:
1. 逻辑错误和边界条件;
2. 安全、隐私、并发或兼容性问题;
3. 新增回归风险;
4. 缺失、无效或验证层级错误的测试;
5. 与项目现有规则冲突的修改。

不要因为测试通过就默认代码正确。

输出:
VERDICT: APPROVED 或 CHANGES_REQUESTED
OPEN: 尚未解决的问题列表

第四步:在流程内部闭环

审查者发现确认的问题后,不要停在报告,也不要把决定重新抛给人。直接进入「修复 → 测试 → 重新审查」,直到证据通过、审查明确批准并且 OPEN 为空。

第五步:人在本地或生产环境验收结果

我通常不逐行检查代码差异,主要介入最终结果验证:根据任务在本地或 prod 实际操作关键流程,确认功能是否真的可用、是否满足需求。发现问题后,我把复现步骤和真实现象交回 AI,继续「修复 → 测试 → 审查」。必须由账号持有者完成的身份确认、2FA、签名和付款授权仍由我控制;打包、上传、提交审核或已明确授权的发布操作,则可以由 Claude Code 执行并由 Codex 复核,不需要假装每一步都是我手动点完。

证据应该与风险匹配

先把验证层写进完成条件。第三部分会用真实案例解释为什么单元测试、浏览器、设备与生产证据不能互相替代。

完成是一项主张,证据才是事实。
改动类型最低证据常见误区
纯函数或算法针对性单元测试、边界用例只跑旧测试,没有证明新问题被覆盖
接口或状态流程集成测试、真实请求、错误路径只验证成功路径
前端视觉或动画真实浏览器、关键视口、视觉证据把 jsdom 通过当作浏览器通过
移动端或原生能力设备或模拟器验证、构建结果只检查共享业务代码
认证与授权、支付、迁移跨厂商独立审查、回滚方案、失败路径;方案高度不确定时再考虑双实现把双实现当成所有高风险任务的默认流程
我真正长期使用的是「一写一审」:一个 AI 实现,另一个不同厂商的 AI 审查真实 diff 和证据。两个 AI 在不同 worktree 中独立实现的 DualForge 我确实用过,例如 BNB-USDT HD 托管这类资金链路,但它不是所有高风险任务的默认流程;不少支付和认证加固仍然是 Codex 实现、Claude 审查。对初学者,先把「一写一审」跑稳定;只有任务风险、方案分歧和额外成本都值得时,再升级到双实现。
第二部分把概念弄明白:Agent 到底靠什么工作

动手做过一次以后,再理解 Memory、MCP、Skill、Plugin、Markdown 指令、Workflow、Harness 与 Hooks,这些词才不会变成一堆术语。

模型、Token、上下文、幻觉与 Memory

基础

Token

模型读写信息的计量单位;Token 既不等同于字符,也不等同于单词。代码、日志、工具输出和对话都会消耗 Token。

坑:同时塞进大量无关日志,会让关键需求被淹没,成本也会上升。

基础

Context Window 上下文窗口

模型一次能「看见」的信息范围。窗口再大,也不代表模型会同等关注每个细节,或能稳定可靠地利用它们。

可执行做法:主线保留目标、决策和验收标准;大段日志放到文件证据,只在任务真的独立时才交给受限子 Agent。

任务

Prompt

当前任务的指令。好 Prompt 不是口令,而是一张任务卡:目标、上下文、限制、完成条件。

坑:只说「帮我修一下」,等于授权 Agent 自己猜业务目标。

风险

Hallucination 幻觉

模型生成了语法流畅、听起来合理,却没有事实依据的内容。代码里可能表现为不存在的 API、文件或「已经测试」。

对策:要求文件路径、diff、命令输出、浏览器或设备证据。

跨会话

Memory

让 Agent 从旧任务中回忆你的偏好、历史决策和常见路径。它是检索层,不是数据库事实层。

我的教训:私有 memory 可以记住「应该去哪里查」,但不能决定 App Store、支付或部署的当前状态。

事实

Source of Truth 单一事实源

对一类状态最权威的位置,可以是代码、数据库、控制台或仓库内的状态文件。

BluffKing:移动商店状态读 store-release-status.json,公开发布读 changelog.json,不用任一模型的记忆替代。

一条很重要的生产规则: memory 适合存「背景和路由」,不适合存「随时会变的当前状态」。我的项目后来加入了共享 handoff ledger、ops ledger 和仓库状态文件,就是为了防止 Claude 与 Codex 读到不同的过期记忆。

Agent、Tool、Permission、Sandbox 与子 Agent

执行者

Agent

「模型 + 上下文 + 工具 + 权限 + 循环」组成的任务执行者。它不只回答,还会查文件、修代码、跑测试并根据结果继续。

区别:聊天模式主要给答案;Agent 模式主要完成可验证的任务。

执行

Tool / Tool Call

Agent 能调用的原子能力:读文件、执行 shell、搜索代码、访问浏览器、查 GitHub 等。每次调用都应该有清晰的输入输出。

坑:有工具不等于有权限;有权限也不等于应该使用。

安全

Permission / Approval

决定 Agent 执行某个动作前是自动进行,还是必须获得批准。读代码与删生产数据,绝不应共用同一权限级别。

我的边界:OTP、2FA、签名、付款、真实身份和不可逆操作仍由人控制。

隔离

Sandbox

它默认将所有输入视为不可信,并据此对 Agent 的读取、写入、执行与联网范围施加系统级限制。

Bug-free gate:确定性阶段会禁止外部网络,预热依赖后将其变为只读,减少供应链变量。

分工

Subagent / Agent Team

主 Agent 把独立子任务交给专门角色,例如后端审查、前端视觉检查或日志分析。适合可并行、读多写少的工作。

坑:子 Agent 会额外消耗 Token;多个 Agent 同时写同一目录,协调成本可能大于收益。

连续性

Session / Thread / Handoff

Session 是一次运行上下文,thread 是对话与工具记录。Handoff 是把分支、已改文件、最后成功/失败命令和下一步显式交给另一个 Agent。

我的做法:Claude 额度用完时,Codex 从实际 worktree、Git 状态和持久化 handoff 继续,不依赖一句「差不多做完了」。

MCP、Connector、Skill、Plugin 到底有什么区别

概念它是什么什么时候用我项目中的用法
MCP
Model Context Protocol
让 Agent 以标准方式连接外部工具与上下文的协议。MCP server 可暴露 tools、resources 和 prompts。需要访问 GitHub、浏览器、Figma、文档服务、内部系统或另一个 Agent 时交叉审查路径并不对称:Claude 通过配置的 Codex 工具/MCP 请 Codex 审查,Codex 产出则走 scripts/claude-review.mjs;MCP 是能力连接层,不是审查的唯一必经路径
Connector / App对某个服务的授权连接,通常处理登录、权限和结构化操作需要读取私有 GitHub、Gmail、Calendar 等数据时,比网页搜索或模型记忆更可靠我的 Codex 环境可接入 GitHub、Gmail、Calendar、Browser 和 Chrome;「已安装/可调用」不等于「项目已实际使用」,发送、删除和发布还要单独分权
Skill可复用的任务方法包,通常由 SKILL.md 加可选 scripts、references、assets 组成当一项工作会重复发生,且需要稳定步骤、专业知识或辅助脚本时bug-free-codexvisual-fidelityvisual-animation-verifyhot-fixsocial-postmemory-audit 都是项目 skill
Plugin可安装的分发单元,可以把 skills、MCP-backed apps/connectors、hooks 与 assets 打包在一起当你想直接安装一整套已组装好的能力,或向团队分发自己的工作方法时浏览器与 Chrome 能力以 plugin 形式安装,GitHub 以 connector/app 方式接入;任务命中后再按需加载相应 skill
Slash Command/ 显式触发的命令或工作流入口当你想清楚选择一种模式或可重复任务时bug-free-codex 这类明确触发词会启动固定质量门,而不是只发一段普通提示词
Skill 告诉 Agent 「这类任务应该怎样做」;MCP 给它「能用什么外部工具」;Plugin 则把这些能力组装成可安装的包。

一个常见误区是安装越多 plugin 就越强。实际上,过多工具和 skill 会占用发现上下文、增加选错工具的概率。我曾因 skills-context 预算警告检查全局配置,最后关闭不必要的 plugin,而不是继续往 Agent 里塞更多描述。

Markdown 文件不只是文档,而是 Agent 的长期操作系统

文件主要读者用来存什么BluffKing 里的作用
README.md人和 Agent产品概览、快速开始、仓库布局说明 Rust 引擎、Vue H5、PostgreSQL 数据库、WebSocket 房间与回放架构
AGENTS.mdCodex 等 Agent每次任务自动加载的仓库规则、命令、禁止项与验收方式规定一任务一 worktree、不能直改 main、不同风险对应不同测试
CLAUDE.mdClaude CodeClaude 端对应的持久指令AGENTS.md 共享核心合同,并用同步检查避免两个 Agent 规则分叉
SKILL.md被选中的 Agent某一类任务的触发条件、边界、步骤、辅助脚本和结束标准bug-free-codex/SKILL.md 定义从本地回归到生产验证的固定入口
ADR-NNN.md工程团队与 Agent重要架构决策、为什么这样做、替代方案与状态只有 Accepted/Locked 的 ADR 才是约束;Superseded 必须追踪后继决策
PLANS.md / task planAgent 与审查者复杂任务的可执行步骤、依赖和验收点适合长任务;简单修复不需要为了「看起来完整」强行写大计划

Markdown 指令的优势是人和 AI 都能读、可进 Git、可审查、可追踪。它的局限也很明显:它主要是指令,不是强制执行。Agent 可能忘记、误解或遇到冲突。所以重要规则要向 hooks、测试、CI 和可执行 gate 升级。

我的规则升级方法:偶发提醒放在 Prompt;重复经验放在 Memory;每次必须遵守的放在 AGENTS.md/CLAUDE.md;可复用任务做成 Skill;不允许再犯的错误用 Hook 或 Gate 机械阻止。

Workflow、Harness、Hook、Gate、CI 不要混用

编排

Workflow

从开始到结束的有序步骤和状态转移。它回答「先做什么、失败后去哪里、什么时候结束」。

项目流程:audit → fix → re-verify,以及 produce → opposite-vendor review → reconcile → act

执行容器

Harness

把 Agent、环境、测试、超时、输出格式和证据收集包起来的可执行程序。它不只描述流程,而是真正跑起来并给出结果。

BluffKing:trusted-local-launcher.mjsbug-free-codex-pipeline.mjsmobile-multi-human-regress.sh 组成了质量 harness。

事件拦截

Hook

在 SessionStart、使用工具前后、提交、推送或结束等生命周期自动运行的脚本。可以提醒,也可以直接拒绝动作。

项目里:block-main-edits.sh 阻止主工作树编辑,Git pre-commit 阻止 main 直接提交。

准入

Gate / Guardrail

一个动作能否继续的机械判定条件。Hook 是触发点,Gate 是通过/拒绝的政策,两者经常配合。

合并条件:只接受独立审查明确 APPROVEDOPEN=[]

安全默认

Fail-closed

当结果缺失、格式错误、审查超时或无法确认权限时,默认停止,而不是「先当成通过」。

我的审查 runner:只有结构正确的明确批准才返回成功;超时、额度耗尽或模型故障都不会被包装成绿灯。

远程自动化

CI/CD

CI 在提交或推送后自动构建、检查和测试;CD 继续处理发布或部署。它不等于本地 Agent workflow,两者应当分工。

BluffKing:本地 bug-free 负责重行为回归;GitHub Actions 的 main-push gate 负责发布构建和 changelog 合同。

定时

Automation / Heartbeat

按时间或事件触发的无人值守任务。Heartbeat 不只「看一眼」,还需要锁、幂等、状态机、证据和升级规则。

已有证据的能力:每小时 AI team manager 定时运行,会检查 production HTTP/Playwright、后端编译状态,并把失败分类、指派 owner、写入 ledger。它的运行记录证明了什么、还没证明什么,见第三部分。

证据

Artifact / Receipt / Ledger

Artifact 是报告、截图、日志和测试输出;receipt 证明审查或动作发生过;ledger 保存跨 Agent 可共享的当前状态。

原则:回执不等于授权。在我的合并流中,持久化 receipt 只是审计证据,最终权限绑定当前精确 diff 与实时审查结果。

这些词之间最容易混淆的地方是:Skill 是方法,Workflow 是次序,Harness 是执行容器,Hook 是触发点,Gate 是准入判定,Artifact 是结果证据。成熟的 AI 编程系统通常会同时用到它们,而不是选其一。

第三部分把 AI 真正带进生产:流程、审查与防线

结合 BluffKing 的真实工程,看多层 Agent Loop、双 AI 审查、机械 Gate 和十一个常见风险怎样连成一套系统。

我在 BluffKing 中怎样把这些概念连起来

目标或巡检发现产品意图·线上证据·风险
规则与事实AGENTS/CLAUDE·ADR·status
隔离实现branch·worktree·skill
Harness 验证Rust·Vue·Flutter·Browser·Device
双 AI 审查Claude ↔ Codex·OPEN=[]
Gate 交付finish-session·main·CI/CD
  1. 任务进来:任务可能来自我的 Prompt,也可能来自定时巡检和共享 ledger;AGENTS.mdCLAUDE.md 自动补上仓库的长期规则。
  2. 先找事实:代码、Accepted ADR、实时控制台或 canonical JSON 决定当前状态;memory 只负责帮助定位。
  3. 隔离修改:new-session.sh 从 main 创建独立分支和 worktree,每个 AI session 有自己的文件和 HEAD。
  4. 按任务选 Skill:视觉修改触发真实浏览器验证,发布回归触发 bug-free-codex,紧急修复有独立 hot-fix 边界。
  5. 用 Harness 生成证据:从 Rust 引擎、需要 PostgreSQL 的服务端集成测试、Vue/Vitest 到 Flutter、Playwright、iOS/Android/H5/Telegram 多端房间,确定性与外部设备证据分开记录。
  6. 跨厂商审查:Codex 写的补丁由 Claude 审,Claude 写的由 Codex 审。发现的确认问题在同一 workflow 内直接修复并重审。
  7. 结构性防越过:Agent hook 禁止在共享 main 工作树编辑,Git hooks 禁止直提交/隐藏改 main,finish-session.sh 是受信任的合并边界。
  8. 交付后持续运行:CI/CD 验证发布合同,heartbeat manager 定时巡检并分类、指派问题,ledger 让 Claude、Codex 和后续 session 看到同一当前状态。

这才是我所说的「大规模把 AI 用到 production」:不是让 Agent 拥有无限权限,而是让它在明确的规则、工具、隔离、验证和审查中自主完成尽可能多的工作。

我有没有做 Agent Loop?做了,但不同层的成熟度不同

Agent loop 并没有一个行业唯一标准。它的共同核心是:读取目标 → 调用工具 → 观察结果 → 根据结果继续修复,而不是每一步都等人类复制输出、再发下一条 Prompt。把循环写进 workflow 或 harness 后,还要增加状态、最大轮数、失败分类和退出条件,否则只是在无限「再试一次」。

循环层我项目中的实际闭环比「再试一次」多了什么
Agent 内循环读取上下文 → 调用工具 → 观测输出 → 决定下一步Codex/Claude Code 本身的 agent loop,不需要人手工复制命令输出
实现与验证循环scripts/loop/run.mjs 执行 QA → 分类失败 → 可选调用 Claude fix driver → 重跑仓库已经实现有状态、最大轮数和 fail-closed;但不能据此声称每个失败都已自动修复
审查循环作者 → 异构 reviewer → 修复 confirmed finding → 测试 → 重审,直到 OPEN=[] 或达到轮数上限审查者绑定真实 diff 和证据,不靠同一模型自我说服
运营巡检循环定时 patrol → production/Playwright/编译证据 → triage → owner → ledger这一段已有真实 GREEN 与失败回执;AI Team Manager 能主动发现、分类和记录,而不是只等人报 bug
工程学习循环真实失败 → 定位缺失能力 → 增加 regression/Skill/Hook/facts guard → 之后自动防范不只修当前 bug,还会修「为什么流程没发现这个 bug」

所以,这套系统不是「没有 loop,只能靠人逐步操作」,也不是「已经无人值守交付一切」。已证实的是 Agent 内循环、跨模型审查循环和定时巡检;仓库也实现了有界 QA→修复→重跑能力。尚未由运行证据证明的是「自动发现 → 修复 → 审查 → 合并 → 发布」整条链路长期无人闭环。

人仍在哪里介入:我负责产品意图与最终验收;身份、2FA、签名、付款、法律确认等步骤必须由账号持有人完成。已明确授权、可回滚并经过 Gate 的打包、上传、提审或发布操作可以由 Agent 执行——人不再是每个工具调用的审批员。

我用这套方法真正改善了什么

亮点不是「我同时打开了两个 AI」,而是在大量普通任务中把人从逐步盯命令、复制日志和反复批准中移出,将时间集中到产品意图、最终验收和高风险边界。下面每一项都有对应的代码、脚本、Hook、提交或运行记录。

从一次性生成到持续交付Agent 不再只生成一次性代码,而是沿同一套隔离、验证、审查与发布合同持续维护一个线上产品。
从人肉催促到有界 Agent Loopscripts/loop/run.mjs 能分类 QA 失败、在配置 fix driver 时调用修复并重跑,以最大轮数和 fail-closed 停止;它是已落地的能力,不包装成所有任务都已自动闭环。
从等人报 bug 到主动巡检每小时 heartbeat 能读取 production、Playwright 和编译证据,triage 问题、分派 owner 并写入 ledger。
从「测试绿了」到证据分层算法、接口、浏览器、设备与 prod 现在各有独立证据层;任何一层绿色都不能替代另一层,视觉正确也不再由功能测试代答。
从规则文档到默认失败的落地路径共享 main 编辑、未审查合并、缺失 verdict、过期 review receipt 会被 hooks、runner 和 ref-transaction gate 直接拒绝;同 UID 的蓄意篡改 hook 不在此边界内。
从双 AI 投票到多失败检测器跨厂商 review 绑定真实 diff 与 OPEN=[],但还需同时经过 regression、真实环境、facts guard、prod 反馈和人类产品验收。

为什么一个 AI 会自信地犯错,两个 AI 也会一起漏

一种常见的失败并不是 AI 完全不会写,而是它会沿着一个错误前提持续向前,而且表达得非常确定。它可能:

  • 修复眼前现象,却没有找到根因;
  • 只阅读一个文件,漏掉上下游协议或状态变化;
  • 让现有测试通过,却没有补上能复现问题的回归测试;
  • 在前端单元测试通过后,默认真实浏览器也正确;
  • 用一段漂亮的总结掩盖没有真正运行过的验证。

同一个 AI 写完再让它「检查一下」,经常仍会沿用自己的原始假设。第二个 AI 可以增加一条判断路径,但它不是正确性证明:两个模型可能共同误解需求、共同相信一组不完整的测试,或者在同一份过期事实之上达成一致。

我的 Git 历史里,双 AI 协作后仍漏掉过哪些问题

真实记录两个模型为什么也可能漏后来增加的防线
46c9b57d:9 个 Vitest 都通过,真实 Chromium 中扑克牌仍保持背面作者和审查者都可能接受了错误的验证层;jsdom 能证明元素存在,不能证明 CSS 变换真的可见visual-animation-verify:动画必须在真实 Chromium 中验证可见结果
Phase 3 Table:构建、758 个测试和 10/10 smoke 都绿,但实现悄悄简化了设计功能测试回答「能不能用」,没有回答「是不是用户要求的样子」visual-fidelity:完成声明绑定设计源、关键视口和并排视觉报告
7767eede:第三轮审查修复又引入空 SHA 去重 bug,第四轮才发现修复本身也是新代码;「已处理 finding」不代表没有新增回归每轮修复都补 RED→GREEN 回归,并重新跑测试和审查,而不是只复核旧 finding
4083b0d8a23646c7:营销事实和支付状态与真实产品、Stripe 控制台发生漂移两个模型阅读同一份过期文档,只会更一致地得出旧结论canonical status、live read-back、facts guard 与 ledger;变化后由机器检查所有消费者

这几类问题分别来自验证层错误、需求验收缺失、修复引入回归和外部事实漂移。它们不可能只靠「多投一票」解决。

我真正使用的是多层防线,不是双 AI 魔法

下面是系统控制层,不是另一张测试类型清单:前面的证据表回答「该跑什么」,这里回答「谁负责阻止错误继续流动」。

防线主要解决什么我项目中的落地方式
1 · 任务约定两个 AI 一起误解需求任务卡写目标、范围、禁止项、验收标准;视觉工作额外绑定设计源和目标视口
2 · 状态隔离多 Agent 覆盖文件、切错分支、污染结果一任务一 branch/worktree,作者与审查者不共享可写状态
3 · 当前事实源Memory、文档或总结已经过期以代码、数据库、canonical status、ledger、真实控制台和 live read-back 为准
4 · 风险匹配的证据错误层级的绿色测试算法跑单测,接口跑集成,动画跑真实浏览器,移动端跑设备,发布后跑 production smoke
5 · 回归与不变量修复旧 bug 时制造新 bug先写能失败的回归,再修到通过;支付、筹码、并发等关键逻辑再检查守恒与顺序不变量
6 · 独立审查作者盲点和证据缺口新上下文、只读权限、真实 diff、相关调用链、明确 rubric、VERDICTOPEN
7 · 机械执行AI 忘记 Markdown 规则或擅自宣布完成Hooks、CI、harness、fail-closed gate 和受信任合并入口直接阻止违规动作
8 · 线上反馈与人类验收自动化没有覆盖的真实体验和外部变化监控、日志、prod 回归、可回滚发布;产品需求、视觉取舍、身份、付款与不可逆动作由人负责
可靠性不是两个模型投票投出来的,而是多个相互独立的失败检测器叠出来的。

双 AI 的正确定位:多一道独立检查,不是正确性证明

人:定义者与最终责任人决定真正要解决的问题、不可触碰的边界、验收标准,以及哪些操作不能自动执行。
AI A:实现者阅读仓库规则,调查根因,做最小改动,补回归测试,并报告实际验证结果。
AI B:独立审查者直接阅读实际差异和相关调用链,寻找逻辑错误、遗漏、回归与证据缺口。
工具:证据层Git diff、测试、构建、浏览器、设备和运行日志提供可重复证据;但证据层也要检查覆盖范围和 harness 是否可信。

Claude 和 Codex 谁写、谁审并不是关键。关键是角色分离、审查独立,以及审查者必须看到真实代码和证据,而不是只读实现者写的总结。即使两个 AI 都批准,也只能说明它们在给定上下文里没有发现问题,不能说明用户需求已经被完整满足。

同一个模型的不同版本,可以互相审查吗?

可以,基本思路相同:制造第二条判断路径;但独立性不是同一个等级。不同版本的能力、上下文窗口和推理行为可能不同,因此通常比「同一会话自检」更有价值;但同一模型家族仍可能共享训练偏好、表达风格、工具习惯和盲点。

安排能带来的价值适合怎样使用
同一模型、同一会话自检成本最低,但最容易沿用原假设只用于快速找明显遗漏,不作为独立批准
同一模型、新会话切断部分上下文锚定,能重新阅读 diff普通低风险改动的第二遍检查
同一厂商、不同版本能力和行为有差异,但错误相关性仍可能较高可以做 reviewer;必须配合测试、真实环境证据和明确 rubric
不同厂商或模型家族训练、工具和对齐路径更不同,通常能增加盲点多样性高风险或重要改动优先采用,但仍不能替代验证与人类验收

把 AI 带进生产最常见的十一个坑

这些不是已经「永久消失」的问题,而是现有流程持续防范的风险。目标不是零 bug,而是让错误更容易被发现、被拦下、被回退,并且不会在下一个 session 里被忘掉。

最低可执行解法我项目里的实际机制
1·把模型当成 Agent开始先确认当前目录、仓库、工具、网络、sandbox 和读写权限;没有工具就只出方案从项目 Terminal 启动 CLI Agent;Hook 发现写任务落在共享 main 时,阻断并引导创建独立 worktree
2·一次交给 AI 太大范围一张任务卡只解决一个问题,写明范围、禁止项和可执行验收标准一任务一 branch/worktree,大任务拆成可独立验证的阶段
3·把 Memory 当成实时事实库Memory 只用于定位;回答状态前重读代码、ledger、数据库或真实控制台canonical status JSON、ops/bug-free ledger、live read-back 和 facts guard
4·只看总结,不看 diff新会话+只读权限,直接给实际 diff、需求、调用链与测试输出,逐项核对验收标准;总结只是索引reviewer 绑定精确 patch,Claude/Codex 交叉审查输出 VERDICTOPEN,修复后重跑闭环
5·把 Markdown 规则当成强制机制规则可先写入指令文件;高风险或反复犯错的部分下沉到 Hook、测试或 GateAGENTS.md/CLAUDE.md 说明,Agent hooks、Git hooks 和 finish-session.sh 负责阻止越过
6·安装所有 Plugin按工作流做最小允许列表;说不出用例、权限和验证方式的扩展先不装视觉、发布、审查等场景按需触发 Skill,不让所有工具常驻每次对话
7·MCP 给了过大权限读、写、删、发送、发布分层授权;默认只读,外部动作需明确身份、目标和审计账号身份、2FA、签名、付款和不可逆操作保留人类边界,证据不记密钥
8·把测试通过等同于功能正确先问「这个测试真正观测了什么」;再按风险加集成、真浏览器、设备、prod smoke 和人类验收Vitest 不代替 Chromium,harness 分层记录证据,发布后继续验证
9·两个 AI 共用一个目录每个写入者使用独立 branch/worktree;reviewer 尽量只读new-session.sh 创建隔离环境,Hook 禁止修改共享 main 工作树
10·无节制地开子 Agent只并行无共享写状态的独立任务;其余由单一主线编排,并指定唯一 owner多端验证可并行,合并、共享状态和强依赖修复走受控 workflow 与 ledger
11·没有结束条件和权限边界把「完成」改写为可执行命令、可观测结果、回滚方案、明确 verdict 和空遗留列表Gate 默认 fail closed;验证码、密钥、付款、删库由人控制;发布需要显式授权、回滚方案和 Gate,也可以由 Agent 执行

附录:需要时再查的 Claude/Codex 术语

这些词不是开始 AI 编程的前置考试。遇到相关场景时回来查即可;第一遍阅读可以直接跳过。

概念一句话解释在真实项目中怎样用
Plan Mode先调查、拆分、确认验收点,再进入修改适合复杂、模糊或高风险任务;已能清楚验收的小修复不要过度规划
Reasoning Effort模型为任务分配的推理强度简单机械修改用低/中,架构、认证、支付、并发和难调试用高强度;不用「最强」替代测试
Context Rot / Compaction对话过长后重点被噪音淹没,或历史被压缩为摘要将必须保真的规则写入文件,将分支、失败命令和下一步写入 handoff,不把整个项目系于一个聊天窗口
Config
config.toml / settings
保存模型、推理、sandbox、approval、MCP、hooks、plugins 等持久默认值个人默认放全局配置,仓库特有行为放项目配置,一次性覆盖不要偷偷变成永久规则
Environment Variable / Secret运行环境提供的配置值;secret 是不应进代码、日志、Prompt 或 memory 的敏感值.env 应忽略提交,使用最小权限与专用 secret store;证据报告只记录「已配置/未配置」
Prompt Injection不可信页面、文件或工具输出尝试诱导 Agent 违反真正指令把外部内容当数据,不当权限源;用 sandbox、工具白名单、审批,以及高风险操作的禁止/审批边界
Test vs EvalTest 验证软件行为;Eval 验证模型或 Agent workflow 在一组任务上的表现既要测代码是否正确,也要用固定失败样例测 harness 会不会误报绿灯
Deterministic / Nondeterministic相同输入是否可重复得到相同结果单元测试、锁定依赖尽量确定性;真机、网络、商店、时间相关验证单独记录外部证据
Trace / LogAgent 的工具调用、输出、状态转移和错误记录用于回放「为什么得到这个结论」,但要限制大小、脱敏,并区分原始记录与最终 verdict
Idempotency / Lock重复执行不会重复造成效果;锁用来防止两个运行互相冲突定时 heartbeat 必须有 run lock、可重复状态和最终释放证据,否则 Agent 可能重复发布或重复修复
第四部分在自己的项目里落地:四周搭起最小闭环

按照四周路线、决策型 FAQ 和一份可直接交给 Agent 的 Prompt,把这套方法放进自己的仓库。

从 GPT 对话用户到 AI 编程入门:四周路线

这不是第二套正文,而是一条执行索引:每周只增加一个能力层,并回到前文完成对应练习。

第一周:只读理解,建立信任校准

先按入口选择运行位置启动 Agent。让它只读解释架构、画一条调用链、找测试入口;抽查事实,观察它会在哪里猜测。

第二周:完成第一个可回退小改动

小任务与任务卡选择一个可回退改动,再照五步工作流跑通「调查 → 修改 → AI 审查 → 本地或测试环境验收 → 必要时回退」。

第三周:把重复经验变成系统

回看能力扩展Markdown 指令机械约束:创建一份简短准确的 AGENTS.md,把一个重复任务做成 Skill,再用一个简单 Hook 阻止明确错误。

第四周:加入第二个 AI 和证据化 Gate

双 AI 失效模式十一个坑形成「实现 → 独立审查 → 修复 → 重新验证」闭环。Reviewer 只是一个传感器,最终结论仍受真实环境证据与人类验收约束。

跳读用 FAQ:初学者面对的十个决策

它是前文索引,不是第二套教程。想快速做决定时先看直接答案,再沿关键词回到对应章节。

问题直接答案
我要先学「提示词工程」吗?不用。先会写目标、现象、范围、验收标准和限制这五项,比记忆神秘口令更有用。
我不熟悉 Terminal,能开始吗?能。先只掌握 cdgit status、启动 Agent、运行项目测试和 git diff;不需要先成为 Shell 专家。
必须像你一样买两份 200 美元档订阅吗?不必。一个有仓库工具的 Agent 就能跑通入门闭环;双 AI 是增加审查独立性,不是入场费。
必须先装 Memory、MCP、Skill 和 Plugin 吗?不必。第一周只需 Agent、仓库、一张任务卡和现有测试;只在真实重复问题出现后再加扩展。
测试全绿,为什么还不能直接交付?因为测试只观测它被写来观测的东西。视觉、设备、支付、权限和线上状态需要不同证据层。
用了两个 AI,我是不是就不用看了?可以不逐行看 diff,也不必盯每条命令;但必须定义可观察的验收结果,并像我一样在本地或 production 实际验证最终行为。
Agent 是否应该每一步都问我?不应该。本地、可逆、已在 sandbox 内的读写和测试可自主完成;身份、密钥、付款和删除等敏感动作由人控制,已授权且可回滚的发布可由 Agent 执行。
我在手机上发任务,就是调用本地电脑吗?不一定。Cloud Agent 在云容器运行;只有 Remote Control/Dispatch 明确连接本机 host 时,才会使用本地文件与工具。
把这篇文章贴给 AI,能一次复制你的全部系统吗?不能一次复制。它能指导有工具的 Agent 搭出最小闭环;成熟系统需要根据每次真实失败逐步演进。
最后谁对代码和生产结果负责?人。Agent 可以获得高度自主执行权,但产品、法律、财务、身份与最终交付责任不会因为模型批准而转移。

把这篇文章直接喂给你的 AI,它真能搭起来吗?

可以搭出一套最小可用版,但不是把 HTML 丢进普通聊天窗口就会自动完成。你需要从仓库目录启动能读文件、写代码和执行命令的编程 Agent CLI,再把本文与下面的 Prompt 一起交给它。只有聊天能力、没有仓库工具的 AI,最多只能给你一份搭建方案。

合理的第一版产物:精简的项目指令文件、任务卡模板、可执行验证脚本或 harness、独立 review 合同与默认失败的 gate,以及如何运行和回退的说明。只有 reviewer 真实可调用并通过正反例验证,独立 Review 才能标为 READY;否则就诚实标为 UNSUPPORTED。Memory、MCP、Plugin、多 Agent 和自动发布不必一次全装。

下面的默认权限边界故意比我的成熟项目更保守:初学者先禁止 commit、push、merge 和 deploy;等自己的 review、回滚与发布 Gate 真实跑通后,再逐项授权 Agent 执行。这是启动配置,不是对我当前工作流的反向描述。

可直接复制给 Codex 或 Claude Code 的启动 Prompt

你现在位于我的项目仓库中。我附上了一篇《从聊天机器人到生产级 AI 编程》。
请不要照抄文章里 BluffKing 的路径、命令或技术栈,而是为当前仓库搭建一套“最小可信 AI 编程闭环”。

工作方式:
1. 先只读盘点:识别技术栈、Git/CI、测试入口、现有指令文件、hooks/scripts、高风险区域与你当前的工具/权限。记录当前 branch、基线 commit、git status --short、git worktree list 与改前 diff;不要猜测,也不要输出可能包含密钥的内容。
2. 写入前保护现有工作:若当前是共享 main、存在不属于本任务的未提交修改,或无法辨认修改归属,不得在当前目录写。优先进入现有隔离 feature worktree;若 Git 状态允许,可从记录的基线新建独立 worktree;否则标记 NEEDS_USER。禁止自行 stash、reset、clean、rebase 或整库 restore。
3. 先输出“现状 → 缺口 → 最小改造”表,然后只在隔离 worktree 内实施安全、本地、可回退的修改;不要等我对每个普通文件确认。
4. 复用现有约定,避免平行造第二套体系。指令文件保持精简;重复性关键规则改为可执行检查。
5. 最少交付:
   - 适配当前 Agent 的项目指令文件(已存在则修正,不要盲目覆盖);
   - 包含目标/现象/范围/验收/限制的任务卡模板;
   - 调用项目现有测试的最小验证脚本或 harness,错误时非零退出;
   - 独立 review gate:先检测第二个独立 session/model 是否真的可调用;可调用时,用新会话、只读权限审查一个无害 patch,必须读真实 diff/需求/证据并输出可解析的 VERDICT 和 OPEN。只有模板不算 READY;不可调用就标记 UNSUPPORTED 或 NEEDS_USER,交付 gate 必须保持关闭;
   - 从 branch/worktree 到验证、审查、回退的运行说明。
6. 用项目已有命令验证新闭环。失败自测只能新建一次性 fixture、注入临时环境变量或调用明确的 false 命令;不得破坏现有业务代码、测试或配置。测试前后比较精确 status/diff,删除自己创建的 fixture,并证明用户原有状态未变化。
7. 对 review gate 至少验证四条路径:真实独立 reviewer 对无害 patch 的端到端 dry run;reviewer 缺失或超时;非法 verdict;OPEN 非空。后三种都必须阻断;若没有可调用的独立 reviewer,第一条标记 UNSUPPORTED,不能伪造绿色。
8. 最后列出:变更文件、实际命令与结果、未实施项及原因、剩余风险、完整回退方法。回退只能删除本次新建文件或反向应用本次精确 patch,禁止用整库恢复覆盖原有工作。
9. 输出能力矩阵:Memory、MCP、Skill、Plugin、Markdown 指令、Hooks、Harness、Workflow、Worktree、独立 Review、Automation、Remote Control。每项标记 READY / BUILD_NOW / NOT_NEEDED / UNSUPPORTED / NEEDS_USER,并给出证据与最小下一步。READY 必须代表真实可调用且通过正反例验证,不得只凭模板或配置文件。不要为了齐全而安装。

默认权限边界:
- 不安装全局软件,不新增付费服务,不读取或输出密钥。
- 不修改 Git 全局配置,不直接安装 hook;可在仓库内生成待审查的 hook/gate 脚本与安装说明。
- 不碰改前已存在的修改,不自行 stash、reset、clean、rebase 或整库 restore。
- 不 commit、push、merge、deploy、发送外部消息或写入生产数据。
- 遇到验证码、2FA、签名、付款、删除数据、生产发布或不可逆操作时停止,精确说明所需的人类动作。
- 证据不足就标记 NOT_VERIFIED,不得声称完成。

这份 Prompt 能让 Agent 搭起「最小闭环」,但无法一次复制出一套经过三个月演进的完整系统。

最后:AI 编程值得用,而且你今天就能开始

如果你已经用过 ChatGPT 或 Claude 对话,就不需要等学完 Memory、MCP、Skill 和 Hooks 才开始。真正的第一步,是从项目目录的 Terminal 启动 Codex CLI 或 Claude Code,让它直接读取仓库、修改代码和运行现有测试;你负责说明要解决什么,以及怎样才算真的解决。

我已经用这种方式,让一个人配合 Claude Code 和 Codex,持续开发和维护一个横跨 H5、iOS、Android 与 Telegram 的线上产品,也处理支付、订阅、退款、商店发布和线上问题。这些证据足以让我相信,编程 Agent 已经能承担大量真实的工程工作。但它仍会写错、漏需求,两个 AI 也可能一起漏,所以「Agent 说完成了」不能直接当成结果;最后仍要看测试、浏览器、设备、线上状态,或者你亲自操作后的真实表现。

明天开始时,只做这四件事

  1. 进入一个你熟悉的项目目录,启动一个编程 Agent CLI。
  2. 交给它一个可回退的小任务,写清目标、现象、范围、验收标准和禁止项。
  3. 让 Agent 自己调查、修改和运行测试,并报告实际改了什么、执行了什么。
  4. 你在本地或测试环境操作一次,确认最终结果真的符合需求;不符合就把现象交回去继续修。

做到这里,你就已经从「会用 GPT 聊天」进入了 AI 编程。等这个流程稳定后,再增加第二个 AI 审查、独立 worktree、Skill、Hook、MCP 和自动化 Gate。本文介绍这些概念,不是让你一次装齐,而是让你每遇到一个真实问题,都知道下一层能力该加在哪里。

事实与概念依据:项目实践可在 README.mdAGENTS.mdCLAUDE.mddocs/AGENTS-CONTRACT.mddocs/ops/HEARTBEAT-SOP.mddocs/architecture/ai-team-manager.htmldocs/mobile/store-release-status.jsondocs/ops/billing-provider-status.jsonscripts/ai-team-manager.mjsscripts/loop/run.mjsscripts/bugfree/trusted-local-launcher.mjsscripts/claude-review.mjs.agents/skills/visual-animation-verify/SKILL.md.agents/skills/visual-fidelity/SKILL.md 中核对;本文引用的真实修复与工作流提交包括 46c9b57d7767eede4083b0d8a23646c77c3142bbaf86fbcd5b3e01b0。概念和产品边界参考 OpenAI 官方 CustomizationHooksPluginsCloud environmentsBrowserChatGPT RemoteHarness engineering,以及 Anthropic 官方 Claude Code with ChromeClaude Code Remote Control。模型审查偏差的论述也参考了 ACL 发表的 LLM-as-a-judge 偏差研究自我修正偏差研究。产品状态、Remote 能力与官方概念按 2026-07-19 核对,后续可能变化;文中未使用无法追溯的效率、速度或缺陷率数字。