標籤: 開源工具

  • 本地 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 審查流程
  • 用 Sim 管一整隊 AI 員工

    用 Sim 管一整隊 AI 員工

    📌 本文重點

    • Sim 幫你管理一整隊多 Agent AI
    • 用 TypeScript 定義角色與完整工作流
    • 支援多家 LLM 與外部 API 工具
    • 先從一條固定流程開始導入

    Sim 要解決的問題很單純:你不想再手動 copy / paste 提示詞,而是讓一整隊 AI 员工自己分工、排程、回報進度

    專案連結:https://github.com/simstudioai/sim


    Sim 是什麼?一句話定位

    如果把 Claude、GPT 看成「單一員工」,Sim 就是幫你管理一整支 AI 團隊的中控台

    • 不提供自己的模型
    • 專門用來定義多個 Agent 角色researcherwriterreviewer…)
    • 負責任務分派、狀態管理、排程
    • 幫你接上各家 LLM 與外部 API / 工具

    你可以把它想成「用 TypeScript 寫的一個 Agent 作業系統」。


    核心功能:用 TypeScript 排好一條完整工作線

    1. 在一個專案裡定義多個 Agent 角色

    Sim 的基礎就是:所有 Agent 都是 TypeScript 物件,你可以清楚寫出每個角色的職責與能力。

    最小範例(簡化版):

    // agents/researcher.ts
    import { defineAgent } from "sim";
    
    export const researcher = defineAgent({
      name: "researcher",
      model: "gpt-4.1",
      instructions: "負責查找資料,整理重點,用 bullet points 回覆。",
    });
    
    // agents/writer.ts
    export const writer = defineAgent({
      name: "writer",
      model: "claude-3-5-sonnet",
      instructions: "根據研究重點,寫成條理清楚的文章草稿。",
    });
    
    // agents/reviewer.ts
    export const reviewer = defineAgent({
      name: "reviewer",
      model: "gpt-4o",
      instructions: "檢查文章結構、錯字與邏輯,提出修改建議。",
    });
    

    你可以採取的行動:

    • 先從兩個角色開始(例如 researcher + writer),不要一開始就弄 5 個 Agent
    • 把你平常給 ChatGPT 的系統提示,搬進 instructions

    💡 關鍵: 所有 Agent 以 TypeScript 物件定義,讓職責、模型與提示詞都可版本控制與共用。

    2. 中央排程、任務分派與狀態管理

    有了多個 Agent,接下來是:誰先做、做完交給誰、每一步狀態記錄在哪?

    Sim 提供「任務 orchestrator」,你可以用工作流的方式描述整條流程:

    // workflows/contentPipeline.ts
    import { defineWorkflow } from "sim";
    import { researcher, writer, reviewer } from "../agents";
    
    export const contentPipeline = defineWorkflow({
      name: "content-pipeline",
      steps: [
        {
          agent: researcher,
          input: (task) => `請針對主題:${task.topic} 搜集 5 個重點`,
          saveAs: "researchNotes",
        },
        {
          agent: writer,
          input: (ctx) => ctx.researchNotes,
          saveAs: "draft",
        },
        {
          agent: reviewer,
          input: (ctx) => ctx.draft,
          saveAs: "reviewedDraft",
        },
      ],
    });
    

    這段程式直接做到:

    • 定義固定步驟順序researchwritereview
    • 每一步產出的結果存進 context(researchNotes / draft
    • 後面 Agent 直接讀 context,不用你再 copy / paste

    你可以採取的行動:

    • 先用一條同步工作流(一次跑完)熟悉 API
    • 等熟悉後再考慮加排程(例如每天 9 點自動跑一次報表)

    💡 關鍵: 透過 workflow 把多步驟流程寫死在程式中,避免人工在多個對話間來回 copy / paste。

    3. 接現有 LLM 與外部 API / 工具

    Sim 本身不訓練模型,而是非常直接地:

    • 支援 OpenAI / Anthropic / Mistral 等主流 LLM
    • 可設定不同 Agent 用不同模型(便宜模型做抓資料,貴模型做審稿)
    • 提供工具介面讓 Agent 呼叫外部 API

    範例:設定不同 Agent 用不同 provider:

    // config/models.ts
    export const models = {
      cheap: { provider: "openai", model: "gpt-4.1-mini" },
      strong: { provider: "anthropic", model: "claude-3-5-sonnet" },
    };
    
    // agents/reportBot.ts
    import { defineAgent } from "sim";
    import { models } from "../config/models";
    
    export const reportBot = defineAgent({
      name: "report-bot",
      model: models.cheap,
      tools: ["fetchSalesAPI", "generateCSV"],
    });
    

    你可以採取的行動:

    • 先只用一個 provider(例如 OpenAIAnthropic),確保 key 正常
    • 把現有內部 API 包成簡單 function(例如 fetchIssues()),讓 Agent 直接呼叫

    延伸閱讀:關於「模型只是基礎,缺的是中間這層 Agent / Workflow」的觀念,可以看這篇:
    From Models to Agents: The Missing Layer Between AI and Real Problems
    https://pub.towardsai.net/from-models-to-agents-the-missing-layer-between-ai-and-real-problems-8b08498780bd


    適合誰用?三個具體場景

    1. 內容生產流水線:多步驟寫作

    典型流程:

    1. researcher:收集資料、整理架構
    2. writer:產生初稿
    3. editor / reviewer:針對品牌語氣、錯字、結構調整

    用 Sim,你可以:

    • 把這條線寫成一支 workflow
    • 每天丟一批題目進去,由 AI 團隊自動輸出草稿
    • 人類只負責最後一層審稿

    行動建議:

    • 先挑一種固定格式內容(例如每週電子報)導入,不要從最複雜的長文開始

    💡 關鍵: 把「固定格式內容」交給多 Agent 流水線,可穩定產出草稿,讓人類專注在高價值審稿。

    2. 程式碼維護:issue triage → patch → review

    典型流程:

    1. triage Agent:閱讀 issue / log,分類並估工
    2. patch Agent:嘗試產生修補碼
    3. reviewer Agent:檢查 patch 是否合理

    這個工作流很適合用 Sim:

    • triage Agent 先過一遍 backlog,把 issue 打標籤
    • patch Agent 先產生 PR 草稿
    • reviewer Agent 給出建議,最後再交給人類工程師合併

    行動建議:

    • 先從「只產出 patch 草稿,不自動 merge」開始,上線風險較低

    3. 資料處理 / 報表自動化

    場景:

    • 每天從內部系統拉數據
    • 清洗 / 合併
    • 生成自然語言報表,發到 Slack / Email

    用 Sim 可以:

    1. data-fetcher Agent:呼叫 API 把原始資料抓回來
    2. transformer Agent:整理成標準格式
    3. reporter Agent:寫出「本日營收摘要」「異常提醒」

    行動建議:

    • 從一份你現在已經在做的固定報表開始,把現有流程翻成 workflow

    怎麼開始:最小 Demo 三步走

    下面是一條「10 分鐘內跑起來」的路線,假設你有基本 Node / TypeScript 基礎。

    步驟 1:拉專案 + 安裝

    git clone https://github.com/simstudioai/sim
    cd sim
    pnpm install # 或 npm install / yarn
    

    (建議用 pnpm,與官方 repo 一致。)

    步驟 2:設定 LLM Key

    1. 建一個 .env 或使用 repo 提供的環境變數範本
    2. 至少填一個 provider:
    OPENAI_API_KEY=你的key
    # 或
    ANTHROPIC_API_KEY=你的key
    
    1. config 檔裡確認預設 model 指向你有 key 的 provider。

    步驟 3:啟動一個簡單 workflow

    1. examples/ 目錄中選一個最小示例(通常會有 content pipeline / hello-world workflow)
    2. 執行:
    pnpm run dev
    # 或 repo 內標註的 demo 指令,例如:
    pnpm run demo:content
    
    1. 到終端機或簡單 web UI 中,輸入一個主題,例如:
    {
      "topic": "2025 年 AI 多 Agent 平台現況"
    }
    

    你應該會看到:

    • researcher 的查資料結果
    • writer 的初稿
    • reviewer 的修改建議

    行動建議:

    • 先改一下 instructions,讓它用你的品牌語氣寫,感受一次「只改提示就換整隊 AI 風格」的效果

    跟現有工具銜接:Routing、MCP、部署注意事項

    與 Routing 工具(如 Followloop)搭配

    Sim 專注在「多 Agent 工作流內部的協作」,而像 Followloop 這類工具更像是:

    • 負責不同入口的請求路由(例如:客服問答 → FAQ Agent;技術問題 → Dev Agent)
    • 決定「這個請求要送到哪條 Sim workflow」

    實際做法:

    • Followloop 端:根據使用者請求分類,決定要呼叫哪個 Sim API endpoint
    • Sim 端:把每條 workflow 對外暴露成 HTTP endpoint
    名稱 核心功能 免費方案 適合誰
    Sim 多 Agent 工作流編排與執行 開源、可自架 想打造 AI 團隊的人
    Followloop 請求路由與入口流量分配 視官方方案而定 有多入口流量的產品

    與 MCP 工具共用

    現在很多工具透過 MCPModel Context Protocol)暴露能力,例如:

    • 檔案系統存取
    • 資料庫查詢
    • 內部 API 代理

    你可以:

    • 在 Sim 的 Agent 定義裡,把 MCP 工具包裝成 tool
    • 讓 Agent 在 workflow 中直接呼叫 MCP 工具

    好處是:

    • 你不用重寫工具,Sim 只負責編排誰在什麼時候用哪個工具

    部署:Vercel 或自家伺服器

    Sim 是 TypeScript 專案,所以部署邏輯跟一般 Node / Next app 相近。

    部署到 Vercel 時注意:

    • 把各家 LLM 的 API key 設成 Vercel environment variables
    • workflow 若有排程,需要配合 Vercel cron / Edge function 或外部 scheduler
    • 注意 Vercel 的執行時間限制,長任務可能要改為 background job

    部署在自家伺服器時注意:


    一句話收尾:先把你的一條「固定流程」交給 Sim

    不要一口氣把所有工作丟給多 Agent 系統,先挑一條你每天都在重複的流程(例如每週電子報、bug triage、固定報表),在 Sim 裡寫成 workflow,跑通一次,就能感受到「管理一整隊 AI 員工」的差別。

    🚀 你現在可以做的事

    • 到 GitHub 把 sim 專案 git clone 下來,跑一次官方 examples workflow
    • 把你現行的一條固定流程畫成步驟圖,翻成第一個 Sim workflow
    • 把現有給 ChatGPT 的系統提示整理進 instructions,測試同一 workflow 換不同提示的效果
  • 用 Vercel Skills 把 AI 變成你的命令列工具箱

    用 Vercel Skills 把 AI 變成你的命令列工具箱

    📌 本文重點

    • Vercel Skills 把 AI Agent 打包成可安裝的 CLI 工具
    • 一行 npx skills 就能體驗預設技能並接到自動化流程
    • 每個 skill 可在不同專案與 CI/CD 中重複使用與串聯
    • 適合開發者、行銷、DevOps 做文字與流程自動化

    用一句話說清楚:Vercel Skills 讓你用一行 npx skills,把一整包 AI Agent 當成可安裝的命令列工具,快速接到你的開發與自動化流程裡。

    專案連結:vercel-labs/skills on GitHub


    核心功能:把「AI 能力」做成可重用的 Skill 模組

    1. 一行指令啟動預設技能:npx skills

    想先感受效果,不想碰程式碼,可以直接這樣做:

    npx skills@latest
    

    執行後會:

    • 問你要使用哪些預設技能(例如:文件總結、PR 說明、自動整理 issue 等)
    • 在終端機互動式詢問你輸入內容或指定檔案
    • 把 AI 結果輸出在終端機,必要時也會幫你生成檔案

    你可以把它當成「AI 強化版 CLI 工具集」,用一次就知道哪些任務適合被 AI 自動化。

    💡 關鍵: 一行 npx skills@latest 就能體驗整套預設 AI 技能,是評估哪些工作可以自動化的最快方式。


    2. 每個 skill 就是一個可複用的 Agent 模組

    在 Skills 的設計裡:

    • 一個 skill = 一件具體可自動化的工作
    • 例如:summarize-doc(總結文件)、pr-description(產生 PR 描述)、rewrite-copy(改寫文案)
    • 實作上:一個 skill 就是一個 TypeScript/Node.js 模組,負責:
    • 接收輸入(檔案路徑、文字、Git diff 等)
    • 呼叫 LLM(預設走 Vercel AI SDK,可接 OpenAI / Vercel 等)
    • 回傳結構化結果(可以寫回檔案、回傳 JSON、或印在 CLI)

    這種設計的好處是:

    • 你可以在不同專案重複使用同一個 skill
    • 一個專案裡可以組合多個 skill 變成「串聯流程」(例如:先用一個 skill 擷取重點,再用另一個 skill 生成測試案例)

    💡 關鍵: 把每個任務抽象成 skill 模組後,你可以在多個專案與流程中重複組裝同一套 AI 邏輯,維護成本更低。


    3. 兩種使用方式:CLI 與程式內呼叫

    你可以把 Skills 當成:

    1. 命令列工具(CLI):適合快速手動使用、寫腳本
    2. 例如:
      bash
      # 執行某個 skill
      npx skills run summarize-doc ./docs/api.md

    3. 程式內呼叫(Node.js / TypeScript):適合接到 CI/CD、背景工作、Bot

    4. 基本結構類似:
      “`ts
      import { runSkill } from “skills”;

      const result = await runSkill(“summarize-doc”, {
      path: “./docs/api.md”,
      });

      console.log(result.summary);
      “`

    這讓 Skills 不只是一個「玩具 CLI」,而是可以被真正嵌入系統裡的 AI 自動化模組。

    💡 關鍵: 同一個 skill 既能在 CLI 使用,也能在程式碼中透過 runSkill 呼叫,降低從實驗到正式上線的落差。


    適合誰用:幾個具體場景

    1. 開發者:減少重複性的開發瑣事

    可以嘗試這幾類 skill:

    • 自動產出 PR 描述
    • CI 裡加入:檢查 PR 的 diff,用 skill 生成清楚的變更說明
    • 好處:大家不再花時間想描述格式,Reviewer 一眼看完重點
    • 整理 issue / ticket
    • 拉取標題 + 描述,讓 skill 自動標記類型、估計複雜度、抽出待辦項目
    • 好處:產品、工程、PM 都看到一致結構的內容
    • 生成測試案例
    • 針對關鍵函式或 API 定義,讓 skill 幫你列出可能的測試情境
    • 再由你挑選重要的手動補完

    可以做的行動:

    • 先用 npx skills 跑一輪預設技能
    • 想想你專案裡最常被抱怨「麻煩但又必須做」的步驟,選 1 個先做成 skill

    2. 內容與行銷:批次改寫與整理文字

    如果你常做這些事,Skills 很適合:

    • 批次改寫文案
    • 輸入一批產品描述,統一改寫成:短版、長版、社群貼文版
    • 可以客製 skill:輸入 CSV / JSON,輸出同格式檔案
    • 整理長文件摘要
    • 對內部文件(產品規格、研究報告)做摘要 + 重點 bullet points
    • 適合接到定時腳本:每天把新文件丟給 skill,產出摘要寄到 Slack

    可以做的行動:

    • 先準備一個資料夾,放你常用的範本文案或長文
    • npx skills 裡的 summary / rewrite 類 skill 試一次,感受輸出品質

    3. DevOps / 自動化工程師:接到 CI/CD、排程腳本

    你可以把 Skills 當成「AI 版 shell script 函式庫」:

    • GitHub ActionsGitLab CI 裡:
    • Pull Request 建立時自動跑 npx skills run pr-description
    • Release 前跑一次 npx skills run summarize-changelog 整理修改內容
    • cron / 定時腳本 裡:
    • 每天抓 issue / log / 監控報表丟給某個 skill,整理成一份人類可讀的摘要

    可以做的行動:

    • 在現有 CI pipeline 裡挑一個步驟,加一個額外 job 試跑 Skills
    • 先只在非必要流程執行,觀察穩定度與輸出品質

    怎麼開始:從預設技能到自訂 skill

    1. 安裝與首次執行

    前置需求:

    • Node.js(建議 18+)
    • 一個可用的 LLM API(例如 OpenAI 或 Vercel AI)

    第一步:直接執行 CLI(免全域安裝):

    npx skills@latest
    

    依照互動式提示:

    1. 選擇或設定你的模型提供者(可能會要求設定 API key)
    2. 選擇一個想先試的 skill(例如 summarize / pr-description)
    3. 依照提示輸入文字、選檔或指定路徑

    這一步的目標:先確認環境 OK + 大概知道 skill 的輸出長什麼樣子。


    2. 看一個最簡單自訂 skill 的程式結構

    接下來你可以把專案 clone 下來:

    git clone https://github.com/vercel-labs/skills.git
    cd skills
    pnpm install # 或 npm / yarn
    

    假設你要做一個最簡單的「文案改寫」 skill,概念結構會像這樣(簡化示意):

    // ./skills/rewrite-copy/index.ts
    import { defineSkill } from "skills";
    import { generateText } from "ai-sdk"; // 具體以官方範例為準
    
    export default defineSkill({
      name: "rewrite-copy",
      description: "改寫一段文案,維持原意但更口語/正式。",
      inputs: {
        text: {
          type: "string",
          description: "要改寫的原始文案",
          required: true,
        },
        tone: {
          type: "string",
          description: "語氣:casual 或 formal",
          default: "casual",
        },
      },
      async run({ inputs, model }) {
        const prompt = `請用${inputs.tone} 語氣改寫以下文案,但保留原本資訊:\n\n${inputs.text}`;
    
        const result = await generateText({
          model,
          prompt,
        });
    
        return {
          rewritten: result.text,
        };
      },
    });
    

    接著,你可以在本地 CLI 裡直接呼叫:

    npx skills run rewrite-copy --text "原始文案內容" --tone casual
    

    這就是 Skills 的基本模式:

    1. defineSkill 宣告輸入/輸出與執行邏輯
    2. run 裡呼叫你喜歡的模型
    3. 回傳一個乾淨的結果物件,方便 CLI 或其他程式接

    3. 在你的專案裡以 API / CLI 串接

    有兩種常見方式:

    方式 A:在 CI / script 裡用 CLI

    以 GitHub Actions 為例,在 .github/workflows/pr-description.yml 加上:

    jobs:
      generate-pr-description:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          - uses: actions/setup-node@v4
            with:
              node-version: 20
          - run: npx skills@latest run pr-description --diff "$(git diff origin/main)"
            env:
              OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
    

    這樣每次開 PR 就會自動產生一段描述,印在 log 或寫到你指定的地方。

    方式 B:在 Node.js 應用程式裡呼叫

    在你自己的專案中安裝:

    npm install skills
    

    然後在程式裡:

    import { runSkill } from "skills";
    
    async function summarizeDoc(path: string) {
      const result = await runSkill("summarize-doc", { path });
      return result.summary;
    }
    

    接著你可以:

    • 在後端 API 提供 /summaries endpoint
    • 在排程腳本裡定時呼叫
    • 在 Slack Bot 裡接指令呼叫

    把 Skills 放進你的「AI 自動化工具箱」的建議做法

    建議一日內可以完成的小目標:

    1. 先用 npx skills 跑三個預設技能:文件摘要、PR 描述、文案改寫
    2. 挑一個你每天都會做、卻很耗時間的文字相關工作,寫成一個最小版 skill
    3. 在你現在的 CI 或本地腳本裡,接入這個 skill(先只給自己用)
    4. 一週後觀察:
    5. 節省了哪些手動步驟?
    6. 哪些輸出需要調 prompt 或加後處理?

    只要跑完這一輪,你就等於有了一個可持續擴充的「AI 自動化工具箱」,之後每多一個 skill,就是少一個你自己要反覆做的瑣事。


    專案連結再附一次:https://github.com/vercel-labs/skills

    想像一下:未來你新增工具,不是寫一串 shell script,而是新增一個 skill,讓 AI 幫你處理掉更多「人做很累、AI 卻很擅長」的工作。

    🚀 你現在可以做的事

    • 在本機直接執行 npx skills@latest,跑一輪預設技能體驗輸出
    • git clone 官方專案並閱讀 skills 目錄下的範例,試著複製一個改成自己的 skill
    • 在一個現有 CI pipeline(如 GitHub Actions)中,加上一個使用 npx skills run pr-description 的非關鍵實驗步驟
  • 用 Claude Cookbooks 做出你的第一個 AI 小工具

    用 Claude Cookbooks 做出你的第一個 AI 小工具

    📌 本文重點

    • Claude Cookbooks 是一套可直接照抄的實戰 Notebook
    • 非工程師可當高級提示模板庫直接用
    • 工程師可快速接 API 做聊天機器人與 RAG 助手
    • 最快五步就能跑出自己的 AI 小工具

    用一句話說清楚:Claude Cookbooks 是一套「Claude 實戰菜單」,照著 Notebook 抄一遍,你今天就能做出自己的聊天機器人、文件助手或程式碼助手。

    原始專案連結:👉 anthropics/claude-cookbooks


    核心功能:這套「菜單」可以幫你做什麼?

    1. 清楚的 Repo 結構:先選你要的「菜」

    進到 GitHub 專案後,你大致會看到這幾類資料夾(名稱可能會略有調整,但概念相近):

    • notebooks/:主要範例,都用 Jupyter Notebook 寫好
    • basic_examples/:最簡單的對話、提示工程示範
    • tools_and_workflows/:工具呼叫、工作流程自動化
    • rag/:RAG(檢索增強生成),用你自己的文件做問答
    • agents/ 或類似資料夾:多步驟任務、小型 Agent 範例

    可以做的事,對應你能採取的行動:

    • 如果你完全沒寫過程式 → 先看標題含有 conversationprompting 的 Notebook,當成「高級版提示語模板」,直接複製到 Claude 網頁版使用。
    • 如果你會一點 Python → 跑 basic_examples 裡的 Notebook,先確認你能成功打出第一個 API 回應。
    • 如果你想做內部工具或 Agent → 從 tools_and_workflowsrag 開始,把範例裡的「假資料」換成你公司的文件或 API。

    2. Notebook 類型:從聊天到自動化,一路拆給你

    Cookbooks 裡的 Notebook 大致可以分成四類,每一類都可以直接改成你的專案:

    1. 對話 / 提示工程 Notebook
    2. 示範怎麼寫系統提示(system prompt)、角色設定、回覆風格控制。
    3. 行動:把裡面的 system prompt 複製出來,替換成你的場景,例如:

      • 把「你是一位友善的 AI 助手」改成「你是一位專門回答退貨政策的客服人員」。
    4. 工具調用(Tool Use)Notebook

    5. 示範怎麼讓 Claude 主動呼叫你定義好的函式,例如查訂單、算報表。
    6. 行動:照著 Notebook 裡的結構定義一個簡單工具:

      python
      def get_order_status(order_id: str) -> dict:
      # TODO: 這裡先寫死假資料,之後再接真的 DB
      return {"order_id": order_id, "status": "shipped"}

      然後讓 Claude 根據使用者輸入決定要不要呼叫這個工具。

    7. RAG(文件問答)Notebook

    8. 示範怎麼把 PDF、Markdown、內網文件先「切片 + 向量化」,再讓 Claude 根據搜尋結果回答。
    9. 行動:先不管效果好不好,拿一份你真的會用到的文件(公司 FAQ、課程教材)丟進範例 Notebook,看能不能成功問出答案。

    10. 工作流程自動化 / Agent Notebook

    11. 示範多步驟流程,例如:解析需求 → 查資料 → 產出報告 → 修稿。
    12. 行動:把裡面的流程步驟改成你的工作,例如「整理每日客服問題 → 匯總成報表」。

    💡 關鍵: 這些 Notebook 的真正價值在於「可直接照抄運行」,先跑出結果再改一兩行,就能快速變成你的專案雛形。

    這些 Notebook 的重點不是「看懂內部原理」,而是先照抄跑出結果,再從中挑一兩行改成自己的業務語句


    3. 拿 Cookbooks 當提示工程與 API 練習教材

    你可以把整個 repo 當成一套免費教材:

    • 練提示工程
    • 每次只做一件事:挑一個 Notebook,只改 system prompt,觀察回覆差異。
    • 練習把「模糊指令」改成「具體條件」,例如:

      • 從「請你幫我改寫」改成「請幫我改寫成 300 字以內、用條列式、適合放在 EDM 裡」。
    • 練 API 使用

    • 大多數 Notebook 只需要你把 api_key 換成自己的,就能跑起來。
    • 把官方文件 + Cookbooks Notebook 打開對照看,很快就能理解 messagestools 等欄位用法。

    適合誰用:非工程師、工程師都能上手

    1. 非工程師:直接拿 Prompt 模板做你的專屬助手

    你不用會 Python,也能從 Cookbooks 撈出超實用的提示模板:

    適合的場景與行動:

    • 客服:
    • 找對話範例 Notebook,看 system prompt 區塊,改成:
      • 「你是某某品牌的客服,回答只能根據以下政策文件,不要自己杜撰。」
    • 把這串 prompt 複製到 Claude 官網或任何支援 Claude 的聊天界面使用。

    • 教學 / 內訓:

    • 找「教學型」prompt(通常會強調分步驟解釋),改成你的主題:

      • 例如從「解釋 Python 基礎」改成「解釋公司新制度給新進同仁」。
    • 內容產生:

    • 使用「內容規劃」「格式控制」相關的 prompt,限制輸出格式,例如:
      • 「每篇貼文必須含有標題、三個重點、CTA 一句。」

    你可以完全忽略程式碼,只把 Notebook 當作「可複製的提示語範本庫」。


    2. 工程師:照範例接後端、做簡單 Agent 或內部工具

    如果你會基本的 JavaScript / Python,Cookbooks 就是現成腳手架:

    • 接後端 API
    • 參考工具調用 Notebook,把你現有的 REST API 包成一個 tool,讓 Claude 負責決定何時呼叫。

    • 做簡單 Agent

    • 用工作流程 Notebook,把「找資料 → 分析 → 生報告」這種流程拆成數個函式,交給模型逐步完成。

    • 配合其他工具

    • 例如搭配 gsd-build/get-shit-done 這類 meta-prompting 框架,把你在 Cookbooks 練出來的 prompt 模板,包成可重用的規格驅動開發模組。

    怎麼開始:5 步跑出你的第一個 AI 小工具

    以下示範用「本機 + 最實用 Notebook」的最短上手路徑。

    步驟 0:準備一支 Claude API Key

    1. 前往 Anthropic 官方平台(依區域而定,通常是 Anthropic Console)。
    2. 建立帳號,進入 API 區域,建立一支 API Key。
    3. 暫存好這串金鑰,等等要寫進環境變數或 Notebook。

    步驟 1:Fork 專案 + 下載到本機

    1. 打開 repo:https://github.com/anthropics/claude-cookbooks
    2. 右上角點選 Fork,建立自己的副本,方便之後修改。
    3. 在終端機輸入:

    bash
    git clone https://github.com/<你的帳號>/claude-cookbooks.git
    cd claude-cookbooks

    如果你不想在本機操作,也可以直接用雲端 Notebook(例如 GitHub Codespaces、Colab)打開 repo,步驟類似,只是不用 git clone


    步驟 2:安裝環境 + 設定 API Key

    1. 建議建立虛擬環境:

    bash
    python -m venv venv
    source venv/bin/activate # Windows 用 venv\Scripts\activate

    1. 安裝依賴(專案內通常有 requirements.txtpyproject.toml):

    bash
    pip install -r requirements.txt

    1. 設定環境變數(以 macOS / Linux 為例):

    bash
    export ANTHROPIC_API_KEY="你的_API_Key"

    Windows PowerShell 則是:

    powershell
    setx ANTHROPIC_API_KEY "你的_API_Key"

    💡 關鍵: 只要正確設定 ANTHROPIC_API_KEY 環境變數,大部分 Notebook 幾乎「零修改」就能直接跑起來。


    步驟 3:啟動 Jupyter Notebook

    在專案根目錄啟動:

    jupyter notebook
    

    瀏覽器會打開一個頁面,看到專案檔案結構,接下來只要點進想學的 Notebook 即可。


    實戰示範 1:照抄一個「聊天機器人」 Notebook

    以一個最簡單的對話 Notebook 為例(名稱可能類似 basic_chat.ipynb):

    1. 打開 Notebook,找到這幾段:
    2. 匯入套件(通常是 from anthropic import Anthropic
    3. 建立 client:client = Anthropic()
    4. 呼叫模型的程式碼:

      python
      response = client.messages.create(
      model="claude-3-5-sonnet-latest",
      max_tokens=256,
      messages=[
      {"role": "user", "content": "你好,幫我想三個 IG 貼文主題"}
      ],
      )
      print(response.content[0].text)

    5. 直接執行所有 Cell,確認能拿到一段回覆。

    6. 第一個客製化改動
    7. messages 改成你要的 system + user:

      python
      messages=[
      {
      "role": "system",
      "content": "你是一位專門幫新創品牌寫社群貼文的內容策劃,回覆一律用繁體中文,語氣自然口語。"
      },
      {
      "role": "user",
      "content": "我們是做手沖咖啡器材的,幫我想三個 IG 貼文主題。"
      }
      ]

    8. 再跑一次,這就是你的第一個「內容策劃小幫手」。

    延伸修改方向:

    • 把 user input 改成 input(),讓程式變成簡單的 CLI 聊天機器人。
    • 限制輸出格式:要求 Claude 回傳 JSON,方便之後接到前端或自動排程工具。

    實戰示範 2:照抄一個「文件助手」 RAG Notebook

    找一個 RAG 相關 Notebook(例如 basic_rag.ipynb),你可以這樣照做:

    1. 找到「載入文件」的 Cell,把原來的 sample text 改成你自己的 FAQ 或產品說明。
    2. 跟著 Notebook 步驟做:
    3. 切分文件 → 建立向量索引 → 根據提問檢索相關片段。
    4. 在最後呼叫 Claude 的地方,確認有把「檢索結果」放進 prompt 裡,例如:

    “`python
    prompt = f”””
    根據以下文件內容回答使用者問題,如果文件裡沒有答案,就老實說不知道:

    {retrieved_chunks}

    問題:{user_question}
    “””
    “`

    1. 執行後,你就得到一個最簡單版的「文件問答助手」。

    延伸修改方向:

    • 把檔案來源改成公司內部 SOP 或 Notion 匯出的 Markdown。
    • 在回覆前加上一段「引用來源」,列出這次回答用到哪些文件標題。

    小結:先抄,再改,最後變成你的專屬 Cookbooks

    使用 Claude Cookbooks 有一個簡單心法:

    1. 先選一個最貼近你需求的 Notebook(聊天 / 文件 / 工具調用)。
    2. 照著跑一次,不改任何東西,只確認能成功呼叫 API。
    3. 從 system prompt 開始改成你的場景,再逐步替換資料來源、工具函式。

    💡 關鍵: 當你能順手改兩三個 Notebook,你實際上已經掌握提示設計、API 呼叫與簡單 Agent 的完整流程。

    當你能順手改兩三個 Notebook,你實際上已經會:

    • 寫出能穩定工作的提示語
    • 呼叫 Claude API,做出自己的 AI 小工具
    • 把文件、後端 API、工作流程接進來,做出簡單 Agent

    接下來,你就可以把自己的版本再 push 回 GitHub,變成「你公司的 Claude Cookbooks」。


    🚀 你現在可以做的事

    • 打開 anthropics/claude-cookbooks,先挑一個最貼近你需求的 Notebook
    • 依照文中步驟設定 ANTHROPIC_API_KEY,完整跑通一個聊天或 RAG 範例
    • 把其中一個 Notebook 的 system prompt 改成你的實際場景,存成你自己的第一個 Cookbooks 版本
  • 【開源神器】受夠了 Windows 越用越卡?GitHub 萬星工具一鍵解鎖效能,附站長實測深度分析!

    【開源神器】受夠了 Windows 越用越卡?GitHub 萬星工具一鍵解鎖效能,附站長實測深度分析!

    每當我們買了新電腦或是剛重灌完 Windows 系統,打開工作管理員的瞬間,往往會感到一陣無力——後台不僅堆滿了幾乎不會用的「全家桶」預裝軟體,還有各種關不掉的隱私數據採集程式,無時無刻都在偷偷吞噬著你的電腦效能。

    想手動優化?改系統設定往往治標不治本,改登錄檔(Registry)又怕把系統搞崩潰。

    如果你也有這些困擾,今天這篇文章將為你介紹一款在 GitHub 上斬獲萬星級別的神級開源專案——Winutil。它被無數資深玩家譽為「Windows 的終極外掛」,我不僅會教你怎麼用,更會附上我實際測試後的「深度自我分析」,帶你看看這款工具到底適不適合你!

    🚀 為什麼你必須認識「Winutil」?

    這款由頂級技術大神開發的工具,其最硬核、最讓人驚豔的設計邏輯在於:它完全不需要下載任何安裝檔!

    這意味著你永遠不用擔心在網路上隨便下載軟體會中標,也不用怕被偷偷安裝流氓軟體。它是一支直接運行在記憶體裡的腳本,用完即走,關閉視窗後就徹底消失,深藏功與名,不會在你的硬碟裡留下任何垃圾文件或常駐後台。

    🛠️ 四大核心功能拆解,把 Windows 變成完全體

    1. Install(軟體安裝):像「點餐」一樣安裝純淨軟體

    重灌系統後,到各個官網一個個下載常用軟體簡直是體力活,還要隨時提防下載按鈕旁邊的假廣告陷阱。Winutil 透過底層調用微軟官方的 winget 或開源的 Chocolatey 引擎,提供了一個極度直覺的「勾選選單」。

    你只需要把需要的瀏覽器、播放器、開發工具打勾,點擊開始安裝,系統就會自動從官方庫抓取最新版本並「靜默安裝」。安全、純淨、全自動!

    2. Tweaks(系統優化):拆除臃腫贅肉,釋放極致效能

    如果把 Windows 比喻成過度裝潢的實品屋,那 Tweaks 就是幫你拆除無用隔間的鐵錘。

    • 一鍵去冗餘:強行卸載那些系統原本「死活不讓你刪」的自帶 App 與過時組件。
    • 隱私保護與效能釋放:關閉後台的遙測數據採集與廣告彈窗,這不僅讓系統清爽,更能實打實地降低 CPU 與記憶體的佔用率。
    • 傻瓜式操作:你不需要懂艱澀的技術細節,只需點擊頂部的 Standard(標準)預設方案,就能完成大滿貫級別的優化。

    3. Updates(更新管理):把升級主導權從微軟手中搶回來

    大家一定都有過這種崩潰體驗:工作做到一半,系統突然提示即將強制重啟更新!在這裡,你可以對 Windows 更新進行「精細化接管」。你可以選擇只接收「安全性更新」,或者徹底暫停更新功能。既保證了系統底層安全,又把升級新功能的權利拿回自己手裡。

    4. Win11 Creator(進階玩家專屬):打造客製化純淨系統

    它能在安裝系統前,就把臃腫軟體、Edge 瀏覽器,甚至是讓老電腦無法升級 Windows 11 的 TPM 限制全部從安裝映像檔中剔除。生成的精簡版系統體積更小、速度更快,讓十幾年前的老電腦也能流暢運行。

    🧐 【站長深度解析】這款工具真的完美嗎?我的實測與自我分析

    作為一個重度依賴電腦效能的部落客與開發者,我親自對這款工具進行了為期一週的極限測試。以下是我的客觀分析與評估:

    優勢分析 (Pros)

    極致的「無痕」體驗:市面上很多號稱優化的軟體(如某某衛士、某某管家),本身就是最大的系統毒瘤。Winutil 採用 PowerShell 記憶體加載,這種「用完即焚」的邏輯才是一個系統工具該有的職業道德。

    開源透明化:這點非常重要。所有程式碼都在 GitHub 上公開接受全球開發者的檢驗,杜絕了後門與惡意代碼的風險。

    效能提升肉眼可見:在我的備用舊筆電(8GB RAM)上實測,執行完 Standard 優化後,開機常駐記憶體佔用從原本的 4.2GB 降到了 2.8GB,系統反應速度明顯變快。

    風險與缺點分析 (Cons)

    缺乏中文友善介面:目前全英文的介面對於一般非技術背景的用戶來說,可能會產生一定的心理門檻。

    過度優化的風險:自由度極高也意味著破壞力強。如果你在不知情的情況下亂勾選進階配置(例如關閉了某些必要的系統服務),極有可能導致部分專業軟體(如虛擬機、老遊戲)無法正常運行。

    📊 站長給你的適用人群建議

    強烈建議使用:受夠了系統卡頓的老電腦用戶、追求極致幀數的電競玩家、剛買新筆電想清除原廠預裝垃圾的人。

    不建議使用:完全不懂電腦基礎操作的純小白、公司配發受嚴格管制的企業級電腦。

    👨‍💻 極客級的新手教學:兩步啟動魔法

    要召喚這個神器,完全不用去亂找下載點,只需要跟著以下兩步操作:

    1. 開啟終端機:按下快捷鍵 Win + X。如果你是 Windows 10,請選擇「以系統管理員身分開啟 PowerShell」;如果是 Windows 11,則選擇「以系統管理員身分開啟終端機」。

    2. 輸入啟動指令:前往該專案的 GitHub 官方頁面(搜尋 Winutil),複製其官方提供的一行 PowerShell 啟動指令,貼上到你的終端機視窗並按下 Enter 回車。

    等待幾秒鐘的下載與加載後,清爽的圖形化介面就會自動彈出!

    ⚠️ 站長最後的強烈警告

    在進行任何系統級別的優化前,請務必點擊工具介面上的「Create Restore Point」(建立還原點)!給自己留一條後路,即使不小心關錯了東西,也能一鍵反悔,這才是成熟玩家的作風。

    Windows 其實並不是不好用,只是微軟預設塞給我們的冗餘資訊太多了。透過 Winutil 這個「開源手術刀」,你絕對能找回那個乾淨、純粹且飛快的作業系統體驗。現在就打開你的終端機,親自感受一下「解鎖效能」的快感吧!