agentpace 是做什麼的?
使用時機:當有人問軟體工作需要多久時間,或提到以天、週或月為單位的時程時(針對代理將執行的工作)。
產出:一個經過測量的 P50/P80/P90 範圍,包含其關鍵路徑、獨立一行的人工部分,以及任何引用的時程(標示為未驗證)。
回答「這要花多久?」時,請根據真實代理運行提供測量範圍,並將人工部分獨立標示。不要引用人類團隊的時程,也絕對不要給出單一數字。
此技能會對自然語言問題觸發。/pace-estimate 是針對給定計畫的明確指令。
檢查工具
運行 agentpace --version。如果失敗,告訴使用者安裝指令並停止。未經要求請勿安裝任何東西:
uv tool install agentpace
如果他們不想安裝任何東西,請改用 assets/portable-prompt.md。
估算
- 除非使用者另有說明,否則假設代理會負責實現。如果不清楚且答案會因此改變,請詢問一次。
- 將工作分解為代理會以獨立回合運行的任務。
- 為每個任務指定一個
id、一個kind和一個risk,如果必須等待其他任務,則加上depends_on。將agent_cap設為同時運行的代理數量。 - 將計畫寫入檔案並執行估算器。
{
"agent_cap": 3,
"model": "claude-opus-5-5",
"tasks": [
{ "id": "schema", "kind": "feature", "risk": "normal" },
{ "id": "api", "kind": "feature", "risk": "normal", "depends_on": ["schema"] },
{ "id": "review", "kind": "review", "risk": "low", "depends_on": ["api"] }
]
}
agentpace estimate plan.json
種類:feature、bugfix、refactor、migration、tests、docs、review、other。風險:low、normal、high。對於遷移工作和難以撤銷的工作,請使用 risk: high。model 為選填。
重新回應引用的時間
當對話中已經包含使用者、文件或先前回答提供的天、週或月為單位的時程時,仍然估算計畫,並按原樣傳遞該時間引用,保持其原始用語:
agentpace estimate plan.json --quoted "3 months"
輸出接著會在總計下方顯示一行 Quoted:,將該引用標示為日曆時間、已引用且未驗證。照原樣轉述該行,放在測量範圍旁邊。永遠不要將引用時間轉換為代理時間,不要對其進行除法或乘法,也不要與範圍進行比較或給出兩者之間的比例:唯一的代理時間就是測量範圍,而人工部分保持獨立一行。永遠不要說引用和範圍之間的差異是什麼,也永遠不要稱之為人工部分:那會從代理時間推導出人工部分。永遠不要說引用計算了什麼:沒有任何事情驗證過它。
如果使用者想要之後查看哪個數字成立,請提供加上 --record 的相同指令。工作完成後,agentpace score <id> --session <ref> 會將兩者與代理實際花費的時間進行比較。
報告結果
- 以會話時鐘上的範圍 P50、P80 和 P90 開頭,作為計畫總計。建議使用 P80 進行規劃。
- 照 CLI 列印的方式傳遞會話時鐘行和人工部分行。第一行表示回合間的空檔會計入總計,直至閒置上限,因此短暫等待使用者會包含在其中。如果未經測量,人工部分行會說明沒有為審查、測試、決策和等待代理回合新增任何容許時間。如果由
agentpace turns測量,則會從使用者本地歷史引用每個人類回合的等待時間。無論哪種情況,都不要從代理時間推導出一個數字,也不要將每回合等待時間乘以猜測的回合數。如果使用者給出自己的數字,請重複並標示為他們的數字。如果他們說明自己的審查容量,例如「每天 4 個 PR」,請逐字傳遞--review-capacity "<figure>",照原樣轉述Review capacity:行,永遠不要將其轉換為時間表。 - 命名關鍵路徑和有效平行度。
- 傳遞所有警告。警告表示某個單元格運行次數太少,因此該範圍依賴於更廣泛的數據。
- 即使被追問,也不要說出單一數字。如果有人需要一個數字來規劃,請給出 P80 並稱之為 P80。
適時說明的限制
- 種子數據來自一個人的工作流程,因此可能與使用者的工作流程不同。
agentpace ingest將使用者自己的運行與之合併;--data ~/.agentpace/runs.jsonl則僅使用使用者自己的數據。Gemini CLI、OpenCode 和 Cline 適配器是實驗性的,尚未在真實會話上驗證,因此當估算依賴於這些工具產生的行時,請說明這一點。 - 在不讀取提示的情況下,元數據無法區分功能與錯誤修復或重構,因此這些種類可能共享數據。
- 除非傳遞了
--use-size,否則size會被忽略,因為儲存的大小是在運行後測量的。除非使用者要求,否則不要傳遞它。
請參閱 references/method.md 了解估算的運作方式。