ARTICLE DETAIL

资讯详情

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

让 Cursor Agent 自主完成长任务:pstack Autonomous Run Playbook 实战指南

让 Cursor Agent 自主完成长任务:pstack Autonomous Run Playbook 实战指南 让 Cursor Agent 自主完成长任务pstack Autonomous Run Playbook 实战指南【免费下载链接】pluginsCursor plugin specification and official plugins项目地址: https://gitcode.com/GitHub_Trending/plugins125/pluginsAutonomous Run Playbookpstack/skills/poteto-mode/playbooks/autonomous-run.md是 pstack 插件中面向无人值守长任务的核心运行规范它以**可检查的退出条件predicate**为唯一驱动力让 Agent 自主循环迭代、自我处置中途发现的问题直至条件满足才停止。本文围绕该 Playbook 的六步工作流展开结合 pstack 的 mode 技能、principle 技能与配套 Playbookshow-me-your-work、sequence-verifiable-units、opening-a-pr等的源码级细节说明如何配置唤醒机制、如何判定迭代去留、如何检查点留痕以及何时应当停下来问人——最终交付一份可复盘、可追溯、绝不虚报胜利的自主运行方案。一、什么是 Autonomous Run适用场景与定位在 pstack 的 Playbook 体系中autonomous-run.md服务于这样一类任务run until done、/loop until X、我要去睡觉了明天早上之前把它做完。它的定位在 pstack 主技能文档 中被明确描述为Autonomous run.A long task to drive to completion without stopping.它与同族 Playbook 的边界需要区分清楚Autonomous run驱动一个任务直到满足某个谓词predicate为止Orchestrate一个持续多日、由单一协调者 chat 掌管、横跨多个堆叠 PR 与数十上百个子 Agent 的常驻项目Autopilot-full / Autopilot-stack针对一批互相独立的 PR或一条线性堆叠分支的批量自动处理。正如 pstack 主技能 所指出的能在单个会话预算内由一个 Agent 完成的工作应路由到 Autonomous run哪怕它的措辞听起来像项目反之跨多日、多 PR 的常驻程序才路由到 Orchestrate。先确认任务形态再选 Playbook这是使用本指南的第一步。二、核心心法你拥有退出条件Playbook 的开篇只有一句话You own the exit condition. Define done, then drive to it without stopping.你拥有退出条件。先定义完成然后不停歇地驱动它。这一心法可以拆解为两个可操作的语义完成不是感觉而是可检查的谓词checkable predicate。它必须能被机械地判定真假例如测试全绿、复现问题已修复、N 个 PR 全部合并、像素级对比为零差异。在第一次迭代之前就要把它写出来而不是边做边定义。这保证了整个运行过程始终有一个客观的南北极。这一设计并非孤例而是 pstack 整个验证哲学的自然延伸principle-prove-it-works要求对真实产物验证而不是对代理品或它能编译来验证而 Autonomous run 把这条原则从单个任务结束时的检查升级为整条运行主线的锚点。谓词的写作规范Playbook 给出了四个可复制的谓词示例谓词形式检查方式tests green运行测试套件全部通过repro fixed复现脚本从红变绿all N PRs merged查询 forgegh pr view/origin pr view逐个确认pixel-diff zero视觉对比工具输出 0 差异写作要领谓词必须落在可以被命令、脚本或查询判定的事实上禁止使用看起来差不多了我觉得可以了这类无法验证的主观表述。三、选择唤醒机制/loop命令与 watcher 子代理自主运行的第二个关键决策是谁在什么时候叫醒你。Playbook 第 2 步明确Pick the wake mechanism using Cursors/loopcommand (a built-in, not a pstack skill).也就是说/loop是 Cursor 的内建命令pstack 并不重新实现它而是与它协作——这一点在 pstack README 中也有呼应/poteto-modeworks extremely well with cursors/loopcommand. you can make cursor work for many hours without sacrificing rigor./poteto-mode与 Cursor 的/loop配合得极好你可以让 Cursor 连续工作数小时而不牺牲严谨性。唤醒机制的选型遵循一张简单的决策表场景唤醒机制说明存在可监听的事件CI 通过、PR 合并、ref 推进watcher 子代理事件发生时叫醒主 Agent以长周期基于时间的心跳作为兜底没有可监听的事件固定间隔的心跳间隔大小 结果值得重新检查一次的周期对应到 pstack 的源码实现/loop与 watcher 机制在 poteto-mode 的脚本目录 中有可复现的支撑bootstrap.ts负责初始化运行环境watch-pr/子目录承载 PR 状态监听逻辑check-plan.mjs用于校验计划状态worktree-audit.sh用于审计 worktree。这些脚本共同说明唤醒不是靠 Agent 凭空自醒而是有实际可执行的监听与检查载体详见pstack/skills/poteto-mode/scripts/。一个务实的选型建议有事件就监听事件没事件就按周期复查。监听事件比固定轮询更省算力、响应更快而心跳间隔的长度应该以这个结果多久值得再看一次为准而不是越短越好。四、迭代纪律最小变更 证据验证 去留判定第 3 步定义了每一轮迭代的单位操作这也是整个 Playbook 中操作性最强的部分Each iteration makes the smallest change the evidence justifies, verifies it against the predicate, commits if it advanced, discards changes that didnt help. Belt-and-suspenders that might help gets reverted, not left to ride.逐句拆解其工程含义做证据允许的最小变更。这与核心原则技能principle-laziness-protocol偏向删除与解决该问题的最小变更和principle-subtract-before-you-add先移除死重再在更简单的基础上构建一脉相承。用谓词验证它。每轮变更都对着退出条件跑一次检查而不是攒到最后统一验证。推进了就提交没帮助的就丢弃。这是关键的去留判定可能有帮助的保险性改动belt-and-suspenders一律回滚绝不让它搭车留在代码里。理由是未被证据支持的改动会污染 diff、增加评审负担而且与principle-test-behavior-not-implementation的只保留被行为验证的代码精神一致。用 sequence-verifiable-units 给工作排序Playbook 第 3 步末尾要求用principle-sequence-verifiable-units技能来编排工作顺序。该原则技能给出了红到绿逐单位推进的范式选择最小的、以检查收尾的单位一次编辑加它的测试或一个能独立成立的 commit推进前先验证每个单位红到绿绝不推迟到最后一批再检查按顺序交付让序列本身成为论据——对执行者而言逐步建立信心对评审者而言可重放先红后绿。其原理文档pstack/skills/principle-sequence-verifiable-units/SKILL.md#L11给出了为什么这样做在引发问题的那个单位就抓住它定位成本最低等到成批检查时才暴露错误已经被埋进更深的构建里。在 Autonomous run 的语境下这条纪律意味着自主运行不是闷头改完再验证而是每改一小步就对着谓词验证一步。五、中途发现你来处置不抛回给人类第 4 步定义了自主运行最重要的边界运行过程中发现的任何问题都属于你。Playbook 明确列出了一个发现清单broken skills技能文件坏了related bugs相关问题flaky verifiers不稳定的验证器review noise评审噪音tooling failures工具链故障orphaned follow-ups无主的后续事项fixable drift可修复的漂移处置规则通过 poteto-mode 自行处理。这呼应了 pstack 主技能 中Broken skill mid-task → fix it in its own PR. Dont block. Dont silently work around it.任务中途技能坏了 → 放进自己的 PR 修复不要阻塞不要默默绕过的触发规则。带外修复out-of-band fixes放进自己的 PR。主任务与旁路修复分 PR 提交互不污染。可逆工作绝不搁置等人也绝不使用AskQuestion。这正是principle-never-block-on-the-human的落地代码变更可逆、可评审错误决策的代价通常低于阻塞的成本所以先做再呈现结果。只在三种情况下才向人类浮出不可逆动作force-push 到共享分支、部署、删数据、给客户发消息——参见 pstack 主技能 的 Autonomy 章节真正的产品决策或偏好取舍任何实验都无法裁决真正的死胡同real dead end。谓词始终是主驱动。每次旁路修复之后都要回到谓词继续推进不能让中途发现把主线带偏。这一节的要点可以浓缩为一句话可逆的事自己做掉并记录不可逆的事才停下来问旁路修复单开 PR主线永远回到谓词。六、检查点留痕show-me-your-work第 5 步要求每一轮迭代都通过show-me-your-work技能做检查点Checkpoint every iteration via theshow-me-your-workskill, a row for what changed and whether the predicate moved.通过 show-me-your-work 技能为每次迭代做检查点一行记录改了什么以及谓词是否推进了。该技能规定了一个标准化的审计格式单个 TSV 文件每个决策一行列结构为ts / phase / decision / why / evidence / resultpstack/skills/show-me-your-work/SKILL.md#L15-L22列含义示例tsISO8601 时间戳2026-05-24T09:02:00Zphase阶段或工作流widgetdecision做了什么一行moved the widget styles over without changing how it lookswhy用大白话写原因keep the change small and the result identicalevidence证据指针commit SHA、PR 号、file:line、截图路径commit 7c21e0a, pixel-diff 0result结果或谓词状态tests green/reverted/pixel-diff 0/INCONCLUSIVE/open技能的几条硬性规则pstack/skills/show-me-your-work/SKILL.md#L48-L54在自主运行中尤其重要一行 一个决策或检查点对于循环运行每轮迭代一行只追加append-only错误的决定用新行覆盖绝不编辑或删除历史本地优先默认放在工作目录的decisions.tsv或多个并行任务时放.audit/task-slug.tsv仅在任务重要到评审者需要审计轨迹时才提交入库推荐使用辅助脚本scripts/log.sh logfile phase decision why evidence result写入它会自动盖时间戳、首次使用时写表头、剔除制表符与换行、并为以、、-、开头的单元格加单引号前缀防止电子表格公式注入。运行结束时还有两道收尾工序对照 transcript 审计日志每行都能对应到真实动作、证据可解析、遗漏的分叉与放弃方案要补上、删掉填充性条目以及跨模型复核用与执行者不同模型族的子代理扫描审计轨迹找出弱证据决策、跳过验证的环节、事后看来有风险的取舍并以 Attention 章节 reviewed by model行收尾。对无人值守的长任务来说这份 TSV 就是让我信任你做完的事变得可验证的关键载体。七、何时停止谓词满足即止平台期不是终点第 6 步定义了终止语义也是全篇最容易被人性弱点击穿的地方Stop when the predicate is met. A plateau is not a stop, so keep going and pivot your approach to push past it. Surface a genuine dead end rather than spinning, and never relax the predicate to declare victory.三层规则谓词满足即停止。这是唯一的合法终止点。平台期plateau不是停止。当迭代不再推进谓词时正确的动作是换一种方法pivot继续推进而不是停在原地。这对应 pstack 中攻击前提principle-attack-the-premise连续两次修复共享同一前提且都失败就该质疑前提本身与穷尽设计空间principle-exhaust-the-design-space无先例的决策先构建 2-3 个竞争性原型再取舍的原则。真正的死胡同要浮出而不是空转。如果证据表明此路不通就把死胡同如实呈现这是第 4 步允许向人类浮出的三种情况之一。绝不为宣布胜利而放松谓词。把标准降低到能宣称完成是自主运行最危险的反模式——它同时背叛了退出条件的客观性第 1 步和 prove-it-works 的真实产物验证原则。八、收尾交付与 PR 规范Playbook 最后规定了一次运行结束后的回复格式Reply:the exit condition, iterations run, what landed, what was discarded, final predicate state.回复应包含退出条件、运行的迭代次数、落地了什么、丢弃了什么、谓词的最终状态。这份回复清单本身就是一个结构化的运行报告模板五要素齐全目标退出条件、过程迭代数、成果落地内容、反悔丢弃内容、结果谓词终态。由于 Autonomous run 属于 pstack 全 Playbook 体系的一员其产物在落库时还要遵守 opening-a-pr 规范worktree从 main 开 git worktree 工作子代理继承脏分支先 patch 出来、开全新 worktree、再 apply提交liberally 提交rebase 成小的、有序的、每个都能单独成为未来 PR 的 commitPR 写作提交前跑cursor-team-kit的/deslop评审前跑/no-comments标题用 Conventional Commitstype(scope): subject如fix(pstack): retarget opening-a-pr babysit trigger正文按## Why / ## Scope / ## Tradeoffs / ## Blast Radius / ## Verification顺序组织尺寸偏好 5 个窄 PR 而不是 1 个大 PR堆叠stack时子分支 rebase 到父分支精确 tipPR 以父分支为 baseready 即开绝不 draft 开 PRgh省略--draftOrigin 传--status open不开 PR 不 babysit开 PR 之后继续构建不逐 PR 停下游说评审。把这些规则叠加到 Autonomous run 上得到的最终形态是一个自主驱动到谓词满足的长任务其全部产物都以干净、有序、可独立合入的 PR 形态落地并附带一份可审计的决策轨迹。九、完整流程速览与实践清单把六步串成一张可复制的运行卡片定义谓词在第一次迭代前写出可检查的退出条件tests green / repro fixed / all N PRs merged / pixel-diff zero。选唤醒机制用 Cursor/loop有事件就配 watcher 子代理 长心跳兜底无事件就固定间隔心跳。迭代最小变更每轮做证据允许的最小改动 → 对谓词验证 → 推进则提交、没帮助则丢弃 → 用 sequence-verifiable-units 排序逐单位红到绿。自行处置中途发现坏技能、相关 bug、不稳定验证器、评审噪音、工具故障、无主后续、可修复漂移都自己处理带外修复单开 PR仅不可逆动作 / 实验无法裁决的产品取舍 / 真死胡同才问人处理完回到谓词。每轮检查点用 show-me-your-work 写一行 TSV改了什么、谓词是否移动运行结束做 transcript 审计 跨模型复核。谓词满足即停平台期就 pivot 换方法真死胡同如实浮出绝不放松谓词宣布胜利。收尾回复退出条件 / 迭代次数 / 落地内容 / 丢弃内容 / 谓词终态产物按 opening-a-pr 规范以有序 PR 落地。实践红线对应各原则技能可逆工作不阻塞等人never-block-on-the-human每个检查对真实产物验证而非能编译prove-it-works未被证据支持的改动一律回滚不让可能有用搭车laziness-protocol / test-behavior-not-implementation审计日志只追加、证据可解析、跨模型复核show-me-your-work。延伸阅读想进一步理解本 Playbook 的运行环境可继续阅读 pstack 主技能文档含 Autonomy 边界与全部原则索引、sequence-verifiable-units 原则、show-me-your-work 技能、opening-a-pr 规范以及 pstack 项目 README。Autonomous run 与 orchestrate.md、autopilot-full.md 等相邻 Playbook 的边界划分也建议一并对照阅读。【免费下载链接】pluginsCursor plugin specification and official plugins项目地址: https://gitcode.com/GitHub_Trending/plugins125/plugins创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表