🤖 一套工作流,六种 Agent:pstack-claude 如何让 Cursor 原语“跨界上岗”
先用一个开发者日常来开场:你早上在 Cursor 里跟 Agent 磨出了一套特别好用的工作流——先让它写计划、再分步实现、最后自我审查一遍。你把它保存成 rules,用得很爽。下午你打开 Claude Code,发现这套严谨的流程完全用不上;晚上切到 Codex 或 Gemini,又得从零调教一遍。于是你花在“教 Agent 怎么干活”上的时间,比让它干活的时间还多。
michael-denyer/pstack-claude 就是冲着这个痛点来的。它的描述很直白:把 Poteto 的 pstack 移植成 Claude Code、Codex、Pi、OpenCode、Gemini 和 Prime Agent 各自的版本,用一套严谨的 Agent 工作流,把原本为 Cursor 写的原语(primitives)翻译到其他 harness 上。
🧱 为什么“工作流”值得被单独搬运
大多数人把 prompt 当成一次性消耗品:写完即弃,换工具就重写。但真正高质量的 Agent 协作,靠的不是某一句神奇的提示词,而是一整套结构化的流程——什么阶段做什么、谁负责哪一步、产物长什么样、什么条件才算结束。
这类结构化流程,就是所谓的工作流“原语”。它有点像编程语言里的基础语法:一旦定义清楚,就能被翻译到任何目标语言。pstack 的价值恰恰在这里——它不是一堆零散的 prompt,而是一套可以跨 harness 复用的行为规范。
工作流原语(抽象层示意)
├─ 角色定义:谁来做(规划者 / 执行者 / 审查者)
├─ 阶段划分:做什么(计划 → 实现 → 验证)
├─ 交接契约:交付什么(结构化产物,而非随口一句"做完了")
└─ 退出条件:什么时候算真正完成
有了抽象层,剩下的就是翻译工作:把同一套语义,映射到不同 harness 各自认可的加载方式上。
🔁 翻译的难点:不是复制粘贴
很多人会想:不就是把同一段文字复制到六个仓库里吗?真做起来远没这么轻松。不同 harness 之间的差异,至少体现在三个维度。
- 上下文注入方式不同:有的工具靠项目里的约定文件自动加载,有的靠斜杠命令显式触发,有的需要在会话开头手动引入。同一句"请先做计划再动手",落点完全不同。
- 工具能力边界不同:某些 harness 支持子代理(subagent)、某些支持自定义命令、某些只支持单轮对话。一个依赖"分派给子代理"的原语,在能力不足的 harness 上必须降级成别的机制。
- 执行范式不同:交互式终端、IDE 插件、命令行批处理,对"确认再继续"的容忍度天差地别。在批处理场景里强行插入人工确认,流程直接卡死。
这就是 pstack-claude 这类项目的核心工作量:保持语义不变,允许实现变形。严谨性来自原语本身,而不是某个特定工具的私有特性。
📦 一次维护,六个 harness 受益
项目名称里虽然带有 claude,但它的覆盖面明显更广。根据仓库描述,它同时提供以下 harness 的版本:
- Claude Code —— 终端里的 Agent 协作体验
- Codex —— 另一条主流 Agent 工作路径
- Pi
- OpenCode —— 开源阵营的 Agent 运行环境
- Gemini —— Google 侧的 Agent 能力
- Prime Agent
这种"多目标"设计的实际收益是:你不再需要为每个工具分别维护一份会逐渐漂移的工作流。当原语演进时,只要在抽象层更新一次,再向下同步到各 harness 即可。对同时使用多个 Agent 工具的团队来说,这意味着认知负担和版本分裂风险的显著下降。
⚖️ 和“每个工具单独调教”相比,差在哪
把 pstack-claude 和常见的两类做法放一起对比,差异就比较清楚了。
- 零散 prompt 集:灵活但不可复用,换工具即失效,且在团队内部很难对齐标准。
- 单一工具的官方工作流模板:深度贴合某个 harness,但天然被锁定——换工具等于重新开始。
- pstack-claude 这类跨 harness 移植:牺牲了一部分针对单工具的极致优化,换来的是跨平台的一致性和可迁移性。
换句话说,它关注的不是"让某个 Agent 强一点点",而是"让我的工作方式不随工具而变"。这在多工具并存的团队里,往往是更值钱的属性。
工具会换,范式会迁移,但一套被验证过的工作流应该能跟着你走。
🎯 什么时候该用它,什么时候别用
适合的场景:
- 团队里同时使用多个 Agent 工具,不希望每个都从头调教;
- 需要流程化的产出(计划、实现、验证分离),而不是一问一答式的闲聊编码;
- 希望把"严谨"沉淀成可版本管理的资产,而不是留在某个人的脑子里。
需要谨慎的情况:
- 你只固定使用一个 harness,且官方的工作流已经足够顺手——跨平台带来的抽象成本未必划算;
- 任务本身极度轻量,比如改个错别字、跑个格式化,套完整流程反而拖慢节奏;
- 你所在 harness 的能力与原语假设差距过大,翻译后的版本可能需要额外裁剪。
🌟 小结
pstack-claude 真正有意思的地方,不在于它支持了多少个 Agent 工具,而在于它提出了一个值得认真对待的问题:当 Agent 工具本身被快速商品化时,什么才是你真正该积累的资产?
模型的强弱会换季,harness 的热度会轮转,但一套经过验证的、严谨的协作流程,是可以跨越这些变化的。这个项目把 Cursor 原语拆解、翻译、分发到 Claude Code、Codex、Pi、OpenCode、Gemini 和 Prime Agent 上,本质上是在做一次"工作流可移植性"的实验。
如果你正处于"手上三个 Agent,脑子里三套规矩"的状态,不妨去看看它是怎么做的——也许你会开始用另一种方式思考自己的 Agent 协作方式。🔧