从对齐到执行: grill-me + goal, AI 编码的完整工作流 - V2EX
JustW

从对齐到执行: grill-me + goal, AI 编码的完整工作流

  •  1
     
  •   JustW 6 days ago 1237 views

    ChatGPT Image 2026 年 5 月 19 日 20_08_44

    先想清楚,再放手让 agent 跑

    上一篇文章聊了 Matt Pocock 的 grill-me skill用三句话让 agent 像一个严格的 reviewer 一样,把你的方案逐个分支追问到底。它解决的是 AI 编码最核心的问题:对齐

    但对齐只是第一步。你花了半小时被灵魂拷问、做完了决策、写好了 PRD ,然后呢?还是得一句一句地跟 agent 说"接下来做这个"、"继续"、"跑一下测试"、"再改改"。

    这就像你跟一个新同事把需求讲得清清楚楚,然后每十分钟去他工位上说一句"干完了吗"。

    最近 Codex 和 Claude Code 填上了这个缺口,请更新到最新版。 它们同时推出了 /goal 命令你给 agent 一个明确的目标,它自己循环执行,直到完成或碰到需要你决策的阻塞点。

    Grill-me 让你想清楚,/goal 让你放手。这两件事串起来,才是 AI 编码的完整工作流。

    下面可以看到,我的一个任务跑了 50 多分钟,我的这些 CLI 都是运行在服务器上的,意味着以后我只需要每天设置好任务,就可以让 AI 24 小时帮我去干活了!

    image-20260519200719752

    /goal 到底是什么

    一句话:**/goal 是一个持久化的执行目标,agent 会自主循环工作直到目标达成。**

    以前的交互模式是:

    你:帮我修复搜索功能的 bug agent:找到问题了,是 XX 的原因,我改了 YY 你:跑一下测试 agent:测试通过了 你:再检查一下性能有没有退化 .. 

    每一步都要你盯着、你推着。agent 做完一件事就停下来等你指示。

    /goal 改变了这个模式:

    /goal 修复搜索功能的 bug ,直到所有测试通过且性能不退化 agent:(自主循环:分析 → 修复 → 测试 → 验证 → 调优 → 再验证...) agent:目标达成。改了 3 个文件,跑了 12 轮测试,最终延迟从 340ms 降到 89ms 

    它不是"让 agent 在后台跑"那么简单。它有完整的生命周期管理:

    • 状态机:pursuing → paused / achieved / unmet / budget-limited
    • 预算控制:token 预算耗尽时优雅退出,不会乱花钱
    • 证据审计:agent 不能自己说"搞定了"就搞定,必须基于实际的测试结果、代码变更等证据
    • 暂停/恢复/goal pause 暂停,/goal resume 继续,不丢失上下文

    两个平台如何开启?

    Codex 的 /goal

    Codex CLI 0.128.0 首先推出了 /goal,背后是一个叫 "Ralph loop" 的模式agent 在紧密的循环中工作,每次迭代读取当前状态、执行一个有界的动作、写下结果、退出,然后运行时检查是否继续。

    启用方式(目前需要手动开启 feature flag ):

    # ~/.codex/config.toml [features] goals = true 

    用法:

    # 设定目标 /goal 修复 flaky 的 auth 测试,直到连续跑 10 次全部通过 # 管理生命周期 /goal # 查看当前目标状态 /goal pause # 暂停 /goal resume # 恢复 /goal clear # 清除 

    Codex 的实现有一个关键设计:completion 必须基于证据。agent 不能因为"我觉得差不多了"就标记完成。它必须对比目标和实际的文件变更、测试输出、benchmark 结果等具体证据,才能宣布达成。

    Claude Code 的 /goal

    Claude Code 2.1.139 紧随其后加入了 /goal,功能几乎对齐:

    • 交互模式:直接在 CLI 里用 /goal
    • -p 模式:脚本化调用,适合 CI/CD
    • Remote Control:远程会话中使用

    Claude Code 的 /goal 还集成了 token 用量的实时显示你可以看到 agent 跑了多少 token 、花了多长时间、进行了几轮迭代。如果发现 token 在烧但没进展,说明 agent 陷入了循环,该手动介入了。

    怎么写一个好的 Goal

    不是所有任务都适合 /goal。OpenAI 的官方指南给了一个清晰的判断标准:

    适合 /goal 的:下一步取决于当前学到了什么的任务。比如 debug 、性能优化、依赖迁移、flaky test 调查你不知道具体要跑几步,但你知道什么时候算完成。

    不适合 /goal 的:一步就能搞定的事。改个变量名、加个注释、读一段代码直接用普通 prompt 就行。

    一个好的 Goal 应该包含六件事:

    1. 目标:什么状态算完成
    2. 验证方式:用什么证据来证明完成
    3. 约束:什么东西不能退化
    4. 边界:只能动哪些文件/工具
    5. 迭代策略:下一步怎么选
    6. 阻塞处理:卡住了怎么办

    对比一下:

    弱的 Goal:

    /goal 修复搜索的 bug 

    ( agent 不知道"修复"的定义是什么,不知道怎么验证,可能改了代码但没跑测试就宣布成功)

    强的 Goal:

    /goal 修复搜索功能中中文分词返回空结果的问题,验证标准是所有搜索相关测试通过且 中文搜索"机器学习"返回至少 3 条结果。只改搜索服务相关代码,不动其他模块。 如果改了核心分词逻辑,必须跑完整回归测试。如果卡在第三方库问题上,停止并报告 依赖版本信息。 

    ( agent 知道什么算成功、怎么验证、不能动什么、卡住了怎么办)

    串起来:从对齐到执行的完整流程

    这是我觉得最有价值的部分。grill-me 和 /goal 不是两个独立的工具,它们是同一个工作流的两个阶段。

    第一步:用 grill-me 想清楚

    /grill-me 我想给搜索功能加上模糊匹配能力 

    agent 会开始追问:

    • 模糊匹配的容错级别是什么?一个字的错别字还是整个词?
    • 用什么算法? Levenshtein ? Jaccard ?还是 Elasticsearch 的 fuzzy query ?
    • 响应时间要求是多少?
    • 中文和英文的处理方式一样吗?
    • 是在现有搜索结果上加一层,还是作为独立的搜索模式?
    • 需要高亮匹配部分吗?

    每个问题都给出推荐答案,你只需要确认或调整。跑完一遍之后,你对要做的事情有了清晰的、完整的认知。

    第二步:用 /goal 自动执行

    grill-me 跑完之后,你已经知道所有答案了。直接写 Goal:

    /goal 给搜索功能加上模糊匹配能力。具体要求: 1. 使用 Levenshtein 距离算法,容错 1 个字符 2. 中英文分别处理,中文按字符匹配,英文按词匹配 3. 响应时间不超过 200ms 4. 在现有搜索结果上叠加模糊匹配结果 5. 高亮匹配部分 6. 验证标准:所有搜索相关测试通过,新增模糊匹配测试覆盖中英文各 5 个 case 7. 只改搜索服务模块,不动其他服务 

    然后就放手让 agent 跑。它会自己分析代码、设计方案、写代码、跑测试、修复问题、再测试,直到全部通过。

    完整流程对比

    以前:

    1. 想个大概的方案
    2. 直接让 agent 写
    3. 看到结果不对,告诉 agent 改
    4. 来回折腾 10 轮
    5. 最后勉强能用,但很多细节是妥协的结果

    现在:

    1. grill-me 被追问 20 个问题,想清楚每个细节
    2. /goal 设定明确目标和验证标准
    3. agent 自己跑,你去做别的事
    4. 回来看结果,跑通了就收货

    注意事项

    token 消耗会更大。 /goal 的本质是让 agent 多跑很多轮,每轮都有 token 开销。特别是复杂任务,几百 K token 很正常。设好预算,盯着用量。

    不是所有 agent 都适合自主循环。 如果你的项目很乱、测试覆盖很差、没有明确的验证手段,/goal 可能会跑偏。先把这些基础设施补上。

    grill-me 的价值在于它强迫你精确。 很多人觉得"我大概知道要做什么"就够了,但 agent 需要的是精确的、无歧义的目标。grill-me 帮你把"大概"变成"确定"。

    写在最后

    2026 年的 AI 编码工具越来越像一个完整的工程系统,而不只是"帮我写代码"的自动化。grill-me 和 /goal 代表了两个方向:对齐的深度执行的自主性

    把这两个指令组合起来,你得到的不是"更快的代码生成",而是一个真正能独立完成工程任务的 agent 。你负责决策,它负责执行。

    这可能才是 AI 编码该有的样子。

    4 replies    2026-05-21 17:02:09 +08:00
    passion336699
        1
    passion336699  
       6 days ago   1
    再过一会, 是不是又要用 grill-with-docs 水一篇...

    再过几天, 是不是要把整个 https://www.aihero.dev/ 都搬一遍...
    nayunfeng
        2
    nayunfeng  
       6 days ago
    2333333
    8888888888
        3
    8888888888  
       6 days ago
    感觉我用 superpower 写计划然后实施不是一样的吗,计划的目标更明确
    JustW
        4
    JustW  
    OP
       6 days ago
    @8888888888 也可以,但是我感觉 superpower 慢了些,他考虑的可能更周全吧.也有可能是我体验的不够深入.
    About     Help     Advertise     Blog     API     FAQ     Solana     3106 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 13:47 PVG 21:47 LAX 06:47 JFK 09:47
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86