標籤: Claude Code

  • Claude Prompt Caching 長對話成本優化實戰

    Claude Prompt Caching 長對話成本優化實戰

    📌 本文重點

    • 只為「新算的 token」付錢才省成本
    • 穩定前綴(system、tools、長期記憶)要被快取
    • cache key 必須含模型、租戶與權限版本
    • 長對話可降 30–60% 推理成本

    長對話裡真正燒錢的不是「整個 context 有幾個 token」,而是每一輪新算了多少 token。Claude 的 prompt caching 就是把那些每輪都重複出現的前綴(system prompt、tool schema、長期記憶等)標記成可重用的計算結果,只為「新出現的部分」付錢。實務上,你可以在 RAG、Agent、Code Assistant 裡大幅壓低長會話成本,同時讓模型保持完整上下文。

    💡 關鍵: 掌握「每輪新算 token」才是控成本的核心,而不是只看整個 context 長度。


    重點說明:為什麼「重用前綴」省錢

    1. 計費與計算模型:只對「新算過的 token」付錢

    現代 LLM(包含 Claude)推理時,會對輸入序列做一次注意力與前向計算。若供應商支援 前綴快取,就能把已算過的 embedding / KV cache 重新使用,對於已快取的部分:

    • 計費:只收少量或不收額外費用(依供應商設計)
    • 計算:避免重跑 attention / matmul

    • 快取什麼:可穩定重複的 prefix

    典型可快取區塊:

    • System prompt:角色、風格、平台規範
    • Tool schema:function calling / tools JSON schema
    • 長期記憶 / 專案上下文:repo 結構、domain handbook、RAG 長期摘要
    • 長期對話前半段:幾十輪以上的歷史,只要不會被頻繁重寫

    • API 層設計:cache key + 失效策略是核心

    要讓 prompt caching 在多模型、多供應商環境可維護,必須明確管理:

    • cache key 組成:模型版本 + system prompt hash + tools hash + tenant + 權限版本
    • 失效策略
      • 模型升級(model_version 變更)
      • 工具清單或 schema 改動
      • tenant 權限/角色變更

    💡 關鍵: 把模型 ID、租戶與權限版本都放進 cacheKey,才能避免快取錯配與資料洩漏。


    實作範例:切分前綴與多層快取

    1. Prompt 結構切分策略

    我們先定義一個標準化的 prompt 結構:

    // TypeScript / Node pseudo-code
    interface PromptSegments {
      system: string;          // 系統指令
      toolsSchema: object[];   // 工具定義 (OpenAI / Claude tools 格式)
      longTermContext: string; // 長期記憶 / 專案說明 / RAG summary
      shortHistory: string;    // 近期對話 (例如最後 10 輪)
      userInput: string;       // 本輪使用者輸入
    }
    
    function buildMessages(segments: PromptSegments) {
      return [
        { role: "system", content: segments.system },
        { role: "system", content: `TOOLS_SCHEMA:\n${JSON.stringify(segments.toolsSchema)}` },
        { role: "system", content: `LONG_TERM_CONTEXT:\n${segments.longTermContext}` },
        { role: "assistant", content: segments.shortHistory },
        { role: "user", content: segments.userInput },
      ];
    }
    

    前 3 段(system / toolsSchema / longTermContext)就是要被 prompt caching 鎖定的 prefix;shortHistory 則保留可替換的空間,避免整個對話歷史變成難以管理的快取。

    2. Node 版 cache middleware(多模型、多供應商共用)

    假設你有一個抽象的 LLMClient,在呼叫前注入 cache metadata

    // Node.js pseudo-code
    import crypto from "crypto";
    
    interface CacheMetadata {
      cacheKey: string;
      cacheTtlSec: number;
    }
    
    function buildCacheKey({
      provider,
      model,
      system,
      toolsSchema,
      tenantId,
      permissionsVersion,
    }: {
      provider: string;
      model: string;
      system: string;
      toolsSchema: object[];
      tenantId: string;
      permissionsVersion: string;
    }): string {
      const hashInput = JSON.stringify({ system, toolsSchema, tenantId, permissionsVersion });
      const hash = crypto.createHash("sha256").update(hashInput).digest("hex");
      return `${provider}:${model}:${hash}`; // 核心:模型 + 前綴內容 + 租戶/權限
    }
    
    async function withPromptCache(llmClient, segments: PromptSegments, ctx) {
      const cacheKey = buildCacheKey({
        provider: ctx.provider,          // "anthropic" / "openai" / "azure-openai" ...
        model: ctx.model,                // 例如 "claude-3.7-sonnet"
        system: segments.system,
        toolsSchema: segments.toolsSchema,
        tenantId: ctx.tenantId,
        permissionsVersion: ctx.permissionsVersion,
      });
    
      const messages = buildMessages(segments);
    
      const response = await llmClient.chat({
        messages,
        // 自定義或供應商原生字段
        metadata: {
          // 自家 caching layer 用
          promptCache: {
            cacheKey,
            segmentsCached: ["system", "toolsSchema", "longTermContext"],
            ttlSec: 3600, // 長期 context 一小時有效
          },
        },
      });
    
      return response;
    }
    

    在多供應商環境下的重點:

    • cacheKey 必須在抽象層就固定格式,不要依賴各家私有的 cache token。
    • 將「哪些 segment 可快取」「TTL 設定」寫在自家 metadata.promptCache,再由底層 adapter 映射到各家 API(例如 Anthropic 的 prompt caching 參數、OpenAI 未來的前綴重用機制等)。

    3. Python 版:RAG + Agent + Code Assistant 共用策略

    示範一個 Python middleware,處理三種場景:

    # Python pseudo-code
    import hashlib
    from typing import List, Dict, Any
    
    class PromptCacheMiddleware:
        def __init__(self, backend):
            self.backend = backend  # Redis / in-memory / provider-native
    
        def _hash(self, payload: Dict[str, Any]) -> str:
            raw = repr(payload).encode("utf-8")
            return hashlib.sha256(raw).hexdigest()
    
        def build_cache_key(self, provider: str, model: str, tenant: str,
                             system: str, tools: List[Dict[str, Any]],
                             perm_version: str) -> str:
            hash_part = self._hash({"system": system, "tools": tools,
                                    "tenant": tenant, "perm": perm_version})
            return f"{provider}:{model}:{hash_part}"
    
        def call(self, llm_client, segments, ctx, scenario: str):
            # scenario: "rag" | "agent" | "code"
            cache_key = self.build_cache_key(
                ctx["provider"], ctx["model"], ctx["tenant"],
                segments.system, segments.tools_schema,
                ctx["permissions_version"],
            )
    
            ttl = 3600 if scenario in ("rag", "code") else 600
    
            messages = build_messages(segments)
    
            # 自家 cache backend,也可以是 provider 的 prompt cache
            cached_prefix = self.backend.get(cache_key)
            if cached_prefix:
                # 若使用 provider-native KV cache,可在這裡直接標記使用
                pass
    
            resp = llm_client.chat(
                messages=messages,
                metadata={
                    "prompt_cache": {
                        "cache_key": cache_key,
                        "ttl_sec": ttl,
                        "segments_cached": ["system", "toolsSchema", "longTermContext"],
                    }
                },
            )
            self.backend.set(cache_key, "USED", ttl)
            return resp
    

    這樣你就可以在同一層 middleware 裡:

    • RAG 保留穩定的 long-term summary 前綴
    • Agent 快取工具清單與角色設定
    • Code Assistant 快取 repo / 專案上下文

    建議與注意事項:幾個常見坑

    1. 工具清單動態變化 → cache 大量失效

    2. 問題:Agent 工具列表若每次請求都依據情境動態調整,toolsSchema hash 會頻繁變動,導致 cacheKey 不可重用

    3. 建議:

      • 將工具分成「核心必備工具」與「情境工具」,只對核心工具段做 caching。
      • 使用 mid-conversation tool changes(例如 Claude Opus 5 的 beta 功能)讓工具權限在對話中調整,而不觸發整個 prefix 重算。
    4. 模型升級 → 快取錯配

    5. 問題:模型從 claude-3.6 換到 claude-3.7,如果 cacheKey 沒把 model / version 納入,就會拿舊模型算出的 prefix 餵給新模型,出現行為差異。

    6. 建議:

      • 必須把 model id / version 放在 cacheKey 開頭(前面範例已包含)。
      • 建多供應商兼容測試(對齊「同一前綴 + 不同模型」在工具呼叫、輸出格式上的差異),參考 LLM Provider Quirks 文章的思路。
    7. 多租戶 SaaS:tenant 隔離

    8. 問題:如果 cacheKey 沒包含 tenant / 權限版本,在多租戶環境下可能把 A 客戶的長期記憶前綴給 B 客戶用,造成嚴重資料洩漏

    9. 建議:

      • tenantIdpermissionsVersion 必須是 cacheKey 的一部分
      • 權限變更(role / scope 調整)時,明確 bump permissionsVersion,強制快取失效。
      • 對於敏感工具(例如能查詢客戶資料庫的 tool),可直接標記為 不參與 prompt caching,或使用獨立 cache 空間。
    10. 避免 cache 污染:RAG + Agent + Code Assistant

    11. 污染範例:

      • RAG summary 中意外混入使用者敏感資料,然後被快取成長期前綴。
      • Agent 工具列表在某次測試中加入 dev-only 工具,被 cache,之後所有 production 對話都看得到。
    12. 建議:
      • 在產生長期 context / tools schema 前,做一次 安全與敏感資料清洗
      • 長期前綴內容最好由後端控制(例如固定的 RAG summary service),而不是讓使用者直接寫入。
      • 為 dev / staging / prod 分別建立獨立 cache namespace。

    實際好處:你專案會得到什麼

    引入 Claude Code Prompt Caching 這類前綴快取機制後,對典型專案有幾個直接好處:

    • 長對話成本顯著下降:像 code assistant 或長期顧問型 Agent,一整天會話的 token 數看起來驚人,但前 70–90% 的前綴計算可以重用。實務上常見是 30–60% 推理成本下降
    • 維持完整上下文又不必瘋狂裁剪:有快取後,你可以保留更多長期記憶與工具說明,而不是每次都為了成本把 context 切到只剩最近幾輪。
    • 跨供應商、多模型快速試錯:抽象層設計好 cacheKey 與前綴切分後,就能在不同模型間切換時,維持一致的成本控制策略,不怕「換模型就打回重算」。

    💡 關鍵: 只要一開始就設計好前綴切分與快取策略,prompt caching 就能變成穩定的基礎設施,而不是事後補救。

    只要在專案一開始就規劃好 prompt 結構、cache key、失效策略,你就能把 prompt caching 當成基礎設施來使用,而不是事後補上去的微調。

    🚀 你現在可以做的事

    • 在現有專案裡明確切分 systemtoolsSchemalongTermContext 等前綴區塊
    • 為你的 LLM 抽象層加入統一的 cacheKeymetadata.promptCache 設計
    • 在開發環境先測試 RAG、Agent、Code Assistant 三種場景的快取策略與失效機制
  • Graphify:讓 AI 助手看懂整個專案

    Graphify:讓 AI 助手看懂整個專案

    📌 本文重點

    • Graphify 把整個專案轉成可查詢的知識圖譜
    • 讓 Claude Code、Cursor 等助手理解「整個系統」而非單檔
    • 特別適合接手專案、Code review、排錯與重構場景

    Graphify 就是替 Claude Code、Cursor 等 AI 編碼助手建立專案的知識底層,把程式碼、SQL、腳本、文件通通轉成可查詢的圖譜,讓 AI 回答不再只看單檔,而是理解整個系統。

    專案連結:Graphify-Labs/graphify(GitHub)


    核心功能:把「專案」變成可對話的地圖

    1. 把任何專案資料夾變成知識圖譜

    Graphify 支援:

    • 程式碼:Python、JavaScript 等一般 repo
    • 資料庫:SQL schema
    • 腳本:R、shell scripts
    • 文件:docs、論文
    • 多媒體:圖片、影片(以檔案與路徑資訊的形式收錄)

    實際可做的事:

    1. 選一個專案資料夾,例如 ~/projects/legacy-crm
    2. 讓 Graphify 掃描後生成知識圖譜
    3. 把「圖譜」接到你的 AI 助手,開始用自然語言查專案

    效果:你可以問 AI:

    • 「這個專案所有跟訂單狀態相關的函式和 SQL 表有哪些?」
    • 「從 API 收到請求到入庫,整個流程經過哪些檔案?」

    行動建議:先挑一個你覺得難接手的專案,當作 Graphify 的第一個練習對象。


    2. 一次整合:程式碼 + DB schema + 基礎設施

    Graphify 強調的是「整個系統放進同一張圖」:

    • App code:API、service、models
    • Database schema:tables、relations
    • Infrastructure:scripts、部署設定、CI/CD

    這意味著 AI 助手不只看到某個函式,而是可以沿著圖譜一路追:

    • 「這支 API 最後寫進哪個資料表?」
    • 「這張資料表在哪裡被讀取/更新?」
    • 「這個 Cron job 觸發哪些腳本,再改變哪些表?」

    💡 關鍵: 把代碼、資料庫與基礎設施放進同一張圖,才能讓 AI 追蹤完整的請求與資料流向。

    行動建議:如果你常在大型專案裡迷路,優先把 App code + DB schema 一起餵給 Graphify,請 AI 幫你畫出「從前端到資料庫」的完整路徑。


    3. 支援主流 AI 編碼助手與本地模型

    Graphify 自稱是「AI coding assistant skill」,專門替各種助手提供專案知識底層,目前支援:

    • Claude Code
    • Cursor
    • Codex / OpenCode
    • Gemini CLI
    • 以及其他可透過 CLI / API 串接的助手

    好處是:你不用換開發工具,只是多了一層「專案圖譜」,讓原本的 AI 助手變得更懂上下文。

    行動建議:先選一個你已經在用的助手(例如 Cursor),只做一件事:把 Graphify 生成的圖譜加進你的 Prompt 或工具設定,看 AI 回答專案問題的精準度差異。


    適合誰用:3 個具體場景

    1. 接手大型專案:用 Graphify 做「三小時系統導覽」

    接手舊專案最常遇到:

    • 文件缺失
    • 系統邏輯分散在各層
    • 找不到「這個功能到底怎麼跑」

    操作範例

    1. 從 Git 拉下專案:

    bash
    git clone <your-legacy-repo>
    cd <your-legacy-repo>

    1. 用 Graphify 掃描整個 repo,生成圖譜(假設有 CLI 指令 graphify scan):

    bash
    graphify scan . -o graph.json

    1. 在 Claude Code 或 Cursor 裡,附上 graph.json(或指向 Graphify server),向 AI 提問:
    2. 「列出與『會員等級計算』相關的所有檔案與流程,並畫文字流程圖。」
    3. 「說明訂單取消從 API 到資料庫寫入的完整路徑。」

    行動建議:把你接手的新專案都跑一次 Graphify,強制自己在第一天就用 AI 做一輪「系統導覽問答」。


    2. Code review:從「看單檔」變成「看整條影響路徑」

    傳統 Code review 很容易只盯著 diff,看不到改動在整個系統的影響。

    用 Graphify 的方式:

    1. 在 PR 對應的分支跑 graphify scan,生成該版本的圖譜。
    2. 在 AI 助手裡,輸入:
    3. 「這個 PR 修改的函式,影響到哪些上游呼叫點與下游資料表?」
    4. 「幫我列出這個改動所有可能破壞的流程。」

    AI 可以沿著圖譜追蹤呼叫鏈、資料流向,給你一份「改動影響報告」,你再決定要多測哪些地方。

    💡 關鍵: 利用圖譜讓 AI 做「改動影響分析」,可以系統性找出需要回歸測試的區域,而不是只憑經驗猜。

    行動建議:選一個你覺得風險高的 PR,讓 Graphify + AI 助手一起做一次「影響分析」,當作試驗。


    3. 排錯與系統重構:先畫圖,再動手

    排錯時最痛苦的是:

    • 找不到錯誤在哪條鏈路上爆
    • 重構時不敢動,怕牽一髮動全身

    Graphify 的知識圖譜可以幫你:

    • 快速列出某個錯誤堆疊涉及的所有節點(檔案、函式、表)
    • 在重構前問 AI:「我要拆分 user_service,請列出所有依賴它的模組與路徑。」

    實戰問句示例

    • 「根據圖譜,payment_timeout_error 這個錯誤從觸發到記錄經過哪些模組?幫我列出路徑。」
    • 「如果我要把 orders 表拆成兩張表,請告訴我所有讀寫 orders 的程式碼位置。」

    行動建議:下一次遇到棘手 bug,不要先改碼,先用 Graphify + AI 把「錯誤路徑」問清楚,再決定從哪個節點下手。


    工具與助手比較:怎麼搭配使用?

    以下是 Graphify 與常見 AI 編碼助手的定位差異與搭配方式:

    名稱 核心功能 免費方案 適合誰
    Graphify 專案知識圖譜;整合代碼、DB、腳本等 開源,GitHub 可用 想讓 AI 助手「看懂整個專案」的人
    Claude Code 雲端 AI 編碼助手,強自然語言理解 有免費使用額度 想用對話方式改碼/理解代碼的人
    Cursor VS Code 風格編輯器 + AI 補全與聊天 有免費方案 想把 AI 深度融入 IDE 的工程師
    Gemini CLI Google Gemini 命令列助手 有免費配額 喜歡在終端機用 AI 的開發者

    行動建議:先選一個你主要的開發環境(例如 Cursor),再把 Graphify 當成「增強模組」接上去,而不是全部一起嘗試,降低學習成本。


    怎麼開始:從 GitHub 到「可用工作流」

    官方入口:https://github.com/Graphify-Labs/graphify

    以下示範兩個「從零到可用」的最短路徑,以你已有的開發工具為中心來設計。


    工作流 1:接手專案 + Claude Code 問答

    步驟一:安裝與掃描專案

    1. 安裝(假設使用 Python pip,依實際 README 為準):

    bash
    pip install graphify

    1. 進入你的專案目錄,掃描並輸出圖譜:

    bash
    cd ~/projects/legacy-crm
    graphify scan . -o graph.json

    步驟二:把圖譜交給 Claude Code

    1. 在 Claude Code 裡開啟專案,將 graph.json 上傳或貼到系統提示(System Prompt),例如:

    「你可以使用以下專案知識圖譜回答問題。請依圖譜中的檔案關係、表結構與腳本依賴,協助我理解和修改系統。」

    1. 問第一組問題:

    2. 「請整理出『會員等級計算』相關的所有模塊與資料表。」

    3. 「依據圖譜,畫出從前端呼叫到 DB 的完整流程(文字版即可)。」

    做到這一步,你就完成了:接手專案 → 建立圖譜 → 用 AI 做系統導覽 的基本工作流。

    💡 關鍵: 把圖譜丟給 AI 之後,每一個新問題都在累積你對整個系統的結構化理解。


    工作流 2:Cursor 裡做 Code review 影響分析

    步驟一:在 PR 分支生成圖譜

    1. 切換到 PR 對應分支:

    bash
    git checkout feature/new-pricing

    1. 跑 Graphify:

    bash
    graphify scan . -o pr-graph.json

    步驟二:在 Cursor 裡使用圖譜

    1. 打開 Cursor,載入這個專案,並在 AI 設定中把 pr-graph.json 放進系統提示,說明:

    「這是目前分支的專案知識圖譜。做 Code review 時,請根據圖譜分析改動的上游呼叫和下游資料影響。」

    1. 在看 diff 的同時詢問 Cursor:

    2. 「這次修改的 calculate_discount 函式,上游有哪些呼叫者?下游有哪些寫入或查詢動作?」

    3. 「依據圖譜,列出最需要回歸測試的 5 個功能。」

    這樣你就有一套:看 diff → 問圖譜 → 寫測試計畫 的 Code review 工作流。

    行動建議:先把上述其中一個工作流完整跑一次,感受「AI 從看單檔」變成「看整個系統圖」的差異,再決定要不要把 Graphify變成團隊標準工具。


    小結:把 AI 助手升級成「系統顧問」

    Graphify 的本質,是幫你的 AI 助手補上一層「專案整體結構」:

    • 不再只依靠目前開啟的 1–2 個檔案
    • 而是能沿著代碼、資料庫、腳本和設定,追到整條路徑

    如果你已經在用 Claude Code、Cursor 這類助手,下一步值得做的事,就是讓它們不只會寫函式,而是真的看懂你的系統——Graphify 正好是那一層缺少的底座。

    🚀 你現在可以做的事

    • Graphify GitHub 把專案 clone 下來並跑一次 graphify scan
    • 挑一個現有專案,把產生的圖譜接到你最常用的 AI 助手(如 Cursor 或 Claude Code)
    • 在下一次接手專案或處理高風險 PR 時,用 Graphify + AI 做一次完整的系統導覽或影響分析
  • OmniRoute:一個 Endpoint 玩遍 200+ 模型

    OmniRoute:一個 Endpoint 玩遍 200+ 模型

    📌 本文重點

    • OmniRoute 用一個 Endpoint 串接 200+ 模型供應商
    • 內建 RTK + Caveman 壓縮,可節省 15–95% token 成本
    • 支援 MCP / A2A、多代理、多模態 Workflow
    • 適合多模型整合與成本優化的開發者

    用一句話先說清楚:OmniRoute 是一個多雲、多模型的一站式 AI 總機,讓你用同一個 API Endpoint,同時接上 Claude、GPT、Cursor、Copilot 等 200+ 家模型供應商,還順手幫你壓縮 token、自動跳備援模型。

    官方開源庫:https://github.com/diegosouzapw/OmniRoute


    核心功能 1:一個 Endpoint 管理多供應商+自動備援

    傳統做法是:每接一個模型,就要再接一個 SDK / API Key / Base URL。結果是:

    • 前端要切換模型,就得改環境變數
    • 後端要做 fallback,要自己寫 retry + 陣痛的錯誤處理

    OmniRoute 的做法是:所有模型統一走一個 OmniRoute Endpoint,後面怎麼分流、切換供應商、失敗改用誰,全都在 OmniRoute 的設定檔完成。

    💡 關鍵: 把所有模型統一進一個 Endpoint,可以一次解決多家供應商整合與備援問題,前後端只維護單一接點。

    你可以怎麼用

    以「同一個 Code Agent,要能在 Claude / GPT / 本地模型之間切換」為例:

    1. 在 OmniRoute 設定三個 provider:
    2. anthropic/claude-3.5(主力)
    3. openai/gpt-4.1(備援)
    4. local/deepseek(成本最低版)
    5. 設定路由策略:
    6. 主 Endpoint:先走 Claude
    7. 當 Claude timeout 或額度用完,自動 fallback 到 GPT
    8. 夜間批量任務改走本地模型
    9. 在你的程式碼中,只保留一個 OMNIROUTE_API_URL

    ts
    const response = await fetch(process.env.OMNIROUTE_API_URL, {
    method: "POST",
    headers: {
    "Content-Type": "application/json",
    "Authorization": `Bearer ${process.env.OMNIROUTE_API_KEY}`,
    },
    body: JSON.stringify({
    model: "code-agent", // 這是 OmniRoute 裡定義的邏輯模型名
    messages,
    }),
    });

    可行動建議

    • 手上的專案如果同時接了 Anthropic + OpenAI + 本地模型,可以先挑一個 API Call 練手,把三個 Base URL 改成一個 OmniRoute URL,測試 auto-fallback 是否生效。

    核心功能 2:RTK + Caveman 壓縮,節省 15–95% token 成本

    OmniRoute 內建兩種壓縮:

    • RTK(Reversible Tokenization Kernel):對常見 prompt 做結構化壓縮,適合長系統提示、多輪聊天歷史
    • Caveman 壓縮:偏「野蠻」但更激進,會重寫聊天記錄,把冗長表述變成精簡語句

    效果:

    • 系統長 prompt:省 15–40% token
    • 帶大量上下文(如文檔 QA):最高可到 95% token 減少

    💡 關鍵: 啟用 RTK 與 Caveman 壓縮後,長上下文任務可大幅降低 15–95% token 成本,直接反映在帳單與模型限額上。

    你可以怎麼用

    以「把整份 API 文檔塞給模型當『長期記憶』」為例:

    1. 在 OmniRoute 後台或設定檔,為 doc-assistant 這條路由開啟壓縮:

    yaml
    routes:
    - id: doc-assistant
    model: anthropic/claude-3.5
    compression:
    rtk: true
    caveman: true

    1. 程式端依然用原本的 messages 結構呼叫,不用自己壓縮:

    jsonc
    {
    "model": "doc-assistant",
    "messages": [
    {"role": "system", "content": "你是某某專案的文檔助手..."},
    {"role": "user", "content": "請根據附件 API 文檔..."}
    ]
    }

    1. OmniRoute 會在轉給底層模型前自動壓縮,再在輸出時解壓(對你來說是透明的)。

    可行動建議

    • 先挑「最長」的那支 API(例如:聊天歷史超長、帶多篇 PDF 的 QA),在 OmniRoute 上開 RTK+獵人模式(Caveman),觀察一次請求的 token 使用量與帳單變化。

    核心功能 3:MCP / A2A、多代理、多模態 Workflow

    OmniRoute 支援:

    • MCP(Model Context Protocol):讓不同工具 / 代理共享同一套上下文與工具列表
    • A2A(Agent-to-Agent):代理之間可互相呼叫,形成多步驟協作
    • 多模態 API:文字 + 圖片(甚至影音)混合輸入

    這讓你可以把原本散落在不同工具的能力,集中到一條 Workflow 裡。例如:

    • Code Agent 負責寫程式
    • Doc Agent 負責查文件、對比版本
    • Vision Agent 負責讀錯誤截圖

    💡 關鍵: 利用 MCP 與 A2A,可以把多個專職 Agent 串成一條 Workflow,讓 Code、Doc、Vision 等能力在同一上下文中協作。

    你可以怎麼用

    以「Side Project 的 Code Agent + 文檔助手」為例:

    • Code Agent:
    • 模型:Claude 3.5 Sonnet
    • 任務:生成程式碼、重構
    • 文檔助手:
    • 模型:GPT-4.1 / Gemini
    • 任務:閱讀 API 文檔、產生說明
    • 多模態:
    • 模型:如 Gemini / GPT-4o
    • 任務:讀錯誤截圖

    在 OmniRoute 裡定義三條路由,讓 Code Agent 能直接「轉接」給 Doc Agent:

    routes:
      - id: code-agent
        model: anthropic/claude-3.5
        a2a:
          doc-agent: true
          vision-agent: true
      - id: doc-agent
        model: openai/gpt-4.1
      - id: vision-agent
        model: google/gemini-1.5
    

    可行動建議

    • 先只做兩個代理(Code + Doc),在 OmniRoute 設定 A2A,讓 Code Agent 遇到「不知道 API 用法」時,把問題轉給 Doc Agent,再把結果回傳給使用者。

    實作示範:Side Project 串三家模型的 Code Agent + 文檔助手

    來做一個具體場景:

    需求:在同一個 Side Project 裡,整合三家模型,做一個簡單的「程式碼助理 + 文檔助手」,前端只有一個 Chat UI,後端只有一個 OmniRoute Endpoint。

    架構示意

    • 前端(Next.js / React):
    • 單一聊天框
    • 輸入模式按鈕:寫程式 / 問文檔
    • 後端:
    • 全部請求送到 OMNIROUTE_URL
    • model 欄位用來指定走哪個 logical route(code-agent or doc-assistant
    • OmniRoute:
    • code-agent → Claude(主)+ GPT(備)
    • doc-assistant → GPT + Caveman 壓縮
    • vision-agentGemini,多模態

    前端呼叫範例(TypeScript):

    async function callAgent(mode: "code" | "doc", messages) {
      const model = mode === "code" ? "code-agent" : "doc-assistant";
    
      const resp = await fetch(process.env.NEXT_PUBLIC_OMNIROUTE_URL!, {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          Authorization: `Bearer ${process.env.NEXT_PUBLIC_OMNIROUTE_KEY}`,
        },
        body: JSON.stringify({ model, messages }),
      });
    
      return resp.json();
    }
    

    後端與前端都不用知道「底下到底是 Claude 還是 GPT」,只認 model: "code-agent"model: "doc-assistant" 兩種邏輯角色即可。


    10 分鐘開箱:從零到第一條 OmniRoute

    以下是一條「最短路徑」,讓你在 10 分鐘內把現有專案換成 OmniRoute。

    1. 註冊與安裝(3 分鐘)

    1. 打開 GitHub 專案:https://github.com/diegosouzapw/OmniRoute
    2. repo 拉下來:

    bash
    git clone https://github.com/diegosouzapw/OmniRoute
    cd OmniRoute
    pnpm install # 或 yarn / npm

    1. README 建一個 .env,填入你現有的 OpenAI / AnthropicAPI Key

    2. 啟動 OmniRoute Server(2 分鐘)

    pnpm dev # 或對應的 start 指令
    

    啟動後會有一個本地 URL,例如:http://localhost:8787/v1/chat/completions,這就是你的「總機 Endpoint」。

    3. 設定第一個路由 + 壓縮策略(3 分鐘)

    config/routes.yaml(實際以專案為準)中:

    routes:
      - id: code-agent
        model: anthropic/claude-3.5
        fallback:
          - openai/gpt-4.1
        compression:
          rtk: true
          caveman: false
    
      - id: doc-assistant
        model: openai/gpt-4.1
        compression:
          rtk: true
          caveman: true
    

    完成後重新啟動 OmniRoute(若需要)。

    4. 把前端 / 後端改成單一 OmniRoute URL(2 分鐘)

    無論你原本用什麼 SDKOpenAI, Anthropic, Cursor plugin):

    • baseURL 改成你的 OMNIROUTE_URL
    • model 改成 OmniRoute 裡定義的 id(例如 code-agent

    以 OpenAI SDK 為例:

    import OpenAI from "openai";
    
    const client = new OpenAI({
      baseURL: process.env.OMNIROUTE_URL,
      apiKey: process.env.OMNIROUTE_KEY,
    });
    
    await client.chat.completions.create({
      model: "code-agent",
      messages,
    });
    

    到這一步,你已經:

    • 用一個 Endpoint 串起至少兩家模型
    • 開啟 basic 的 token 壓縮
    • 為之後加上更多 provider / 代理 / 模態預留位置

    適合誰用?

    使用者類型 具體場景
    獨立開發者 Side Project 同時想用 Claude + GPT + 免費模型,又懶得寫一堆整合
    小團隊 / Startups 想 A/B 測試不同供應商,控制成本,還要有 auto-fallback 防止掛點
    AI Agent Builder 需要多代理協作(Code + Doc + Vision),又希望前端只接一個 Endpoint
    教學 / 實驗環境 需要一鍵切換教學用模型、控制學生 token 使用量

    如果你符合其中一項,可以先把 OmniRoute 當成:

    「把所有 AI 模型集中管理的一支 API Gateway」,再視需要逐步開啟壓縮、A2A、多模態。


    OmniRoute 與其他多模型工具比較

    名稱 核心功能 免費方案 適合誰
    OmniRoute 多供應商整合、auto-fallback、RTK/Caveman 壓縮、MCP/A2A、多模態 開源,支援 50+ 免費供應商 想統一管理多家模型、做複雜 Workflow 的開發者
    直接用 OpenAI 單供應商模型 API 有免費試用額度 只用 GPT 系列、需求簡單的專案
    直接用 Anthropic 單供應商 Claude 模型 有免費試用額度 只想專注 Claude Code / Sonnet

    如果你只接一個模型供應商,OmniRoute 可以先當「統一壓縮 + 路由層」;當你的模型越來越多,它就自然變成你的多雲總機。


    🚀 你現在可以做的事

    • 打開 OmniRoute GitHub 專案,依照 README 在本地啟動一個測試伺服器
    • 挑一支現有的 API 呼叫,將 baseURL 改成 OMNIROUTE_URL,並在 routes.yaml 設好對應的 model id
    • 在同一條路由上開啟 RTKCaveman 壓縮,對比啟用前後的 token 使用量與費用差異
  • Claude Code 供應鏈危機:AI 開發者太天真了

    Claude Code 供應鏈危機:AI 開發者太天真了

    📌 本文重點

    • AI coding agent 正在成為新攻擊面
    • 供應鏈攻擊已專門鎖定 AI 開發工具
    • AI 工具必須被當成高風險資安系統管理

    這次 Claude Code 事件真正可怕的地方,不是幾個 npm 套件被下毒,而是 AI coding agent 本身正在變成新的「攻擊面」。如果開發生態繼續只談效率、不談安全,下一個被入侵的,不會只是開發機器,而是整個企業的內部資料與用戶隱私。AI 工具與開發流程,必須被當成高風險資安系統,而不是玩具。


    一場「從 Red Hat 憑證到你的 Claude Code」的蠕蟲式攻擊

    先把時間線拉清楚:

    • 攻擊者先取得一名 Red Hat 員工的 GitHub 憑證,直接往 @redhat-cloud-services 旗下 32 個 npm 套件下手,這些套件週下載量約 11.7 萬次
    • 由於 CI/CD 已與 npm 發布流程自動串接,攻擊者等於「合法地」用 Red Hat 的身份,把惡意程式碼發佈給整個開發者社群——這就是典型的 供應鏈攻擊
    • 惡意程式碼安裝後,並不只藏在 node_modules,而是主動修改你的開發環境
    • 植入 Claude Code 啟動設定
    • 修改 VS Code 專案設定
    • 之後 只要你打開 VS Code 或 Claude Code,惡意程式就會自動執行,
    • 靜默收集機器上的所有憑證(token、SSH key、雲端憑證……)
    • 傳回攻擊者伺服器
    • 更糟的是,就算你卸載 npm 套件,惡意碼仍活在 IDE 設定裡,持續運作
    • 若你試圖「先撤 token 再清 malware」,某些版本還會觸發毀滅性 payload:刪除整個 home 目錄並覆寫,降低復原可能性
    • 幾天後,研究者在 npm 上又發現第二波、更高明的變種,包裝更隱密、具蠕蟲特性,持續透過自動安裝與開發工具擴散。

    💡 關鍵: 一組被盜用的 GitHub 憑證,串起了從 CI/CD 到 IDE、再到 AI 助手設定的整條自動化惡意供應鏈。

    關鍵不是一個 Red Hat 帳號被偷,而是:攻擊鏈一路打穿「憑證 → CI/CD → 套件 → IDE → AI 助手設定」,形成一條完全自動化的惡意供應鏈。

    這條鏈的最後一站,偏偏就是你以為「只是在幫你寫程式」的 Claude Code。


    AI coding agent 追求效率,卻默默放大了供應鏈風險

    這起 Red Hat / Claude Code 事件,和最近 Microsoft 開源套件被植入 credential stealer 的攻擊,實際上指向同一個趨勢:攻擊者已開始專門設計「針對 AI coding agent」的惡意程式。

    在 Microsoft 的案例中:

    • 73 個微軟持有的加簽開源套件被植入進階憑證竊取程式碼。
    • 惡意程式碼會在開發者透過 AI coding agent 開啟這些套件時被觸發——研究者直接點名這是針對 AI agent 的攻擊;AI 會幫你讀檔、跑 script、補依賴,攻擊者只要等 AI「乖乖照做」。
    • 這些套件最初是被 GitHub 自動系統下架,但平台一開始只用「違反服務條款」這種模糊說法,沒有明講「這是惡意攻擊、請假設你已被入侵」,讓不少開發者完全沒有警覺。

    把兩起事件放在一起看,可以看到幾個結構性問題:

    1. AI agent 天然信任依賴與腳本

    AI coding agent 的賣點,是幫你:

    • 自動安裝缺的套件
    • 自動修改設定
    • 自動產生/執行 script

    這看起來是「開發效率神器」,但在攻擊者眼中,這是一台可以遠端操控的自動化執行引擎。惡意套件只要被 AI 讀到、被 agent 視為「為了專案正常運作需要執行的 code」,攻擊就啟動了。

    2. DevSecOps 思維還停留在「人手動操作」時代

    大多數安全流程是為了人設計的:

    • 「請開發者檢查 pull request」
    • 「請手動審視依賴變更」
    • 「請不要執行不明腳本」

    但今天的問題是:AI 會幫你點掉所有這些紅燈。在 Claude Code 事件裡,惡意程式碼躲到 VS Code 與 Claude 設定檔中,只要開啟工作區或啟動 AI 助手,就會自動跑。

    3. 供應鏈攻擊變成「AI 時代的新常態」,不是個案

    • Red Hat / Claude Code:利用 GitHub 憑證 + CI/CD + IDE/AI 設定,形成蠕蟲式擴散。
    • Microsoft 套件:利用 加簽開源套件 + GitHub 生態 + AI coding agent 的自動操作,鎖定開發者憑證。

    它們都不是「某個工程師不小心點錯」這種等級,而是系統性利用 AI 進入開發供應鏈的空窗期

    💡 關鍵: 供應鏈攻擊已從零星事件,演變成專門針對 AI 開發流程設計的「新常態」風險。

    真正的問題是:AI 工具商與生態平台,把自己當成「效率工具提供者」,沒有把自己當成「新一代 DevSecOps 基礎設施」來設計。


    這不是 Prompt Injection 問題,是「Agent 執行權限」問題

    今天的主角已經不是 prompt injection。攻擊者要的,不是讓模型講錯話,而是讓 agent 替他「按下執行鍵」

    MCP(Model Context Protocol)與各種 Agent 框架被廣泛實驗的同時,安全研究者早就示警:

    • 當 AI 代理有「讀檔、寫檔、跑指令、打 API」等多重能力時,它就變成一個新的 高權限執行環境
    • 文章《Red Teaming MCP Servers: 24 Attack Payloads and the Blueprint for Agentic Defense-in-Depth》做了 24 種紅隊測試,證明:
    • 單靠輸入過濾完全不夠
    • 必須從 輸入 → 代理決策 → 執行層 → 系統權限 做多層防禦

    再把這跟機器身份與憑證管理放在一起看:

    • 如《Your Secrets Are Probably Leaking》指出:大多數團隊只強化「使用者登入安全」,卻讓 API key、token、CI 變數、雲端憑證到處亂飛,形成 credential sprawl
    • 在 Claude Code 與 Microsoft 事件中,惡意碼收割的正是這一整片「第二身份平面」:
    • .env 裡的密鑰
    • CI/CD pipeline 的 token
    • Terraform state、K8s manifest 裡的憑證

    當 AI agent 同時掌握「程式碼執行能力」與「存取這些機器身份憑證」,它就成了攻擊者最想控制的跳板。

    現在的主流 AI IDE 插件,多半只談:「我們如何讓你寫程式更快」。
    很少有人認真回答:「這個 agent 在你的機器上,到底能做多可怕的事?誰在監控?誰能審計?誰負責出事時的鑑識?

    💡 關鍵: AI agent 一旦擁有執行權限與憑證存取能力,就等同於新的「高權限使用者」,安全設計必須對齊這個等級。


    開發者與企業現在就該做的事:把 AI 當成高風險資安系統來管理

    這不是「選不選用 Claude Code 或某個特定工具」的問題,而是你要不要承認:AI coding agent 已經是你 DevOps 流程的一級資產,而不是附加小幫手。

    對不同角色,建議也不同——

    1. AI 工具商(OpenAI / Anthropic / 微軟 等)

    • 預設零信任執行模型
    • 插件/Agent 若要寫檔、跑命令、裝套件,應有細粒度權限 prompt,而不是一鍵授權整個專案。
    • 對高風險操作提供 可審計的執行日誌,預設加密留存,方便事後鑑識。
    • 把安全能力產品化,而不是當白皮書宣傳
    • 內建 惡意依賴檢測、憑證泄漏掃描,而不是交給第三方插件救火。
    • 對應 MCP / Agent 生態,提供官方的 安全測試 sandbox(類似 mcp-probe-agent)與紅隊工具。

    2. 生態平台(npm / GitHub / VS Code 市集)

    • 事件揭露要說人話:像這次 GitHub 只說「違反服務條款」是嚴重失職。遭下架的套件,必須清楚標註「已確認惡意,請假設憑證外洩並執行 incident response」。
    • 加強供應鏈風險信號
    • 對於高權限組織(如 Red Hat、Microsoft)發布的套件變更,提供額外的 異常行為檢測與人工審核
    • 在 IDE / CLI 層面,當套件被標記惡意時,主動警示並提供修復腳本,而不是只在網頁上放通知。

    3. 企業開發與安全團隊

    • 把 AI 開發工具納入 DevSecOps 範圍,而不是當個人玩具
    • 使用哪些 AI 插件、可開哪些權限,寫成政策並落地到 IAM / MDM 管理上。
    • 公司內部專案一律使用 企業控管的 AI 開發環境,禁止在個人亂裝的 VS Code 上操作敏感 repo。
    • 整頓「機器身份」與憑證管理
    • .env、CI variables、Terraform state、K8s yaml 裡的 secrets 全面盤點,導入 專業密鑰管理系統(如 Vault、Secrets Manager 等)
    • 對應這次事件,預設所有受影響開發機器的 token 與 key 都已外洩,執行 rotate + log 監控
    • 訓練團隊用「AI 安全威脅模型」思考
    • 每導入一個新 AI 工具,都問三個問題:
      1. 它可以看到哪些 code / 資料?
      2. 它可以對我的環境做什麼?(讀/寫檔、跑指令、改 CI?)
      3. 一旦被接管,最大爆炸半徑是什麼?

    Claude Code 這次暴露的,不是單一產品的缺陷,而是整個產業對「AI 時代的 DevSecOps」普遍缺位。未來幾年,攻擊者會持續把 AI agent、CI/CD、開源套件、機器憑證串成一條條自動化攻擊鏈——而我們能做的,不是祈禱自己不要被點名,而是現在就把 AI 工具當成高風險系統,納入完整的安全設計、監控與治理。
    否則,AI 幫你省下的開發時間,很可能會全部補課在 incident response 上,而且還不一定補得回來。

    🚀 你現在可以做的事

    • 盤點並審視團隊現用的所有 AI 開發工具與 IDE 插件,標記其可存取的程式碼與憑證範圍
    • 在組織內導入或強化密鑰管理系統,將 .env、CI 變數等敏感資訊集中管控並定期輪替
    • 為團隊安排一場「AI + DevSecOps」安全工作坊,針對 AI agent 權限與供應鏈風險建立共同威脅模型
  • Claude Code 動態工作流實戰指南

    Claude Code 動態工作流實戰指南

    📌 本文重點

    • 動態工作流讓 Claude Code 變成能總包整個 repo 的工程助手
    • Opus 4.8 提升程式推理與錯誤自查效率,並提供快速模式省時省錢
    • Ultracode 把大規模 code review 與安全審計變成一個指令可完成

    用一句話講清楚:Claude Code 的「動態工作流」讓你把「重構整個 repo、語言遷移、資安審計」交給一個會自己拆分任務、開數百個子 Agent 平行跑、還會自我驗證結果的代碼工地總包商。


    核心功能:從「聊天寫程式」升級成「工程總包」

    1. 動態工作流:自動拆分、平行執行、自己驗收

    Anthropic 在 Claude Code 中加的 dynamic workflows,關鍵不是「多 Agent」本身,而是:

    • 由模型自己寫協調腳本orchestration scripts
    • 自動把工作拆成數十到數百個子任務
    • 每個子任務對應一個子 Agent 平行跑
    • 結束前先做一輪自我驗證,只把過檢的結果給你

    最典型的實戰案例,是 Bun 作者用它做 Zig→Rust 遷移:

    近 75 萬行代碼、約 11 天完成,測試通過率 99.8%(來源:Reddit 動態工作流介紹

    💡 關鍵: 對接近 75 萬行程式碼的遷移專案來說,11 天達到 99.8% 測試通過率,代表這套動態工作流足以接住大型、原本高風險的重構工程。

    實際會怎麼跑? 以「整個 repo 重構」為例,dynamic workflows 大致會:

    1. 掃描 repo,產生檔案與模組地圖
    2. 規劃任務圖(Task graph):例如先改 domain 層,再跑 API 層,最後是 UI
    3. 平行啟動子 Agent:每個 Agent 負責一組檔案或一類修改(型別調整、logging 統一、錯誤處理強化…)
    4. 在背景自動做 diff、測試、靜態檢查
    5. 聚合結果,過一輪總審查後才丟回給你

    你可以這樣用(行動建議):

    • 想重構:
    • 在 Claude Code(或 API)裡給它:
      • 專案簡介 + 技術棧
      • 現在的痛點(例如:循環依賴、例外亂飛、型別不嚴謹)
      • 你願意接受的改動範圍(例如:可以改 public API?可以拆模組嗎?)
    • 下指令像:「為這個 monorepo 設計一個 2 週內可以完成的重構計畫,用動態工作流分批執行。」

    • 想做資安審計:

    • 給它 repo,說明:框架、使用的雲服務、資料敏感區
    • 指令示例:「用動態工作流做一次安全掃描,重點找:未驗證的輸入、SQL injection 風險、憑證硬編碼、弱 JWT 驗證。」

    2. Opus 4.8:程式推理更穩、錯誤自查率變 4 倍

    根據 Anthropic 官方與社群測試(如 Decoder 報導r/artificial 整理):

    • 程式錯誤檢測能力較 4.7 提升約 4 倍:更容易自己指出「這裡可能 NPE」「這裡 race condition」「這裡忽略錯誤」。
    • 在瀏覽器 / 電腦代理 benchmark(Online-Mind2Web)上,Opus 4.8 優於 GPT-5.5,也就是比較會自己「操作工具」而不是只寫字。
    • 使用者回報的特點:更常誠實承認「沒做完」「這裡有風險」,對長流程開發很重要。

    更關鍵的是新增了「快速模式」(fast mode

    • 2.5 倍速度
    • 成本約是完整模式的 1/3 左右(數字隨官方調整,但量級在這附近,來源:r/ClaudeAI

    💡 關鍵: 在程式錯誤檢測提升約 4 倍的同時,fast mode 還能以約 1/3 成本提供 2.5 倍速度,讓你可以先用低成本掃全 repo,再用完整模式精修關鍵部分。

    怎麼選模式才划算?

    • 用快速模式的情境
    • 寫 template、樣板 code(CRUD、UI 元件鋪排)
    • 大量簡單檔案轉換(例如 config 重排、註解補齊)
    • 先跑一輪粗略掃描(安全 / style / dead code)

    • 改用完整(非快速)模式的情境

    • 棘手 bug 定位(多執行緒、邊界條件)
    • 關鍵底層邏輯(交易撮合、金流、權限系統)
    • 產出要長期維護的設計文件或核心 API 介面

    實作建議:先用快速模式跑全 repo 掃描 → 把它標出的高風險區塊,再交給完整模式精修。


    3. Ultracode:把「大規模 code review」變成一個指令

    Ultracode 是 Claude Code 裡針對程式碼審查的強化工作流(參考 r/ClaudeAI 討論):

    • 你只需要丟一個 diff、Pull Request 或整個子資料夾
    • Ultracode 會在背景開子工作流做:
    • 分檔案審查
    • 風險排序(安全 > 穩定性 > 可維護性)
    • 驗證自己的意見是否一致,再回傳整理過的 review

    實際效果偏向:一個很嚴格、沒情緒的資深工程師,會吐槽你 data2 這種變數名(參考「讓 Claude 審查 Claude」的案例)。

    你可以這樣用(行動建議):

    • 小團隊 / Side project:把 PR 丟給 Ultracode,要求:
    • 「請只標出會導致 bug / 安全問題的變更,逐一解釋原因。」
    • 「另外列一份『可選優化清單』,讓我有時間再慢慢改。」

    • 個人練功:

    • 把自己最近寫的一個模組丟給 Ultracode,問:
      • 「請假裝你是 code reviewer,列出你會擔心的 10 個點。」
      • 把每個問題的建議重構方式具體寫出來,附簡短範例。

    適合誰用?幾種典型場景

    1. 重寫或升級舊系統

    典型痛點:老專案沒測試、沒文件、沒人敢動。

    可以這樣切:

    1. 用 Claude Code 建一份系統地圖
    2. 指令:「為這個 repo 建一份架構圖,包含模組依賴、資料流、外部服務。」
    3. 問它「若想把 A 模組替換成 B 技術棧,請設計一個最小風險的遷移計畫」,讓它給分批 PR 設計。
    4. 啟用動態工作流分批套改(例如先把 logging 換掉,再換 ORM)。

    2. 大規模代碼審計與安全掃描

    結合 dynamic workflows + Ultracode:

    • 全 repo 掃描:
    • 找硬編碼密鑰、弱加密、未驗證輸入
    • 為每類問題產生「修復模板」和自動修正 PR 草案

    • 持續使用方式:

    • 在 CI 加一步,用 Claude API 對每個 PR 跑 Ultracode 審查(可參考 Cloudflare 的 AI code review 實務 思路)。

    3. 多語言遷移(Zig→Rust、Python→TypeScript 等)

    Bun 的 Zig→Rust 遷移是一個極端例子,你可以用同樣思路做「比較小但現實」的版本:

    • Python backend → TypeScript(Express / Nest / tRPC
    • JS 老專案 → TypeScript + stricter ESLint
    • PHP legacy → Laravel / Symfony 新專案

    實作建議:

    1. 先選一個獨立、低風險模組試轉,例如:
    2. 「通知系統」「報表匯出」「第三方 API 包裝」
    3. 指令示例:
    4. 「把這個 Python 資料轉換模組遷移到 TypeScript,目標環境是 Node 20 + TypeScript 5,型別要寫滿。」
    5. 測試穩了,再用動態工作流把相同 pattern 套到其他模組。

    4. 一人公司 / Side Project 的開發流程

    把 Claude Code 當作:

    • 一個幫你拉腳手架、寫樣板、整理測試的 junior dev
    • 再加上一個幫你審 PR、找安全洞的 senior reviewer

    你可以設計一個固定節奏:

    1. 功能草圖 → 讓 Claude 產生目錄結構與初版 code
    2. 自己補關鍵業務邏輯
    3. 用 Ultracode 做一次 code review + 測試覆蓋率建議
    4. 每個 sprint 最後,用動態工作流掃一次「錯誤處理 / logging / metrics 是否一致」

    怎麼開始:從免費聊天到整 repo 動態工作流

    1. 最低門檻:claude.ai 免費方案能做到什麼?

    入口:https://claude.ai

    目前免費帳號:

    • 可以使用新版模型(通常是 Sonnet / 部分場景下可用 Opus fast
    • 適合:
    • 單檔 / 小模組的重構、bug debug
    • 讓它幫你讀一份錯誤訊息、log、或小型程式片段

    實際用法建議:

    1. 先貼一個單檔(或小於幾百行的檔案),請它:
    2. 「幫我找 bug / 重構 / 改風格」
    3. 再貼一個小 repo 的 zip / 關鍵檔案集合,問:
    4. 「請幫我畫出這個專案的架構圖與資料流程。」

    當你開始需要:

    • 長時間、多輪的代碼工作
    • 跑動態工作流、Ultracode、Opus 4.8 完整能力

    就會需要升級到 Claude Pro / Max / Team 或企業方案(具體功能以官方頁面為準)。


    2. 在終端安裝開源版 anthropics/claude-code

    GitHub:https://github.com/anthropics/claude-code

    基本安裝流程(概念):

    # 1. 安裝
    pip install claude-code  # 或依照 repo README 指示
    
    # 2. 設定 API Key(以官方 Claude API 為例)
    export ANTHROPIC_API_KEY="你的 API Key"
    
    # 3. 在專案根目錄啟動
    cd 你的專案目錄
    claude-code
    

    然後你就可以在終端跟它對話:

    > 幫我找出 src 下面所有可能的 race condition,並建議重構方式。
    > 幫我寫一個腳本,批次把 React class component 改成 function + hooks。
    

    動態工作流、Ultracode 會隨著你帳號權限與版本逐步釋出;用開源終端版的好處是:更容易和你自己的工具鏈(git、CI、測試框架)接軌。


    3. 透過 API / Bedrock / Vertex AI 調用動態工作流

    如果你要把這些能力塞進自己的內部平台或 CI:

    • Claude API:https://www.anthropic.com/api
    • Amazon Bedrock:在 Bedrock 控制台選擇 Claude Opus / Claude Code 相關 model
    • Google Vertex AI:在 Model Garden 選擇 Claude / Claude Code

    動態工作流目前通常以「研究預覽」方式提供給 Max / Team / Enterprise,透過:

    • 在請求中指定對應的 model / capability 標誌
    • 或使用官方提供的 workflow endpoint / 模板(需看當下文件)

    工程整合建議:

    • 在 CI 裡新增一個步驟:
    • 將本次 PR 的 patch / diff 打包
    • 呼叫 Ultracode / dynamic workflows 做審查
    • 把審查結果回寫成 bot comment

    4. 一個「從小到大」的漸進式實驗腳本

    你可以照這個順序,逐步加深依賴,而不會一開始就把整個 repo 丟給它:

    1. 單檔小任務claude.ai 免費即可)
    2. 目標:讓它幫你修一個 bug / 重構一個 utility
    3. 檢查點:看它產出的 code 是否可讀、是否真的有幫你省時間。

    4. 小 repo(1–3 個模組) + Claude Code 終端版

    5. 目標:讓它在終端幫你跑測試、改幾個檔案、整理 commit
    6. 指令示例:「設計一組 PR,把這個小專案升級到最新框架版本。」

    7. 整個代碼庫 + 動態工作流 / Ultracode

    8. 目標:一次性做一個「人力不想做」的大工程:
      • 全 repo 錯誤處理統一
      • 安全掃描 + 自動修復草案
      • 語言 / 框架遷移的一個大模組
    9. 檢查點:
      • 先在 staging / feature branch
      • 用你自己的測試 + Claude 的自我驗證雙重把關

    照這個步驟,你會很快感受到:Claude Code 已經不只是「幫你補幾行程式碼」,而是可以接下「這個季度我們一直不想動的那一坨技術債」,而你只需要負責決策方向與最後拍板。

    🚀 你現在可以做的事

    • claude.ai 用免費帳號先丟一個單檔,實測一次 bug 修正或小重構流程
    • 在自己的專案根目錄安裝並啟動 anthropics/claude-code,讓它對一個小模組跑動態工作流或 Ultracode
    • 在現有 CI 流程中,挑一條非關鍵分支試接 Claude API,讓 Ultracode 對 PR 自動產生第一次 code review 評語
  • 用 Claude.md 做一個不會爛掉的長跑代理

    用 Claude.md 做一個不會爛掉的長跑代理

    📌 本文重點

    • CLAUDE.md 嚴格約束代理行為,避免長跑爛掉
    • 核心原則是「行動+證據」,禁止空談與無限迴圈
    • 透過上下文壓力自查與簡潔憲法,讓代理長時間穩定運作

    用一份不到 100 行的 CLAUDE.md,就能讓你的 Claude 代理連跑幾小時都不會開始胡言亂語、卡住不動或重複修同一個 bug。

    參考原作者在 Reddit 的分享:
    – 長跑 Claude Code 代理的設定檔開源文:https://www.reddit.com/r/ClaudeAI/comments/1tjy3sk/i_opensourced_the_operating_file_that_keeps_my/
    – 100 條個人 AI 代理實戰心得:https://www.reddit.com/r/ClaudeAI/comments/1thi6nh/100_tips_tricks_for_building_your_own_personal_ai/


    核心功能:這份 CLAUDE.md 到底做了什麼?

    1. 只允許「行動與證據」,禁止長篇空談

    長跑代理會爛掉,通常是這三個症狀:

    1. 開始寫「我將會…」「接下來我要…」但不真的執行工具
    2. 一直說「應該已修好」但沒有測試結果
    3. 花很多篇幅重複解釋計畫,實際變更很少

    CLAUDE.md 的核心規則,就是把這些行為全部關掉:

    • 輸出只允許三種型態
    • 已完成的動作(例如:檔案修改、指令執行、API 呼叫)
    • 具體問題 / 需要決策的提問
    • 極短的進度摘要
    • 聲稱「完成」前要附證據:如測試輸出、報表截圖路徑、命令列結果

    💡 關鍵: 將輸出限制為「行動+證據」,能大幅減少長篇空談與無效迴圈,讓長跑代理真正持續推進任務

    你可以做的事
    – 在你的專案根目錄放一份 CLAUDE.md,明確寫出:
    – 「不要描述你要做什麼,只要直接做並回報結果」
    – 「任何『應該已修好』前,必須貼出測試輸出」

    2. 內建「上下文壓力」自我檢查

    長跑幾小時後,對話上下文會變超長,Claude 開始:

    • 忘記早期需求
    • 無法把握目前專案狀態
    • 回答變模糊或重覆

    原作者在 CLAUDE.md 裡加了一條關鍵原則:

    代理要定期自查上下文壓力:發現自己搞不清狀態,就主動整理摘要、刪除多餘上下文、或要求人類幫它重設現狀。

    具體做法通常包含:

    • 每完成一個階段任務,就輸出一個「短摘要 + 關鍵檔案清單」
    • 長度過大時,優先保留:
    • 最新的決策
    • 目前版本的檔案 / 結構
    • 尚未完成的待辦

    你可以做的事
    – 在 CLAUDE.md 寫明:
    – 「當你感覺自己不確定目前狀態時,先輸出一份 10 行內的現況摘要,再繼續工作。」
    – 「如需要,可要求人類提供『目前唯一真實狀態』說明,並用這份說明覆蓋舊假設。」

    3. 任務憲法:不靠「一長串 Prompt」,靠幾條簡潔原則

    多數人用代理會寫一大段 prompt,結果 Claude 讀不完、也記不住。CLAUDE.md 的思路是:

    • 用 10–20 條簡短規則,定義這個代理的「憲法」
    • 每條都要能對應到實際行為約束,例如:
    • 「若有工具可以做某事,優先用工具,不要手寫模擬輸出」
    • 「對同一錯誤連續嘗試 3 次仍失敗,就停下來請人類決策,不要無限迴圈」

    💡 關鍵: 把 10–20 條行為規則寫成固定「憲法」,比灌輸一大段單次 prompt 更能在長跑中維持穩定行為

    參考 Reddit 另一篇實戰文:https://www.reddit.com/r/ClaudeAI/comments/1thi6nh/100_tips_tricks_for_building_your_own_personal_ai/

    你可以做的事
    – 先列出你的代理最常「爛掉」的 3 個行為,逐條寫進 CLAUDE.md,用「禁止 / 應改為」的格式:
    – 「禁止:連續兩次貼出幾乎相同的錯誤訊息。應改為:第二次失敗時,整理你已試過的方法,請人類選下一步。」


    適合誰用:3 個實戰場景

    1. 單機腳本型代理:排程任務、批次資料處理

    你有這些需求時,很適合:

    • 每晚跑一次報表轉檔腳本
    • 每週整理一批 CSV / Excel 檔,把欄位標準化
    • 定期爬某個網站的資料、存到本地或資料庫

    做法:

    1. 用 Claude Code 或本地腳本,讓代理可以:
    2. 讀寫特定資料夾
    3. 執行 shell 指令(或以 PowerShell / bash 包一層)
    4. CLAUDE.md 放在專案根目錄,寫清楚:
    5. 允許改動哪些檔案
    6. 批次任務完成的判定方式(例如輸出檔案數量、檔名規則)
    7. 用排程工具觸發:
    8. macOS / Linux:cron 或 systemd timer
    9. Windows:排程工作排程器 + 命令列啟動代理腳本

    2. 長連線開發代理:Claude Code / VS Code / Cursor 類工作流

    如果你常用 Claude 來寫程式、改大型專案,長時間開著一個 session,很容易出現:

    • 忘記三小時前的設計決定
    • 重複修同一支檔案
    • 一直在講解架構,但實際 commit 很少

    這時 CLAUDE.md 非常好用:

    實際操作:

    1. 在 VS Code 專案根目錄新增 CLAUDE.md,內容包含:
    2. 專案簡述
    3. 允許的工具(例如:跑測試、執行 npm testpytest 等)
    4. 「行動 > 敘述」與「證據 > 猜測」等規則
    5. 在 Claude Code / Cursor 內重新開啟專案,確保代理會讀到這個檔案
    6. 開發時明確下指令:
    7. 「請遵守 CLAUDE.md,連續工作直到完成以下任務…」
    8. 「每完成一個子任務,產出最多 5 行的進度摘要」

    進階:也可以搭配多代理流程,參考:https://www.reddit.com/r/ClaudeAI/comments/1thi16y/how_i_built_a_9agent_team_where_my_agents/

    3. 自建小型自動化服務:抓報表、清理資料

    你想做一些「半自動」小工具,例如:

    • 每週自動登入內部系統下載報表
    • 讀取資料夾裡的新檔案,做資料清洗 / 格式標準化
    • 根據最新資料,產出簡短摘要寄 Email

    可用的整合方式:

    • MCP / shell 指令
    • 透過 Model Context Protocol 暴露一組工具給 Claude,例如:
      • list_files, read_file, run_command
    • 規則寫進 CLAUDE.md

      • 「處理檔案時,一律用工具列出檔名,不要從記憶猜」
    • Power Automate

    • 由 Power Automate 排程觸發 HTTP / CLI,呼叫你的 Claude 代理後端
    • 回傳的結果可再串 Outlook 寄信、寫入 Excel、更新 SharePoint

    你可以做的事
    – 先選一個最小自動化任務,例如「每週整理銷售報表」,只把這一個流程寫入 CLAUDE.md,確保跑穩,再慢慢加其他任務。


    10 分鐘上手:從 fork 到跑起你自己的代理

    以下是一條「10 分鐘內能動起來」的最短路徑,你可以依你使用的工具微調。

    Step 1:fork 開源專案

    1. 前往 Reddit 原文查看作者提供的 repo(通常會在貼文內):https://www.reddit.com/r/ClaudeAI/comments/1tjy3sk/i_opensourced_the_operating_file_that_keeps_my/
    2. 在 GitHub 上 fork 到自己的帳號
    3. 本地 git clone 下來

    Step 2:複製 CLAUDE.md 到你的專案

    1. 打開作者的 CLAUDE.md,通讀一遍規則
    2. 複製到你自己的專案根目錄
    3. 只做三種修改:
    4. 把專案描述改成你的任務(例如:財報整理、數據清洗、網站爬蟲)
    5. 調整允許使用的工具(例如是否允許 rm / 刪檔)
    6. 加上 2–3 條你最在意的「不准爛掉」條款

    💡 關鍵: 只動專案描述、工具白名單與 2–3 條關鍵禁令,能在 10 分鐘內把通用 CLAUDE.md 變成專屬代理憲法

    Step 3:綁定你常用的工作環境

    依你用的平台選一條:

    • Claude Code / VS Code / Cursor
    • 在這個專案資料夾內開啟編輯器
    • 確認工具(跑測試、shell、檔案操作)已啟用
    • 對 Claude 說:「請讀 CLAUDE.md 並照裡面的規則長時間工作」

    • MCP + shell 指令

    • 建立一個 MCP server,提供 run_shell, read_file, write_file 等工具
    • CLAUDE.md 明確寫出「所有系統操作一律經由 MCP 工具」
    • 用你偏好的前端(例如自寫 CLI、簡單 Web)呼叫 Claude

    • Power Automate / 其他自動化

    • 建一個小型後端服務(可用 Python FastAPI / Node.js)包住 Claude API
    • 後端每次呼叫 Claude 時,都把專案檔案+CLAUDE.md 帶入 context
    • 用 Power Automate 定期觸發這個 API

    Step 4:跑一個「能觀察的」任務,調整規則

    1. 選一個 30–60 分鐘的任務給代理連續跑(例如重構某一個資料夾的程式碼)
    2. 觀察:
    3. 什麼時候開始廢話變多?
    4. 哪種情況會卡在同一個錯誤?
    5. 直接把這些「失敗模式」寫回 CLAUDE.md 變成新條款

    重複兩三輪,你會得到一份專屬於你工作流、而且真的能「長跑不爛」的代理憲法。


    小結:先管好行為,再管工具

    長跑 AI 代理很容易越跑越爛,通常問題不在模型,而在缺乏清楚的行為規則。透過一份設計良好的 CLAUDE.md

    • 把輸出限制在「行動+證據」
    • 讓代理主動監控上下文壓力
    • 用幾條簡單原則當作「憲法」

    你可以在單機腳本、開發環境、多工具自動化裡,得到一個穩定得多的 Claude 代理。

    建議從今天開始:先為你最常用的一個專案寫一份 CLAUDE.md,跑一個完整任務,看看它能連續跑多久還保持專注。那會是你感受到「長跑代理真的可用」的第一步。

    🚀 你現在可以做的事

    • 在一個常用專案根目錄新建 CLAUDE.md,寫入「行動+證據」與上下文自查規則後實際跑一次長任務
    • 從 Reddit 原文 fork 作者 repo,閱讀並複製其中 CLAUDE.md,依你的工作流做 2–3 處客製調整
    • 列出你代理常見的 3 個「爛掉模式」,逐條轉寫成禁止條款加進 CLAUDE.md,並在下一次工作中觀察效果
  • 本地 AI 代理寫程式,也要有 AI 幫你審 PR

    本地 AI 代理寫程式,也要有 AI 幫你審 PR

    📌 本文重點

    • AI 寫程式一定要搭配 AI 審查流程
    • adamsreview 提供多代理、分階段 PR 審查
    • React Doctor 專治 AI 產出的 React 小雷
    • 組合成「AI 寫 + AI 審 + 人類決策」完整 workflow

    當你開始大量用 AI 寫程式時,真正的風險不在「寫不出來」,而在「錯誤、壞味道、性能坑」靜靜被合進主幹,所以現在比起寫程式,更需要好的 AI 審查與補救工具。

    下面用兩個最近爆紅的開源工具 adamsreviewReact Doctor,帶你組一條「AI 寫程式 + AI 審 PR/修 bug」的實戰流程。


    核心功能:兩個工具,一條龍

    工具總覽

    名稱 核心功能 免費方案 適合誰
    adamsreview 多代理分工的 PR 審查,深度檢查邏輯與安全 完全開源 用 GitHub / GitLab、有 PR 流程的後端或全端團隊
    React Doctor 自動檢測、修正 AI 產出的 React 程式碼 完全開源 用 Claude/ChatGPT 產生 React/TSX 的前端團隊

    接下來分別講清楚:

    1. adamsreview 怎麼把 PR 審查拆給多個 AI 代理,使錯誤更難漏掉。
    2. React Doctor 怎麼專門處理「AI 產生 React code 一堆小雷」這件事。
    3. 最後用這兩個工具,組裝一條可直接抄走的開發 workflow。

    一、adamsreview:多代理分工的嚴謹 PR 審查

    核心功能

    adamsreview 是一個專為 Claude Code 設計的插件(slash commands),重點是:

    1. 多階段、多代理 PR 審查
    2. 不是一次跑完,而是分成好幾個階段:整體變更 → 文件/測試 → 安全/性能 → 修正建議。
    3. 每個階段可啟動平行子代理(sub-agents),例如一個看 API 變更,一個看錯誤處理。
    4. 審查狀態存在本地 JSON 裡,可以在不同命令之間保持上下文。

    5. 更少漏網 bug、更少誤報

    作者在 HN 上提到,它在實戰中比:

    • Claude 內建 /review/ultrareview
    • CodeRabbit、Greptile

    更常抓到真實 bug,同時少講廢話。

    實際上常被抓到的包括:

    • 新增邏輯沒有對錯誤狀況做邊界檢查
    • 漏更新單元測試或 fixture
    • API 變更與文件不一致
    • 可預期的性能問題(例如重複查詢、無 cache)

    💡 關鍵: 多階段、多代理的拆解方式,讓 adamsreview 比一般單次 /review 更容易抓到真正 bug,且減少冗長誤報。

    1. 直接嵌入現有 PR 工作流
    2. 提供像 /review/codex-review/fix 等命令,照著你原本用 Claude Code 的習慣延伸。
    3. 可搭配 Codex CLI 與 PR bot,在 PR 上直接留下 AI 審查留言。
    4. 狀態存在檔案裡,方便在 CI 或本地反覆跑不同階段的檢查。

    適合誰用

    幾個具體場景:

    • 有正式 PR 流程的後端/平台團隊

    例如:用本地 LLM 或 Claude 幫你生成 service / handler,透過 adamsreview 做一輪「AI 審 PR」,再交給人類最後確認。

    • 資深工程師很忙的小團隊

    初階工程師用 AI 寫功能,先交給 adamsreview 初審,減少 reviewer 花時間抓基礎錯誤。

    • 正在導入 AI coding,但怕品質失控的團隊

    讓「AI 生成程式碼」必須經過「AI 多代理審查」,有規則可循,而不是全憑 reviewer 心情。

    怎麼開始:最小安裝步驟

    原始專案:https://github.com/adamjgmiller/adamsreview

    以下是一個「最短路徑」,讓你在現有 GitHub PR 流程中接上 adamsreview:

    1. 準備環境

    2. 需要:

      • 有權使用 Claude Code 並可安裝插件(通常是付費方案)。
      • 本機有 git + Node.js(或作者指定的執行環境)。
    3. 安裝與設定

    在你的開發機或開發容器中:

    bash
    git clone https://github.com/adamjgmiller/adamsreview
    cd adamsreview
    # 若有提供安裝腳本
    npm install # 或 pnpm/yarn

    • 依照 repo README 設定環境變數(通常包含 Claude/Codex API key)。

    • 在 Claude Code 中載入插件

    • 打開 Claude Code(或支援的 IDE 插件)。

    • 依 README 說明匯入 slash commands。
    • 你會看到新增的命令,例如:/review/fix

    • 在 CI / PR 流程中接上(GitHub Actions 範例)

    .github/workflows/pr-review.yml 增加一個簡化版 workflow:

    “`yaml
    name: AI PR Review

    on:
    pull_request:
    types: [opened, synchronize]

    jobs:
    ai-review:
    runs-on: ubuntu-latest

       steps:
         - name: Checkout
           uses: actions/checkout@v4
    
         - name: Setup Node
           uses: actions/setup-node@v4
           with:
             node-version: '20'
    
         - name: Install adamsreview
           run: |
             git clone https://github.com/adamjgmiller/adamsreview
             cd adamsreview && npm install
    
         - name: Run adamsreview
           env:
             CLAUDE_API_KEY: ${{ secrets.CLAUDE_API_KEY }}
           run: |
             cd adamsreview
             # 依專案提供的 CLI 指令
             npm run review -- ../
    

    “`

    這樣每次有人開 PR,就會自動觸發 AI 審查並在 PR 留言(實際指令依 repo 說明調整)。


    二、React Doctor:專治 AI 產出的 React 小雷

    官方 repo:https://github.com/millionco/react-doctor

    它在 README 的第一句就是:「Your agent writes bad React. This catches it」。重點就是:AI 幫你產生的 React/TSX 常常「能跑,但不安心」。

    核心功能

    1. 針對 React/TSX 的靜態檢測與修復

    2. 專門用來掃描 React 專案(JSX/TSX),找到常見的壞味道與 bug。

    3. 例如:
      • useEffect 中漏依賴
      • 不必要的 re-render
      • 不穩定的 key
      • props 型別不一致
    4. 部分問題可以自動產生修正 patch,直接套用。

    5. 和 AI 代理配合運作

    它假設你已經在用 AI(Claude、ChatGPT、Cursor 等)生成元件或 hook

    • 先讓 AI 產出 code
    • commit 前跑 React Doctor:快速找出「AI style 錯誤」
    • 必要時讓 React Doctor 幫你修補。

    • TypeScript 友善

    • 專案本身用 TypeScript 寫,也善用現有型別資訊。

    • 如果你本來就用 TS + React,導入成本很低,直接把現有 tsconfig、型別檔當基礎。

    💡 關鍵: React Doctor 把「AI 寫得能跑」提升到「依 React/TS 最佳實務可維護」,特別適合大量由 AI 生成的 UI 程式碼。

    適合誰用

    幾個典型情境:

    • 用 Claude/ChatGPT 幫你生 UI 元件

    例如設計稿轉 React Component:

    • AI 負責「寫得出來」。
    • React Doctor 負責「寫得對、好維護」。

    • React 新手 + AI 輔助開發

    新手可能看不出 AI 產生的 code 有哪些壞習慣,React Doctor 可以當成「自動 code review 老師」。

    • 已有大型 TypeScript + React 專案

    部分模組開始用 AI 重構或新增功能,用 React Doctor 當 Safety Net,避免 AI 把舊 code 改壞。

    怎麼開始:在 TS 專案快速啟用

    假設你有一個現成的 React + TypeScript 專案:

    1. 安裝 React Doctor

    專案目錄下:

    bash
    npm install react-doctor --save-dev
    # 或
    pnpm add -D react-doctor

    1. 新增設定檔(若有需要)

    參考 repo 中的樣板(實際檔名跟範例以官方 README 為準):

    bash
    npx react-doctor init

    這通常會產生一個設定檔,例如 react-doctor.config.ts,你可以指定:

    • 要掃描的資料夾(例如 src
    • 要啟用的規則

    • package.json 加上腳本

    json
    {
    "scripts": {
    "doctor": "react-doctor check src",
    "doctor:fix": "react-doctor fix src"
    }
    }

    1. 在 Git hooks / CI 中啟用

    2. 透過 Huskylint-staged,在 pre-commitpre-push 跑:

      bash
      npx react-doctor check src

    3. 或在 GitHub Actions 加一個 job:

      yaml
      - name: React Doctor
      run: npm run doctor

    這樣每次有人把 AI 產的 React code 推上來,就會被 React Doctor 先掃過一次。


    三、組裝一條「AI coding + AI code review/repair」工作流

    最後用文字幫你拼成一個可以直接採用的流程,從「AI 寫 code」到「AI 審查 + 修正」:

    1. 開發階段:AI 寫程式

    2. 使用本地 LLM、Claude Code 或 ChatGPT:

      • 讓 AI 產出後端 handlerservice、React 元件。
      • 人類工程師只負責寫 prompt + 調整架構。
    3. 前端部分:React Doctor 抓小雷

    4. 每次 AI 生成或修改 React/TSX 檔案:

      • 本地跑 npm run doctor 檢查。
      • 對於可自動修正的問題,跑 npm run doctor:fix
    5. 把這個步驟固定在:

      • pre-commit hook
      • 或 VS Code Task / npm script
    6. 提交 PR:adamsreview 做多階段 PR 審查

    7. 開 PR 後,GitHub Actions 觸發 adamsreview

      • 階段 1:總覽差異,找出風險區域。
      • 階段 2:針對測試、錯誤處理、安全性做專門檢查。
      • 階段 3:產生具體修正建議或 patch
    8. PR 上自動留下 AI comment,方便 reviewer 快速聚焦真正問題。

    9. 人類最後把關

    10. Reviewer 看:

      • React Doctor 的報告(前端)
      • adamsreview 的 PR 評論(後端/全端)
    11. 決定哪些建議要採用,哪些視情況忽略。
    12. 合併前至少確保:
      • 所有必跑的 React Doctor / adamsreview 任務都綠燈。

    💡 關鍵: 重點不是「全自動合併」,而是用 AI 把最耗時、最容易忽略的細節掃一遍,再由人類做最後決策。

    這條工作流的重點不是「全自動」,而是:

    • 把 AI 寫程式變成可控的流程,而不是隨意貼 paste code。
    • 把最耗時、最容易忽略的細節(React 小雷、邊界條件、安全性)交給專門的 AI 工具來抓。

    實作上,你可以先選一個小模組試行:

    • 前端導入 React Doctor。
    • 後端/全端導入 adamsreview。
    • 兩週後檢查:PR 審查時間、有 bug 的 PR 比例是否下降,再決定要不要擴大到整個 repo。

    用 AI 寫程式已經變成常態,下一步是在你的團隊裡,建立一套 「AI 寫 + AI 審 + 人類決策」的固定流程,讓速度與品質可以同時兼顧。

    🚀 你現在可以做的事

    • 打開 GitHub,分別把 adamsreviewReact Doctor repo 加到你的星標與閱讀清單
    • 在一個側專案或小模組上,先實驗接上 React Doctornpm run doctor / doctor:fix 腳本
    • 在現有 repo 新增一個簡單 GitHub Actions workflow,試跑一次 adamsreview 的 AI PR 審查流程
  • Claude Code:把你的一人開發組變成小團隊

    Claude Code:把你的一人開發組變成小團隊

    📌 本文重點

    • Claude Code 扛「從 issue 到 PR」整條開發流程
    • 百萬 token 上下文,能做跨檔案大規模重構
    • 與 issue 管理工具整合,連動任務與代碼
    • 把它當工作流 Agent,而不是單純寫程式助手

    Claude Code 要解決的問題很單純:不要只幫你「寫幾行程式」,而是幫你「從 issue 到 PR 到 release note」整條開發流程一起扛掉。

    Claude Code 官方頁面|參考閱讀:Claude Code Isn’t a Coding Tool. It’s Your Team’s New Workflow Engine.


    核心功能:不只是會寫程式的 Chatbot

    1. 百萬上下文 + 跨檔案重構

    Claude Code 的關鍵不是「會寫程式」,而是一次看得懂整個專案:

    💡 關鍵: 百萬 token 上下文讓 Claude Code 能一次理解整個大型 repo,支援跨模組重構與設計級別調整。

    • 支援百萬 token 上下文,實務上可以:
    • 一次讀完整個 monorepo 的關鍵目錄
    • 同時理解前後端、infra、文件
    • 實際能做的事:
    • 統一命名規則、API 介面:
      • 指令範例:

        「請在整個 apps/webpackages/api 裡,把 user profile 統一改成 UserProfile 類型,並更新相關型別定義與呼叫點。」

    • 大規模重構:改 routing、auth、logging 邏輯,而不是只改單一檔案

    行動建議:
    – 第一次用時,直接把「專案關鍵資料夾」拖進 Claude Code,請它輸出:
    – 架構圖
    – 主要模組關聯
    – 技術債/風險清單

    2. 代碼審查 + 任務追蹤

    Claude Code 把「code reviewer + 小 PM」包在一起用:

    • 代碼審查:
    • 貼 PR diff 或讓它自己產生 patch,請它從幾個角度審查:
      • 可讀性
      • 安全性
      • 可測試性
    • 指令範例:
      > 「這個 PR 幫我做 code review,重點看:1) SQL 注入風險 2) log 裡有沒有可能洩漏個資。」
    • 任務追蹤:
    • 你丟一串 TODO、散落在註解、issue 裡,它可以:
      • 幫你整理成任務列表
      • 按複雜度排序
      • 標註依賴關係

    行動建議:
    – 把你專案裡的 // TODO 集中給 Claude Code,看它幫你:
    – 分成「1 小時內可完成」「需要討論設計」兩類
    – 生成對應 Issue 描述(等下一小節接管理工具)

    3. 與 Linear / Jira 等管理工具整合

    重點不是「Claude Code 會寫 issue」,而是它能 自己對應任務 ↔ 代碼

    • 典型流程:
    • 從 Linear / Jira 拉某個 issue 描述
    • Claude Code:
      • 解析需求
      • 找出相關檔案
      • 建議實作方案
      • 產生 patch / commit 訊息
    • 回寫到對應 issue(附 PR link、測試說明)
    • 這讓你可以用一句話驅動整個流程:
    • 「幫我處理 Linear 上 FE-1234 這張 ticket,照 acceptance criteria 寫完測試再開 PR。」

    行動建議:
    – 把團隊目前的 issue 模板、PR 模板貼給 Claude Code,請它:
    – 照樣學習格式
    – 以後所有「產生 PR 描述 / 測試計畫」都統一風格


    適合誰用?三種典型場景

    1. 單人開發者:讓 Claude Code 當你的 PM + Reviewer

    你一個人接案或做 side project,沒人幫你看架構、沒人幫你 review。Claude Code 可以扮演:

    • 專案 PM:
    • 幫你把「腦中需求」變成 roadmap:
      • 「這個月要完成:會員系統 v1、簡單報表」
    • 轉成 task list:db schema、API、UI、測試
    • code reviewer:
    • 每次 commit 前,請它檢查:
      • 功能風險
      • 重複邏輯
      • 可抽共用函式的地方

    具體做法:
    – 建立一個持續使用的 Claude Code 專案,放:
    – README、需求文件、todo list
    – 一份「我寫程式的偏好」(語言、框架、lint 風格)
    – 每天開工前一句:

    「根據目前 repo 與 TODO,幫我排今天 3 個最值得做的 task,控制在 3 小時內。」

    2. 小團隊:讓它維護 issue、測試、技術文件

    對 3–10 人團隊,Claude Code 好用在「把大家都懶得做的事」接走:

    💡 關鍵: 對 3–10 人的小團隊,把 issue 清理、測試補齊與文件生成交給 Claude Code,可顯著減少非核心開發時間。

    • Issue 維護:
    • 每週讓 Claude Code:
      • 清理過期 / 重複 issue
      • 把描述不清的 issue 重新改寫
    • 測試補齊:
    • 對於已存在的功能程式碼:
      • 要求它列出「目前缺哪些層級的測試」
      • 自動產生 test skeleton(unit / integration)
    • 技術文件:
    • 從 commit / PR 摘要產出:
      • 變更日誌
      • ADR(Architecture Decision Record)草稿

    具體做法:
    – 選一個模組先試點,例如「會員系統」:
    1. 把現有 PR、issue 歷史餵給 Claude Code
    2. 要它輸出一份「會員系統說明文件 v0」
    3. 團隊一起 review,修改後當作標準模板

    3. 大批量重構 / 遷移專案:讓它拆成可執行任務

    當你在做:
    – 從 JS → TS
    – 從 REST → GraphQL / gRPC
    – 從單體 → 模組化

    這時 Claude Code 的長上下文 + 任務拆解很實用:

    • 一次吃下:
    • 主要模組目錄
    • 現有測試
    • 部署設定
    • 輸出:
    • 分階段遷移計畫
    • 每階段具體改哪些檔、會壞掉什麼

    具體做法:
    – 問 Claude Code:

    「假設我要在 4 週內把 services/auth 從 JS 遷移到 TS,請在不影響現在線上環境的前提下,拆成 4 週計畫,每週列出可以單獨合併的 PR 列表。」


    怎麼開始:從註冊到跑完一條完整 workflow

    步驟 1:註冊與開啟 Claude Code

    1. claude.ai 註冊帳號(可用 Google / Email)。
    2. 登入後,點右上角 Code 進入 Claude Code 介面。
    3. 建議準備:
    4. GitHub repo 連結
    5. 專案 README、需求文件

    步驟 2:連接 GitHub / 專案庫

    目前常見兩種用法:

    • 直接拖拉檔案夾:
    • 小專案、side project 最快
    • 接 GitHub:
    • 依照介面授權,把指定 repo 掛上去
    • 在對話裡直接叫它打開某個檔案路徑,再請它操作

    行動建議:
    – 先選一個風險較低的 repo(side project 或工具庫)當實驗場,不要一開始就丟公司核心系統。

    步驟 3:示範一條具體 workflow

    以「從 TODO issue → 產生 PR → 自動寫 release note」為例:

    1. 整理 TODO
      在 Claude Code 裡貼上:
    2. 一個 Linear / Jira issue 內容,或
    3. 散落在程式裡的 TODO 註解

    請它:

    「幫我把這些 TODO 整理成一個明確的 issue 描述,列出 acceptance criteria。」

    1. 讓它實作並產生 PR
      接著說:

      「根據這個 issue,在目前 repo 裡完成實作,請:1)列出要改的檔案 2)給我完整 patch 3)附上測試建議。」

    你可以:
    – 先人工 review patch
    – 把 patch 套進本地分支
    – 提交 GitHub PR

    1. 自動寫 release note
      PR 開好後,把:
    2. PR diff / 連結
    3. 關聯 issue 連結

    貼給 Claude Code,指令:

    「幫我寫一段 release note,給非工程同事看的,限制 150 字內,列出 2-3 個 bullet point。」

    若你有一份既有 release note 模板,也一起貼上,請它照模板格式輸出。

    做完一次,你就有一條可重複的最小 workflow,之後只要換 issue 就能重跑。


    進階玩法:把 Claude Code 變成「小開發團隊」的一員

    1. 和輕量模型分工,省錢跑批量任務

    很多工作不需要 Claude 這種大模型,例如:
    – 大量 JSON 重新排版
    – 批次分類檔案
    – 從文字裡抽欄位

    參考這篇 Reddit 實作:Most of my Claude usage was on work that didn’t need Claude

    做法:
    – 另外架一個便宜的小模型 API(例如 DeepSeek V4 Flash
    – 在 Claude Code 這邊只放一個規則:
    – 「遇到格式轉換、摘要這種機械工作,一律呼叫那個外部工具,不要自己算」

    💡 關鍵: 把機械式任務交給便宜模型,可將大量批次任務成本壓到原本的約 1/10。

    效果:
    – 大量批次任務成本可壓到原本的 1/10 甚至更低

    2. 搭配 Relay 這類插件,讓多個 Claude Code 會話互通

    如果你常同時開:
    – 一個 session 管 backend
    – 一個 session 管 frontend
    – 另一個管 infra / CI

    可以照這篇的做法:built a plugin so my parallel Claude Code sessions can message each other

    概念是:
    – 用像 Relay 這種小工具,讓不同 Claude Code 視窗可以互相發訊息
    – 例如:
    – 前端 session 問:「User object 現在長怎樣?」
    – 後端 session 直接回,結果推回前端視窗顯示

    實際好處:
    – 你不用在多個對話間複製貼上
    – 等於有好幾個專職「子工程師」在各自 repo 幫你跑任務,互相同步狀態


    小結:把 Claude Code 視為「工作流 Agent」,不是「更聰明的 Copilot」

    使用 Claude Code 的關鍵心態是:
    – 不要只問「幫我寫這個 function」
    – 要改成「幫我把這個 issue 從需求 → 設計 → 實作 → 測試 → 文件,一次帶完」

    先從一條最小 workflow 開始做起(例如本文的 TODO → PR → release note),再逐步接上 issue 管理、測試、自動文件,Claude Code 才會真正變成你開發流程的一部分,而不是多一個可以聊天的 IDE 工具。

    🚀 你現在可以做的事

    • 選一個風險低的 repo,丟進 Claude Code,請它產出架構圖與技術債清單
    • 把現有的 issue / PR 模板貼給 Claude Code,讓它學會之後統一產生描述與測試計畫
    • 實做一次「TODO → issue → PR → release note」完整 workflow,確認能在團隊內重複使用
  • 用 HyperResearch 把 Claude 變身研究員

    用 HyperResearch 把 Claude 變身研究員

    📌 本文重點

    • HyperResearch 把 Claude Code 變成可複製的研究流程
    • 內建搜尋、查證、對抗審閱,降低 AI 瞎掰風險
    • 每次研究都累積成可搜尋知識庫,方便長期追蹤

    只要安裝一個開源專案 HyperResearch,就能把原本偏「寫程式」取向的 Claude Code,變成會自動幫你查資料、查證、寫報告的「可複製研究流程」。

    專案連結:原作者 Reddit 介紹帖(含 GitHub 連結):https://www.reddit.com/r/ClaudeAI/comments/1sz9ib0/converting_claude_code_into_the_most_intelligent/


    HyperResearch 是什麼?一句話定位

    HyperResearch 是一個基於 Claude Code 的開源研究 Agent 框架:

    • 內建 16 步驟研究管線(搜尋 → 篩選 → 結構化 → 查證 → 對抗審閱 → 整理報告)
    • 每一次對話都會 累積成可搜尋的知識庫,方便長期追蹤同一個主題
    • 直接吃你現有的 Claude Code 訂閱 / API Key,不用再另外付費給其他研究 Agent

    💡 關鍵: 透過 16 步驟固定流程與知識庫累積,HyperResearch 把一次性聊天升級成可重複、可追蹤的研究管線。

    如果你曾經遇過:

    • 叫 ChatGPT / Claude 查資料,結果:
    • 一次性回答,看完就散了
    • 沒有完整引用來源,很難信任
    • 隔天再問,同一主題要從頭講起

    HyperResearch 的核心價值,就是把「隨機聊天」變成一條 可重複、可追蹤、可查證的研究流水線


    核心功能:把研究拆成可以信任的步驟

    1. 自動搜尋與整理:幫你做完「初篩 + 結構化」

    HyperResearch 不是只給一段總結,而是走完一套預先設計好的研究流程(約 16 個步驟,細節實作在專案程式裡):

    • 自動搜尋:針對你的問題,拆成多個子題目,上網搜尋相關資料
    • 初步過濾:排除明顯垃圾來源(內容農場、廣告頁)
    • 結構化整理:把找到的內容轉成具體欄位,例如「來源、主張、數據、時間、可信度」

    你可以怎麼用?

    • 把原本「自己 Google 30 分鐘」的事情,改成:
    • 對 HyperResearch 下指令:
      • 「請幫我整理 2024 之後出現的主要開源 LLM 架構,列出模型名稱、上下文長度、授權條款與 GitHub 連結。」
    • 等它產出第一輪整理,再人工挑選你想深挖的部分

    這讓你把時間從「掃網頁」轉到「判斷這些資訊要怎麼用」。


    2. 內建事實查核與對抗審閱:降低瞎掰風險

    HyperResearch 的流程裡,有兩個關鍵設計:

    1. 事實查核(fact-checking)
    2. 重新比對模型產出的主張與原始來源內容
    3. 對可能有爭議的數據,主動再搜尋次要來源交叉比對

    4. 對抗性審閱(adversarial review)

    5. 讓另一個「挑錯模式」的 agent 嘗試反駁論點
    6. 尋找忽略的反例、反向證據

    實際操作上,你可以:

    • 要求它:
    • 「列出你這份報告中,最可能錯的三個地方,並附上你重新查證後的來源連結。」
    • 把這段對抗性審閱,當成你自己 review 報告的 checklist

    這對 投資決策、技術選型、競品分析 特別重要:你不只看到「一個漂亮的結論」,還能快速看到「這結論可能哪裡有問題」。

    💡 關鍵: 透過事實查核與對抗審閱設計,HyperResearch 迫使模型主動暴露不確定性,讓你更容易信任或質疑結論。


    3. 持久知識庫:一次研究,長期可用

    HyperResearch 每一輪研究,都會把:

    • 主題與子問題
    • 整理後的來源資料
    • 中間推理過程(為什麼舍棄某些證據)
    • 最後的結論與報告

    存進一個 可搜尋、可持久化的知識庫(具體實作依專案版本而定,通常以檔案 / 資料庫形式存在)。

    實際用途:

    • 之後你可以問:
    • 「幫我回顧上次那份關於『開源 LLM 商業模式』的研究,更新 2025 Q1 之後的新變化。」
    • 「從我過去所有 LLM 相關研究裡,整理一份『開源模型商業化常見風險』的清單。」

    也就是說,HyperResearch 不是只做「一次性報告」,而是在幫你累積一個 主題型研究檔案庫,越用越值錢。


    適合誰用?三種典型場景

    1. 工程師:調研新 LLM 技術與工具

    典型任務:

    「幫我整理 2024 之後主流的推理引擎(如 vLLM、SGLang 等),比較它們在吞吐量、部署難度、社群活躍度上的差異,附 GitHub 連結與基準測試來源。」

    實際好處:

    • 幫你粗篩一輪技術選項
    • 先列出「值得 Prototype 的 2–3 個方案」,再自己動手測

    💡 關鍵: 把原本要自己比對多個技術方案的工作,收斂成 2–3 個最值得實測的選項,大幅節省試錯時間。

    可以馬上做:

    • 把你目前在考慮的幾個 LLM 技術(伺服架構、量化工具、Serving 框架)列成清單,丟給 HyperResearch 做第一輪比較,再根據結果決定 Week-end 要測什麼。

    2. 個人投資者:公司 / 產業研究

    典型任務:

    「針對 NVIDIA、AMD、Intel,整理 2023 Q4 之後在 AI 加速卡市場的策略差異:產品線、定價、主要客戶、近期財報重點與風險因子,所有數據需附來源連結。」

    好處:

    • 幫你先把公開資訊「拉平、對齊格式」
    • 你只需要專心在:這些資訊對你的投資策略代表什麼

    可以馬上做:

    • 選一檔你持有的股票,讓 HyperResearch 幫你產出一份「最近 6 個月的事件與風險總整理」,當成你之後加減碼時的參考底稿。

    3. PM / 創業者:競品與市場分析

    典型任務:

    「請整理三家主打企業級 LLM Agent 平台的公司(例如 OpenAI workspace agents、Google Deep Research Max、其他新創),比較功能、價位、目標客戶與商業模式,並說明各自的優勢與可能風險。」

    好處:

    • 省掉反覆搜尋官網、看部落格、抄價格表的時間
    • 快速得到可放進 Pitch Deck / 產品規劃的「競品對照表」

    可以馬上做:

    • 把你正在做的產品,交代給 HyperResearch:
    • 「我在做 X(簡述產品與客群),請幫我找三個最接近的國外競品,整理功能矩陣與收費方式。」

    怎麼開始:從安裝到跑出第一份研究

    注意:以下為通用步驟說明,實際指令與設定請以 GitHub 專案 README 為準。

    1. 取得原始碼(本地 or 雲端)

    1. 前往作者貼文中的 GitHub 連結:https://www.reddit.com/r/ClaudeAI/comments/1sz9ib0/converting_claude_code_into_the_most_intelligent/
    2. 在 GitHub 頁面:
    3. 若要本地跑:
      • git clone <repo-url>
      • 進入目錄後,確認是否提供 Docker / Python 安裝腳本
    4. 若要雲端:
      • 看 README 是否提供一鍵部署到 Render / Railway / Fly.io or 自架 VPS 的教學

    行動建議:

    • 若你是工程師,建議:本地 Docker 安裝,方便自訂與看程式碼
    • 若你只想快速用:選擇作者提供的雲端部署方案(如果有),照步驟填環境變數即可

    2. 接上自己的 Claude Code Key

    HyperResearch 是「Claude Code skill harness」,也就是:

    • 你需要準備:
    • Claude Code 相關 API Key 或 Workspace Token(依專案說明)
    • 在專案中通常會有一個 .env.example 或設定檔,流程大致如下:
    • 複製一份:cp .env.example .env
    • 填入:
      • ANTHROPIC_API_KEY=你的金鑰
      • 其他像 MODEL_NAMEBASE_URL 依你實際使用方案調整

    行動建議:

    • 進入 Claude 帳號後台,確認你有權限呼叫對應的 Claude Code 模型(例如具瀏覽 / tool use 能力的版本),再來啟動 HyperResearch。

    3. 用實用提示詞啟動第一輪研究

    啟動服務後(通常是 Web UI 或 CLI),你可以直接丟以下幾個模板:

    模板 1:技術調研

    「你是一位資深 LLM 工程師,使用 HyperResearch 的完整研究流程來回答。請針對『{主題}』進行調研,至少涵蓋:
    1. 目前主要方案與代表專案
    2. 各方案的優缺點與適用場景
    3. 開源程度 / 授權條款
    4. 實務部署時常見的坑與最佳實務
    全程需自動搜尋最新資料,列出來源網址,並在最後列出你認為仍待驗證的部分。」

    模板 2:產業 / 公司研究

    「你是一位基本面導向的研究員。請用 HyperResearch 的 16 步驟研究管線,完整調查『{公司或產業}』:
    – 商業模式與主要產品
    – 收入結構與成長動能
    – 核心競爭優勢與風險
    – 最近 12 個月的重要事件
    所有關鍵數據需附來源連結與時間,對重要但證據不足的結論請標記為『需進一步查證』。」

    模板 3:競品分析

    「你是一位 B2B SaaS 產品經理。請為『{產品類型}』找出 3–5 個國內外競品,並產出一份競品分析表,至少包含:
    – 功能列表與差異
    – 收費模式與價格區間
    – 目標客戶與市場定位
    – 優勢與明顯短板
    請使用 HyperResearch 的對抗性審閱步驟,刻意找出你對每家競品認知可能有誤的地方,並附上重新查證的來源。」


    4. 一晚就能完成的實戰任務(建議你現在就試)

    任務:

    「請幫我整理三家 LLM 公司的商業模式優劣,附來源連結。至少涵蓋:OpenAI、Anthropic、Google(Gemini)。說明它們的核心產品線、收費方式、目標客戶,以及各自的風險與機會。請使用完整的 HyperResearch 流程,並在最後給出一份表格總結與你的信心評估。」

    操作方式:

    1. 把上面整段貼進 HyperResearch
    2. 等它跑完後:
    3. 先看引用來源是不是你信任的媒體 / 官方文件
    4. 再看對抗性審閱段落,確認它有沒有誠實暴露不確定處
    5. 最後,把報告中你最在意的 2–3 個主張,自己再 Google 一次,感受一下:這條研究流水線幫你省下多少時間。

    當你跑完這個任務,其實就等於:

    • 搭起了自己的「AI 研究部門」
    • 有了一套可複製的研究流程:之後換主題、丟新問題就能重複使用

    你不需要再從「怎麼問 AI」開始煩惱,只要專心想:

    下一個值得丟給 HyperResearch 深挖的問題,是什麼?


    🚀 你現在可以做的事

    • 前往 Reddit 貼文找到 GitHub 專案,閱讀 README 並決定要本地或雲端部署 HyperResearch
    • 準備好自己的 ANTHROPIC_API_KEY,依照專案說明完成 .env 設定並啟動服務
    • 選一個你近期最在意的技術或產業問題,把文中的研究提示詞貼進 HyperResearch,跑出第一份完整報告
  • 用 Claude Code routines 把修 Bug 和審 PR 自動化

    用 Claude Code routines 把修 Bug 和審 PR 自動化

    📌 本文重點

    • 用程式碼定義 routine,讓 Claude 自動跑開發流程
    • 支援排程、API、GitHub webhook 等多種觸發方式
    • 適合 CI、PR 初審、重構、錯誤偵測等自動化場景
    • 建議先從「只讀建議」開始,逐步放權到自動修正

    一句話先說清楚:Claude Code routines 就是「用程式碼把 Claude 變成你的自動化開發助理」,幫你在雲端自動跑修 Bug、審 PR、開 issue 等重複工作。

    官方文件:https://code.claude.com/docs/en/routines


    核心功能:用程式碼定義多步驟任務

    routines 的概念很簡單:你先用程式碼把「要怎麼用 Claude 做事」寫成一個流程,之後就讓它自動在雲端重複跑。

    典型一個 routine 可以長這樣:

    1. 拉特定 repo(支援 GitHub 等連接器)
    2. 用 Claude 分析程式碼變更或錯誤
    3. 修改程式碼、產生 patch 或直接開 PR
    4. 把結果回報到 GitHub、Slack 或你的 CI 系統

    根據官方說明和社群分享(Reddit):

    • 多步驟流程可程式化:你不是丟一句 prompt 就結束,而是用程式碼描述整個 pipeline,例如:

    ts
    // 偽程式碼示意:定義一個 routine
    const routine = defineRoutine({
    name: 'lint-and-suggest',
    repo: 'github://my-org/my-repo',
    steps: [
    cloneRepo(),
    runESLint(),
    askClaudeForFixes(),
    commentOnPullRequest(),
    ],
    })

    • 三種觸發方式(都在雲端跑,電腦可關機):
    • 固定排程:例如每天凌晨跑一次重構建議
    • API 呼叫:每個 routine 會有一個 endpoint,你可以從自家服務打 API 觸發
    • GitHub webhook:例如「新 PR 建立時就讓 routine 自動跑審查」

    💡 關鍵: routines 把「一次性的 prompt」變成「可重複觸發的程式化流程」,而且全部在雲端執行,不綁你的電腦在線。

    你可以馬上做的事:

    • 想一個你最常重複做的開發流程(例如「每次 PR 都要跑 lint + 給建議」),把它拆成 3–5 個步驟,列成清單,等等在「怎麼開始」直接照這份清單寫成 routine。

    適合誰用:4 個典型場景

    1. CI 流程自動跑靜態分析 + 修正建議

    場景:你現在的 CI 只會跑 lint / type check,但錯誤一堆,只丟紅燈不給解法。

    用 routines 可以:

    • 在 CI 裡呼叫一個 API routine
    • routine 拉 PR 的 diff,跑 ESLint / mypy 等工具
    • 把錯誤丟給 Claude,讓它:
    • 用自然語言解釋錯誤來源
    • 產生建議修正(甚至 patch)
    • 把結果直接貼回 PR comment

    可執行動作:

    • 選一個語言(例如 TypeScript),從你現有 CI 裡加一個步驟:呼叫 routines API,把 PR 編號、branch、diff 傳給它,讓 routines 回傳「修正建議文字」或「patch 檔」。

    2. PR 自動初審:先讓 AI 篩一輪

    場景:團隊 PR 多,但 Reviewer 不想浪費時間在命名、註解、重複邏輯這種「低階問題」。

    routine 可以幫你:

    • 透過 GitHub webhook,在 PR 開啟時觸發
    • 讀取 diff + 相關檔案
    • 按你定義的規則檢查:
    • 是否有測試
    • 是否破壞既有 API
    • 命名 / 註解 / logging 是否符合約定
    • 自動在 PR 下面留一串初步 review comment

    可執行動作:

    • 先在文件裡列出你希望「PR 初審」檢查的 checklist(3–7 項就好),之後在 routine 的 prompt 中直接貼入這份 checklist,讓 AI 依此審查。

    3. 例行重構 / 格式化:排程交給 AI 擬方案

    場景:技術債知道很多,但沒空系統性整理。

    排程 routine 可以:

    • 每週固定拉主分支
    • 掃特定目錄(例如 /legacy/**
    • 讓 Claude:
    • 找出重複程式碼、過長 function、潛在性能瓶頸
    • 產出「重構提案」文件,列出建議與風險
    • 適度產生小 patch(例如只做格式、抽小 function)

    可執行動作:

    • 挑一個最頭痛的模組,設定一個每週 routine,讓 AI 每週只做一件事:產出一份 markdown 報告 docs/refactor-suggestions.md,你每週開會時直接打開看。

    4. Crash 時自動開 issue + 初步定位

    場景:線上服務 crash,Log 一堆,沒人第一時間看。

    你可以:

    • 在監控系統(如 Datadog、Sentry、自家 APM)裡,當發生特定錯誤時,呼叫 routines API
    • routine 取得:錯誤訊息、stack trace、關聯 log
    • 讓 Claude:
    • 用固定模版在 GitHub / Jira 開 issue
    • 附上「可能原因、優先查看檔案、建議排查步驟」

    可執行動作:

    • 把你目前手動開 issue 的模版貼出來,照樣套到 routine:把欄位(背景、重現步驟、log、可能原因)寫進 prompt,讓 AI 自動填。

    進階玩法:多代理 + DevOps 工具鏈串接

    多代理平行工作:一個負責測試、一個負責安全

    Anthropic 在桌面版 Claude Code 已經支援多代理平行工作(Reddit 範例),在 routines 概念上,你可以照抄這個思路:

    • routine A:專門寫測試
    • 拉 PR diff
    • 找出新增 / 修改的 function
    • 為這些 function 產測試檔 / 測試 case
    • routine B:專門做安全檢查
    • 用「安全檢查 prompt」掃過相同 diff
    • 找 SQL injection、硬編 API key、不安全的反序列化等

    你在 CI / webhook 流程裡:

    • 對同一個 PR 同時觸發 routine A 和 B
    • 兩邊結果都留言回 PR,Reviewer 一次看完

    可執行動作:

    • 先從「拆成兩個 routine」開始:複製一份 PR 初審 routine,一份改成只談測試、一份改成只談安全。兩個端點都掛在同一個 GitHub webhook 上平行觸發。

    💡 關鍵: 把不同責任拆成多個 routine 平行跑,比讓一個超大 prompt 包山包海更穩定、也更好維護。


    和 GitHub Actions / 自家 CI 組合

    根據官方說明,每個 routine 都有自己的 API endpoint,你可以:

    • 在 GitHub Actions 新增一個 step:

    yaml
    - name: Call Claude routine
    run: |
    curl -X POST "$ROUTINE_ENDPOINT" \
    -H "Authorization: Bearer $ROUTINE_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{"pr_number": "${{ github.event.pull_request.number }}"}'

    • 在自家 CI(GitLab CI、Jenkins 等)同樣用 curl / http client 呼叫

    可執行動作:

    • 挑一個已存在、每次都必跑的 workflow(例如 ci.yml 中的 lint job),在最後加上一個 step 呼叫 routines,把 log 或 diff 丟給它,先從「只產出建議、不寫檔」開始。

    怎麼開始:從一個「最小可用」 routine 起步

    1. 在哪裡開啟 Claude Code routines?

    前提:需要 Claude 付費帳號(根據 官方公告)。

    步驟概念(介面可能會隨時間微調):

    1. 登入 https://code.claude.com
    2. 在側邊欄找到 Routines 或類似入口
    3. Create routineNew routine
    4. 選擇:
    5. 要連接的 repo(GitHub / 本地鏡像等)
    6. 要用的 connector(例如 Slack、GitHub)
    7. routine 的觸發方式(排程 / API / GitHub webhook)

    可執行動作:

    • 現在就登入 Claude Code,看你的帳號是否已開 routines,確認你公司 repo 是否能被安全地接入(先選一個 side project 測試)。

    2. 寫一個「最小可用」 lint & 建議 routine

    目標:對指定 repo 做 lint,請 Claude 用自然語言給建議,不動任何程式碼。

    流程示意(概念層級):

    1. 新建 routine:ts-lint-advisor
    2. 設定:
    3. Repo:github://your-org/your-repo
    4. 觸發:API(先手動呼叫)
    5. 在 routine 腳本中:
    6. Step 1:git clone 對應 branch
    7. Step 2:跑 pnpm lintnpm run lint,把輸出存成文字
    8. Step 3:呼叫 Claude,把 lint log + 相關檔案片段丟給它,prompt 約略:

      你是一位 TypeScript 專案維護者。根據以下 ESLint 輸出,請:
      1. 依錯誤類型分組
      2. 解釋造成這些錯誤的程式風格 / 設計問題
      3. 提出 3–5 條優先修正建議(包含具體檔案與規則)

    9. 回傳結果:只輸出 markdown 報告,不修改 repo

    可執行動作:

    • 先做一版「只讀不寫」的 lint 報告 routine,確定你喜歡它的輸出風格,再考慮讓 routine 產 patch 或自動發 PR。

    💡 關鍵: 先用「只讀報告」驗證 routine 的品質與風格,比直接讓它改碼、開 PR 安全得多。


    3. 設定 GitHub webhook:新 PR 自動觸發

    當你有一個穩定的 PR 初審 routine 之後,可以這樣接 GitHub:

    1. 在 routines 介面確認此 routine 的 API endpoint
    2. 到 GitHub 專案 Settings → Webhooks
    3. Payload URL:貼上 routines endpoint
    4. Content type:application/json
    5. Which events:勾選「Pull requests」
    6. 在 routine 的程式裡解析 GitHub webhook payload:
    7. 取得 pull_request.numberhead.refbase.ref
    8. 用這些資訊去抓 diff + 檔案內容

    可執行動作:

    • 先對「一個測試 repo」開 webhook,不要直接上 production monorepo;等確認 routine 不會亂刷 comment、沒權限問題,再複製設定到正式專案。

    風險提示與 Best Practices

    1. 權限控制:不要讓 Agent 直接推到 main

    routines 能改程式碼,也能開 PR。建議:

    • 對 routines 用的 GitHub Token:
    • 禁止直接 push 到 main / master
    • 只給「開 PR」和「留言」的權限
    • 在 Org Policy 中明定:AI 開的 PR 一律需要人審核才能合併

    可執行動作:

    • 立刻確認你準備給 routines 用的 GitHub PAT / App 權限,把 push to protected branches 關掉。

    2. 改動記錄與審計:每一個 AI 動作都要有跡可循

    為了避免「不知道是哪個 routine 改了什麼」:

    • 統一規範 AI 開 PR 的 branch 命名,例如:ai/routine-name/feature-x
    • PR 描述固定包含:
    • 使用的 routine 名稱 & version
    • 執行時間、輸入參數(例如針對哪個 issue / PR)
    • 可以在 routine 程式裡主動把自己的輸出寫入一個 log 檔或 S3 / DB,供日後查詢。

    可執行動作:

    • 寫一個簡單規範:所有 routines 在 PR 描述最上方都要加一段固定訊息,例如:[Generated by routine: pr-initial-review v0.3],方便日後搜尋、回溯。

    3. 慢慢放權:先從「建議」再到「自動修改」

    導入策略可以分三層:

    1. 只讀模式:只產報告 / 建議,不動任何檔案
    2. Patch 模式:產生 patch 檔、開 PR,但不自動合併
    3. 半自動修正:對低風險項目(格式化、註解)允許自動合併,高風險項目仍需人工

    可執行動作:

    • 先列出「允許 AI 自動處理」與「必須人工審核」的改動類型(例如:格式化、註解 vs. 核心業務邏輯、資料庫 schema),在 routine 的 prompt 裡明寫清楚。

    小結:從一個 routine 開始,把最煩的事交給 Claude

    你可以把 Claude Code routines 當成「可編程的 AI Bot 平台」:

    • 把你每天重複做的開發流程拆成步驟
    • 用程式碼和 prompt 變成 routine
    • 用排程、API 或 GitHub webhook 觸發

    最實際的下一步

    1. 選一個最討厭但規則清楚的工作(例如 PR 初步檢查命名和註解)。
    2. 在 Claude Code 裡建一個 routine,先只產出文字建議。
    3. 跑一週,觀察輸出品質,再決定要不要進一步讓它產 patch、開 PR。

    從一個小 routine 開始,你就能感受到「用程式碼把 Claude 變成你的自動化開發助理」的威力。

    🚀 你現在可以做的事

    • 打開一個 side project repo,列出 3–5 步驟的「最煩例行工作」,照文中流程設計第一個 routine
    • 在 CI 或 GitHub Actions 中加上一個「只讀建議」的 routines 呼叫 step,觀察一週效果
    • 為 routines 設計權限與審計規範(Token 權限、branch 命名、PR 描述格式),再逐步放權到 patch / 開 PR