95% 壓縮率,但我們決定不做:一個 AI 工具 idea 的生與死
一個看起來完美的工具構想,經過四位 AI Coder 的嚴格審查,被全票否決。這篇記錄完整過程——從發想到 benchmark 到被殺掉,以及我從中學到的判斷框架。
一個看起來完美的工具構想,經過四位 AI Coder 的嚴格審查,被全票否決。這篇記錄完整過程——從發想到 benchmark 到被殺掉,以及我從中學到的判斷框架。
起點:一個讓人興奮的 idea
在用 Claude Code 寫程式的日常中,我注意到一個反覆出現的問題:npm run build 吐了 2000 行 log,其中 1990 行是 progress bar 和 dependency resolution,真正有用的只有最後 10 行。
這些 log 全部灌進 LLM 的 context window,吃掉的不只是 token 費用,更是模型的注意力預算。
於是 Context-Shield 這個構想誕生了:
context-shield run "npm run build"
攔截 subprocess 的 stdout/stderr,用 regex + heuristics 壓縮成結構化 Markdown。2000 行 → 200 token。
聽起來很棒,對吧?
第一輪:四位 AI Coder 怎麼看
我把這個 idea 丟給四位 AI 同時評估,每位獨立作答,互不干擾:
- Codex(GPT-5.5)— 工程師角色
- Gemini — 分析師角色
- Grok — 壓力測試角色
- Qwen 3.6(本機 Ollama)— 本地獨立意見
問了五個問題:壓縮策略、輸出格式、通用性、與既有工具的邊界、風險。
四位一致同意:MVP 用 regex heuristics、先支援 npm + pytest、跟既有的 RTK(我的另一個 token 壓縮工具)不重疊。
但分歧出現在風險評估:
Codex:「若沒有高可信保留原始 evidence,這工具只是在製造不可審計摘要。」
Grok:「不該做 standalone CLI。ROI 低,容易變棄置玩具。」
Qwen:「>70% 壓縮率才繼續,否則不值得。」
Benchmark:真實數據說話
與其繼續空想,我直接跑了 benchmark。從自己的 repo 收集了 6 份真實的 build/test log,寫了一個模擬 Context-Shield 壓縮邏輯的 Python script。
結果:
| Log | 原始 Token | 壓縮後 | 壓縮率 |
|---|---|---|---|
| npm test(98 個 test 全過) | 1,971 | 40 | 98% |
| du 輸出(782 行) | 14,930 | 128 | 99% |
| pytest(7 個 error) | 1,667 | 98 | 94% |
| tsc(20 個 TS error) | 945 | 592 | 37% |
| npm build(成功) | 175 | 14 | 92% |
| npm error(5 行) | 54 | 67 | -24% |
| 合計 | 19,742 | 939 | 95.2% |
95.2% 壓縮率。 看起來是不是該立刻動手做了?
第二輪:嚴格模式
我把 benchmark 數據丟回去,這次要求「嚴格模式——找理由殺掉這個 idea」。只准回答 GO 或 NO-GO,不准「條件性」。
結果:4/4 全票 NO-GO。
三把刀砍掉了這個 idea:
刀一:95% 是灌水的
782 行的 du 輸出佔了總 token 的 75%,而 du 根本不是 build/test 工具。
去掉 du,只看真正的 build/test:
- 全部:83.1%
- 只看 error case(agent 真正需要診斷的):73.6%
- 只看 success case:97.5%
但 97.5% 的 success case 壓縮率有什麼意義?
刀二:壓的是 noise,不是 signal
npm test 98 個 test 全過,1,971 token → 40 token,壓縮率 98%。
但想一下:「98 個 test 全過」這件事,agent 需要看 1,971 token 才能知道嗎?
不需要。agent 只需要 exit 0 + 一行 98 passed, 0 failed。
Context-Shield 壓掉的 98% 是 agent 本來就不需要看的東西。如果目標是不讓 agent 看到 noise,--quiet flag 或 > /dev/null 就夠了。
真正的考驗是 error case——agent 需要看到 traceback 來修 bug。但 tsc 20 個 error 只壓了 37%,因為每一行 error 都可能是有用的 signal,regex 不敢刪。
刀三:增量價值不存在
- RTK(我已有的工具)壓 CLI tool 的結構化輸出
- Claude Code 本身有 output truncation
- 多數 CI tool 都有
--quiet/--silentflag - Agent 可以被指示「只看最後 N 行」
再疊一層 regex compressor,增加的是維護成本(每個工具版本更新都可能破壞 pattern),換來的增量價值趨近於零。
Grok 的總結最狠:
「沒有殺手級理由,只有一堆已知的例外與邊際案例。不值得做。」
我從中學到的判斷框架
1. Benchmark 要去掉離群值再看
95.2% → 去掉 du → 83.1% → 只看 error case → 73.6%。一個數字可以講三個完全不同的故事。
2. 問「壓掉的東西,本來需要看嗎?」
如果答案是「本來就不需要看」,那壓縮工具的價值就不是在壓縮,而是在過濾。而過濾,有更簡單的方式。
3. 跟既有方案算增量
不是「這個工具有沒有用」,而是「在已有 A、B、C 的情況下,這個工具多帶來了什麼」。如果答案是「多帶來了一層維護成本」,那就不值得。
4. 讓對手來審查你的 idea
第一輪討論,四位 AI 都說「可以做」。第二輪我要求「找理由殺掉」,四位全部翻盤。
人(和 AI)天生傾向支持被問到的 idea。 你問「這個 idea 好不好」,得到的答案傾向 yes。你問「這個 idea 為什麼會失敗」,得到的答案才是真正有用的。
那 Blog 呢?
諷刺的是,Context-Shield 作為工具被判了死刑,但作為 blog 素材反而更有價值。
「我做了一個壓縮率 95% 的工具」是一篇平庸的技術文章。
「我用四個 AI 殺掉了一個壓縮率 95% 的 idea」是一個有故事的決策過程。
有時候,最好的產出不是 code,而是一個被充分驗證的「不做」。
我是江中喬,一位具有 TPM 與產品管理背景的 AI 系統建構者,目前專注於 AI 認知增強系統與多 Agent 協作架構的設計與實踐。