Communitygithub.com

perhapsspy/codex-token-discipline

在上下文增長時保持長時間任務的專注度。

codex-token-discipline 是什麼?

此技能旨在管理與 AI 編碼代理(如 Codex)互動過程中的 token 消耗與上下文長度。它透過在 read、tool output、retry 與 delegation 操作前設定明確的邊界,來防止上下文膨脹,同時確保任務成功並產出所需證據。該技能支援所有主要的 AI 代理平台,並提供具體的操作框架:命名當前階段(探索、規劃、實作、驗證、發布或交接),定義所需的最小證據,為工具呼叫設定 token 預算,以及將完整輸出寫入工件而非主執行緒。它還針對子代理、瀏覽器/UI 循環與長期運行工作提供指導,確保委派任務維持狹義範圍並返回可獨立驗證的結果。總結來說,此技能幫助開發者維持低成本、高效率的工作流程,避免因不加選擇地讀取與過度輸出而導致代理效能下降。

相容平台~Claude Code✓Codex CLI~Cursor
npx skills add perhapsspy/codex-token-discipline

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Codex Token 紀律

目的

在不削弱任務成功、必要證據或要求交付成果的前提下,降低整體根與子成本。

限制讀取、工具輸出、重試與委派的範圍。保留可重複使用的證據,僅升級未解決的部分。

操作框架

僅使用會改變行為的部分:

  1. 命名當前階段:探索、規劃、實作、驗證、發布或交接。
  2. 在廣泛閱讀前,先定義所需的下一個證據。
  3. 在可能產生噪音的工具呼叫前,先定義最小的有用回傳形狀與輸出預算。
  4. 僅在能回傳經過提煉且附帶證據的結果時,才委派有噪音的副作業。
  5. 在階段邊界,保存精簡的恢復狀態,並將會話延續決策交給擁有的指揮官(如果有的話)。

對於小型編輯、直接回答與簡單指令,可跳過此儀式。

預先輸出合約

在過多輸出進入主要上下文前即加以預防;不要事後才依賴摘要。

  • 對於任何不可預測或批次指令,先指定所需的回傳形狀:狀態、計數、路徑、選定欄位或第一個可處理的失敗。
  • 對工具呼叫設定有限回傳預算。對於 exec 系列呼叫,預設使用明確預算,且不超過 2000 個 token,除非命名的證據需要更多;不要等待單一的大輸出閾值。
  • 在來源端進行過濾、聚合或選擇。對於測試與建置,先回傳退出狀態、第一個可處理的失敗與指令,再要求更多細節。
  • 當完整輸出對後續檢查有用時,將其寫入任務局部或暫存工件,僅回傳其路徑、大小、精簡摘要與第一個可處理的失敗。必要時從工件中檢查有界限的片段。
  • 不要為可在來源端縮減的可拋棄輸出建立工件。

摘要優先讀取

從狹義開始;僅在會改變下一個決策時才擴大。

  • 使用 rg 或檔案列表進行搜尋,再開啟檔案。
  • 偏好使用 git diff --stat、git diff --name-only、聚焦的 git diff -- <path> 以及有目標的 sed -n 範圍,而非完整差異。
  • 對於日誌與指令輸出,使用 tail、head、jq、計數、過濾器或錯誤搜尋,而非完整記錄檔。
  • 將每個回傳的工具結果視為未來的輸入成本。偏好使用計數、路徑、摘要或選定證據,而非完整輸出。
  • 在失敗後,從已儲存的工件擴大範圍,或僅重新執行最小的失敗範圍;避免在主執行緒中重複完整的記錄檔。

如果必須進行廣泛讀取,請說明原因並將其限制在最小有用的範圍內。

長期運行工作

將階段變更視為上下文檢查點。

  • 在實作或儲存庫/任務切換前,保存結論、下一個決策、最近的下一個步驟與最小有用邊界。
  • 在使用 project-context 的儲存庫中,偏好使用 BRIEF.md 作為精簡的當前狀態,並使用日誌作為證據。
  • 當指揮官協調長期運行工作時,回報檢查點,並讓指揮官決定是否繼續、交接或輪換工作階段。不要無條件地規定或發起新的工作階段。
  • 在沒有指揮官的情況下,僅當保存的表面足夠繼續,且使用者或擁有此工作流程要求時,才重新開始。

不要儲存記錄檔、驗證矩陣或檔案庫存來補償大型對話。

子代理

委派並非天生成本較低。使用範圍最狹窄的命名代理,來處理可以回傳精簡、可獨立使用的證據或輸出的有限工作。

從一個代理開始。僅平行化獨立、不重疊的範圍。不要重複相同的調查、在整合後仍保持代理存活,或重複仍然有效的驗證。

提示中包含範圍、寫入邊界、完成條件、驗證與預期的精簡輸出。子代理不得再進行委派。

瀏覽器與 UI 循環

在重複的視覺或瀏覽器驗證前,寫下要檢查的狀態。

  • 偏好每個命名狀態使用一張螢幕截圖或一次瀏覽器傳遞。
  • 如果檢查失敗,檢查最小的擁有者:控制台錯誤、DOM 狀態、路由資料或聚焦的元件。
  • 將圖片、base64 螢幕截圖、完整主體文字與 DOM 轉儲保留在主執行緒之外,除非該工件本身會影響下一個決策。
  • 一旦命名的狀態通過驗證或隔離出具體障礙,即停止。

永遠讀取的表面

全域或儲存庫指令中的每一行都有重複成本。

  • 將持久的行為規則與安全邊界放入 AGENTS 風格的檔案中。
  • 將可重複的工作流程放入技能中。
  • 將當前任務狀態放入儲存庫任務文件中。
  • 將當前可重複使用的領域事實放入參考文件中。
  • 移除過時的設定檔、重複的指令與歷史解釋,而不是在它們周圍撰寫文件。

在編輯永遠讀取的檔案時,偏好短路由規則而非程序文字。

使用審計

當被問及 token 的去向時,請解析此已安裝技能目錄下的 scripts/summarize_codex_usage.py,使用 --help 執行它,然後使用明確的 --cwd-prefix 進行審計。

該腳本按根執行緒分組 Codex 推出日誌,並報告 token 總數、快取輸入率、子工作階段的 token 份額、工具輸出量、大輸出事件以及頂級輸出工具訊號,而不包含原始負載。

將 token 總數視為訊號,而非品質指標。避免在整個主目錄中進行文字搜尋;將腳本指向 $CODEX_HOME/sessions 或其他明確的工作階段根目錄。

最終檢查

  • 主執行緒是否僅收到當前決策所需的證據?
  • 有噪音的工具工作在執行前是否已設定回傳形狀與預算,且僅在有用時才將完整細節保留在工件中?
  • 大型讀取、瀏覽器循環與子代理是否受到明確問題的限制?
  • 可恢復的狀態是否位於正確的表面,且擁有的指揮官是否保留了繼續/交接/輪換的決策?
  • 永遠讀取的指導是否保持簡短,並將詳細資訊引導至別處?

相關技能