Community程式設計與開發github.com

komilovsg/f-mode

針對編碼代理的 Token 經濟工作模式 — 原始資料絕不進入上下文,只有結果才進入。適用於執行測試、讀取日誌、查詢資料庫、檢查大型檔案或 JSON、檢查多個類似項目、執行瀏覽器檢查,或當使用者說「f-mode」、「filter first」、「save tokens」、「context is filling up」、「too much output」時。涵蓋不隱藏失敗的過濾、精簡摘要、摘要驗證,以及何時委派給子代理。

f-mode 是什麼?

F-mode(過濾優先模式)是一項專為 AI 編碼代理設計的技術技能,旨在透過嚴格控制哪些資料進入代理的上下文視窗來最佳化 Token 使用效率。其核心原則是「原始資料從不進入上下文,只有結果才進入」,強制代理將邏輯移近資料來源(透過 shell 管線、簡短腳本或子代理),僅取回精簡摘要。此技能適用於各種平台,包括 Claude Code、Cursor、Codex 等支援工具呼叫與腳本執行的代理。該技能提供了具體的替代方案,取代直接讀取大型檔案或執行未過濾查詢的行為,例如使用 `grep -c` 而非 `cat`、使用 `jq` 處理 JSON、使用聚合 SQL 查詢、以及使用 `--oneline` 的 `git log`。F-mode 也強調在過濾時不得隱藏失敗(保留退出碼、列印失敗計數)、透過摘要驗證(比對預期值或完整性總數)確保正確性,以及何時應將廣泛調查委派給子代理。此外,它還規範了瀏覽器檢查(傳回精簡 JSON 而非完整 DOM)、秘密處理(遮罩或計數)、檔案讀取最佳化,以及當同一修復失敗兩次時的停止規則。最後,它要求在不同任務之間清理上下文,並停用不必要的插件、技能與 MCP 伺服器,以進一步節省 Token。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/komilovsg/f-mode/tree/HEAD/skills/f-mode

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

F-mode — 過濾優先模式

原則:原始資料絕不進入上下文;只有結果才進入。 將邏輯移至資料端(shell 管線、簡短腳本、子代理),並帶回精簡摘要。你閱讀日誌轉儲的每個 Token,都是你無法用於推理的 Token——而冗長嘈雜的上下文不僅讓推理更昂貴,還會讓推理品質變差。

1. 先過濾和聚合,再讀取

不要這樣做改這樣做
cat app.log`grep -c ERROR app.log; grep -E 'ERROR
讀取 5 MB 的 JSONjq '.items | length'、jq -r '.items[] | [.id,.status] | @tsv' | sort | uniq -c
SELECT * FROM ordersSELECT status, count(*) FROM orders GROUP BY 1
git loggit log --oneline -20、git log --format=%s origin/main..HEAD
滾動瀏覽檔案grep -n 'def handle' file.py,然後使用偏移/限制讀取

2. 過濾絕不能隱藏失敗

一個看起來一切正常的截斷檢視,比沒有檢視更糟糕。

  • 保留退出碼:set -o pipefail,或 cmd > out.txt 2>&1; echo "exit=$?"; tail -20 out.txt。直接 pipe 進 tail 會遺失指令的退出碼。
  • 除了 tail 之外,還要 grep 失敗標記:grep -cE 'FAIL|ERROR|Traceback|panic' out.txt。
  • 印出帶分母的計數:passed 41/42,絕不只是「OK」。
pytest -q --tb=short > /tmp/t.out 2>&1; echo "exit=$?"
grep -cE 'FAILED|ERROR' /tmp/t.out; tail -15 /tmp/t.out

3. 多個類似檢查 → 一個腳本,一個表格

十個端點、二十個檔案、三十個要驗證的資料列:撰寫一個腳本進行迴圈,並印出一個精簡表格 (name | status | detail) 以及總計。而不是進行十次工具呼叫,每次回傳十個完整輸出。

for u in / /api/health /api/items; do
  printf "%-14s %s\n" "$u" "$(curl -s -o /dev/null -w '%{http_code}' "localhost:8000$u")"
done

4. 檢查摘要的意義,而非形式

看起來有效的輸出仍然可能是錯的。請與預期值或完整性總數進行比對:計數加起來是否等於輸入大小、已知的資料列是否存在、檔案數量是否與 ls | wc -l 相符。如果無法交叉檢查摘要,請明確說明。

5. 測試

靜默模式、簡短回溯、失敗區段的尾端:

  • pytest -q --tb=short
  • vitest run --reporter=dot、jest --silent
  • go test ./... 2>&1 | grep -E '^(FAIL|ok|---)'
  • cargo test -q

6. 瀏覽器檢查

執行一個回傳精簡 JSON ({title, errors: n, buttons: n, overflowX: bool}) 的腳本,而不是完整的 DOM 快照。只有在 DOM 結構本身就是問題時才拍攝快照。螢幕截圖用於視覺檢查,而非讀取文字。

7. 廣泛調查 → 子代理

大型搜尋、日誌取證、資料庫傾印:委派給一個子代理,由其回傳帶有 file:line 參考的結論。其結果仍然是一個主張——在據以行動之前,請驗證關鍵要點。

8. 秘密與個人資料

切勿在摘要或診斷中印出機密或真實的個人識別資訊。請遮罩(postgres://***)或計數(emails found: 12)。同時也要遮罩捕獲的例外訊息中的連線字串和金鑰。

9. 讀取檔案

  • 先使用 grep -n,然後只讀取相關範圍,並使用偏移/限制。
  • 你即將編輯的原始碼應完整讀取——部分讀取會導致編輯損毀。
  • 編輯後不要為了「驗證」而立即重新讀取檔案;編輯工具在失敗時已經會報錯。

10. 停止規則

同一個修復失敗兩次 → 停止。從確切的錯誤行找出根本原因,或提出詢問。不得進行第三次盲目重試。

11. 上下文衛生

  • 在不同任務之間清理上下文;壓縮長時間的對話。
  • 停用你在此專案中不使用的插件、技能和 MCP 伺服器:每一個都會在每次請求中消耗提示詞 Token。
  • 根據實際使用數字(例如 /cost)來判斷節省效果,而非根據宣稱的百分比。

相關技能