padvisor(單代理第二意見)
概述
產生一個代理來閱讀情境、形成判斷並回答。它不做工作——你保留工作。在決策逼近、方法感覺有問題、或計畫在執行前需要新視角時使用。
不是 pspawn,不是 phandoff。 後者將工作移交出去。這個僅移交問題,並帶回一個意見,然後你自行行動。
產生的代理可以做什麼。 它以團隊預設權限(Claude 的 bypassPermissions,Codex 的 full-access)運行,無需權限提示,但透過指令而非模式強制唯讀:簡報的「禁止編輯」後綴使其不能修改檔案。希望更多權限的團隊可以在倉庫的 AGENTS.md 中要求,該檔案也是指令,或透過 Claude Code 的 permissions.deny 規則阻止,這些規則在 bypassPermissions 中仍然有效。
觸發
/padvisor [provider/model] [--skill /<name>] <question> — 模型可選。
預設提供者:與你不同的模型家族。 從 Claude 出發,使用 Codex 的最新模型,即 paseo provider models codex 中的第一個 id;從 Codex 出發,使用 paseo provider models claude 所列的最新 Opus(例如 claude/claude-opus-5-5,即普通 id 下的 1M 模型;pspawn 解釋了為什麼沒有 [1m])。對比是關鍵——來自你自身模型家族的顧問會因為你已經錯了的相同原因而同意你。僅當用戶指定模型時才覆蓋。從列表中讀取 id,切勿憑記憶。
步驟
1. 將其作為此會話的子進程產生。 首先檢查提供者可用性,完全按照 pspawn 的步驟 1(<此技能基本目錄>/../pspawn/SKILL.md)。然後:
paseo run --no-wait --json \
--provider '<provider/model>' \
--thinking xhigh \
--mode <codex 用 full-access,claude 用 bypassPermissions> \
--title "[顧問] <主題>" \
"$(cat <<'BRIEF'
<簡報,步驟 2>
BRIEF
)"
在 paseo 下,顧問會自行進入此會話的工作區,作為此會話的子進程——並保持為子進程:不要分離它。顧問屬於問題;當此會話被歸檔時,paseo 會將顧問一同歸檔,這正是應有的行為。在 paseo 之外,添加 --workspace <id>,查找方式如 pspawn 的步驟 2。
模式:claude → bypassPermissions,codex → full-access,如同每次產生(團隊預設):在預設模式下,顧問會因無人回答的提示而停滯。禁止編輯後綴(而非模式)使其不修改檔案。對 provider/model 使用單引號。
2. 撰寫簡報。 顧問沒有上下文,也看不到此對話。
[用戶對話的語言,作為指令:「用<該語言>回答。」]
## 問題
[一個尖銳的問題。不是「你認為如何」——而是「X 還是 Y 是正確的選擇,為什麼」。]
## 情境
[正在建構或決策的內容,用三句話描述。]
## 我已考慮的事項
- [選項] — [為何吸引我,為何令我擔心]
- [我排除的選項] — [基於何種理由]
## 查看位置
- `/絕對/路徑/檔案.ts` — [它是什麼以及為何重要]
## 我想要的反饋
一個附帶理由的建議。指出反對你自己建議的最有力論點。
如果我對問題的框架是錯的,請先說明。
這僅是分析。不要編輯、建立或刪除任何檔案。不要撰寫程式碼。
使用絕對路徑指向檔案;不要貼上其內容。 代理可以自己讀取。貼上內容會消耗上下文並過時。
「反對你自己建議的最有力論點」這一行不是裝飾——沒有它,一個新代理通常會給出自信的單方面答案,而這正是此技能旨在避免的失敗模式。
3. 等待——安裝 paseo-notify,然後結束你的回合。
paseo-notify <顧問-id>
它會立即返回。當顧問停止時,一條訊息會到達此會話:finished its turn → 它已回答(訊息攜帶其最後的活動行),is waiting for a permission → 有一個請求在等待你,stopped with an error → 說明情況並閱讀其日誌;不要靜默地重新產生。使用量限制不會喚醒你:paseo-limit-watch 會恢復顧問並重新安裝監視,其 cron 行已安裝(參見 README);如果沒有,請在重置後自行檢查顧問。不要輪詢、不要 sleep 循環、不要 Monitor。先完成其他工作,然後結束你的回合。
在 paseo 之外(無 $PASEO_AGENT_ID),改用 paseo wait <advisor-id> --json 搭配 run_in_background: true——前台 Bash 呼叫上限為 10 分鐘,而高思考的顧問通常運行 15–30 分鐘——並從 JSON 讀取 status,絕不使用退出碼。
關於 permission(在 bypass 和 full-access 模式下罕見,但 rm -rf 仍會詢問),無人值守的顧問會靜默停滯。讀取請求(paseo permit ls),判斷是否在你賦予代理的權限範圍內,然後執行 paseo permit allow <agent-id> <request-id> 或 deny(兩個 id 均來自 paseo permit ls),並再次安裝 paseo-notify。如果超出權限範圍,或你不確定,請詢問用戶而非代為批准。
4. 閱讀答案。
paseo logs <顧問-id> --filter text --tail 3
pagent.py <id> -t -n 3 --full(<此技能基本目錄>/../pagent/)提供更豐富的視圖,包含時間戳,並能讀取 Claude、Codex 和 Antigravity 的記錄——與 paseo logs 不同,它從不重新載入已關閉的代理來讀取。
5. 為用戶整合。 顧問的裁決和你自己的解讀,清楚分開。你不是中繼器:如果顧問錯了,請說明並解釋原因。如果它發現了你忽略的東西,也坦白說出來。
6. 歸檔它——paseo archive <顧問-id>——除非用戶希望保留它(如下所述)。
持續性顧問
如果用戶希望持續輸入(「保留它以備後續決策」),跳過步驟 6,並發送後續問題給同一個代理,而非產生新的:
paseo send <顧問-id> "<後續問題>" --behavior steer --no-wait
然後像之前一樣等待(步驟 3)並閱讀(步驟 4)。如果提供者不接受 steering,dispatch 可以降級為中斷。--no-wait 很重要: 沒有它,CLI 會等待完成。paseo send 會恢復已歸檔的代理,所以先檢查 paseo inspect <id> --json 中的 ArchivedAt;告知用戶,而非恢復已歸檔的顧問。
其上下文會保留,這正是目的。當用戶表示完成,或主題轉移導致過時上下文弊大於利時,進行歸檔。
轉發技能
如果用戶傳遞了技能參考(/padvisor /code-review 這個是否過度設計?),則由顧問(而非你)執行該技能。選擇一個其 harness 包含該技能的顧問:僅存在於 Claude Code 中的技能(如 /code-review)需要一個 claude 顧問。在簡報中添加:
在執行任何其他操作之前,先使用 `<名稱>` 技能(Claude Code:Skill 工具;Codex:讀取其 SKILL.md),並將其應用於此任務。
將技能名稱之後的任何內容作為該技能的輸入傳遞。
常見錯誤
| 錯誤 | 修正 |
|---|---|
| 預設使用自身模型家族的顧問 | Codex 的最新模型——一個同意的顧問是浪費的產生 |
信任 paseo wait 的退出碼 | 對於 idle、permission 和 error 都為 0——從 --json 讀取 status |
| 前台等待 | run_in_background: true;10 分鐘的 Bash 上限會殺死等待,而非代理 |
輪詢 paseo ls、sleep 或 Monitor 來檢查是否完成 | paseo-notify <id> 並結束你的回合;一條訊息會喚醒你 |
直接使用 paseo send 進行後續 | 它會阻塞直到完成——加上 --no-wait,然後像步驟 3 一樣等待 |
分離顧問,或 env -u PASEO_AGENT_ID | 它故意是此會話的子進程:當會話歸檔時它也隨之消失 |
| 省略禁止編輯後綴 | 沒有它,顧問會開始實作你要求它判斷的東西 |
| 將檔案內容貼入簡報 | 使用絕對路徑;代理會自行讀取 |
| 未指定答案語言 | 顧問會以提示的語言回答;以用戶的語言開頭 |
| 將裁決當作事實轉述 | 這是一個缺乏上下文的意見——說明你不同意的地方 |
Codex 保留在預設模式,或 claude 保留在 auto | codex → full-access,claude → bypassPermissions(團隊預設);禁止編輯後綴使其保持唯讀 |
| 移交實際工作 | 那是 pspawn(開放任務)或 phandoff(已確認的規格與計畫) |