老闆以爲我會coding,殊不知我只是用了Notion?!
在Notion 建立一個To-Do任務,AI PM、工程師、QA就默默把工作做完了,若有需要人類確認的地方,還會自動把卡片變紅通知你。這是Notion工程師Geoffrey Litt在Every vibe coding馬拉松中分享的專案,習慣用Notion進行知識、專案管理的讀者是不是超興奮?我真的把它做出來了!製作工具與方法分享給大家。
延伸閱讀:Notion工程師Geoffrey Litt專案介紹
如何製作
使用工具:Claude、Claude Agent SDK、Antigravity、Notion
製作流程:
將原始想法、希望達成的目標講給Claude聽,請他研究相關技術與限制,並整理成規格書。
請Antigravity依據規格書實作。
依據Antigravity的教學建立Notion Integration ,取得Notion API Key,並打開資料表的權限。(這可能是最難的一步了,如果搞不定,別忘了還有AI瀏覽器可以用!)
測試、截圖、請Antigravity修改。
最大重構,從自幹狀態機到用Claude Agent SDK
我們先前的系統像是一個工廠流水線,寫死了 300 多行的狀態邏輯:
如果狀態是 A -> 呼叫 AI 寫 Spec -> 更新狀態 B
如果狀態是 B -> 呼叫 AI 寫 Code -> 更新狀態 C
這看起來很美好,但由於AI生成的不確定性,這套流程實際上非常脆弱,一旦 AI 生成的程式碼有語法錯誤,或是需要查資料、跑測試,這套「寫死」的邏輯就會卡住,反而必須寫一堆 if (error) retry 的補救邏輯,程式碼變得愈來愈難維護。
我意識到只 AI 當作 API 呼叫會限制他的能力,而應該把它當作一個「Agent」。代理人應該有自己的思考迴圈 (Loop),遇到問題自己查、自己修,而不是等我不停地去改。
這次重構引入了 Claude Agent SDK,有三大改變:
程式碼大瘦身: 原本負責調度所有邏輯的 watcher.ts,從 360+ 行縮減到 50 行。現在它只做一件事:監聽 Notion 任務,然後叫醒 Agent。所有的思考、決策邏輯,全部移交給了 SDK 和 System Prompt。
延伸閱讀:什麼是System Prompt?
自主除錯:Agent 寫完程式碼後,能用終端機執行 npm test、自己讀錯誤訊息、修正程式碼,直到測試通過為止。
靈活擴充:我們加了 Puppeteer 讓它自動截圖測試畫面,這在舊架構下要寫很多膠水程式碼,現在只需要在 Prompt 裡加一句話。
快打開你的IDE,建造自己的工具吧!
AI輔助名詞解釋
Claude Agent SDK:Anthropic 推出的開發工具包,讓開發者更容易建立能自主思考、執行多步驟任務的 AI 代理人。
狀態機(State Machine):一種程式設計模式,將系統行為定義為一系列「狀態」與「轉換條件」,例如「狀態 A 完成後進入狀態 B」。
Puppeteer:Google 開發的網頁自動化工具,常用來自動操控瀏覽器、截圖網頁畫面或進行自動化測試。
System Prompt:給 AI 模型的「背景指令」,在對話開始前設定角色、規則與行為準則,讓 AI 知道自己應該如何運作。
延伸閱讀
前置作業:連接 Notion 關鍵四步
要讓 AI Agent 讀寫你的 Notion,你需要一張「通行證」(Integration Token)和一個「地址」(Database ID)。
第一步:建立 Notion Integration
A. 前往 Notion My Integrations 頁面。
B. 點擊 “New integration” (新增整合)。
C. Name: 取個好記的名字,例如 Notion AI Agent。
D. Associated workspace: 選擇你的工作區。
E. Type: 選擇 “Internal” (內部整合,這最簡單,不需要 OAuth 流程)。
F. 點擊 “Submit”。
G. 複製 “Internal Integration Secret” (以 secret_ 開頭的字串)。 這是你的 NOTION_API_KEY,請妥善保存!
第二步:將 Database 分享給 Integration
很多人拿到了 Key 卻還是連不上,通常都是因為少做這一步。Notion 的權限是預設關閉的,你必須明確告訴 Notion:「這個 Database 可以被我的 Integration 存取」。
A. 打開你的 Notion 任務看板 (Database 頁面)。
B. 點擊右上角的 “...” (更多選單)。
C. 找到 “Connections” (連接) -> “Add connections”。
D. 在搜尋框中輸入你剛剛建立的 Integration 名字 (例如 Notion AI Agent)。
E. 點擊確認加入。
檢查點:現在你的 Database 右上角選單的 Connections 列表裡,應該要看得到你的 Integration 名字。
第三步:取得 Database ID
A. 在你的 Database 頁面,點擊右上角的 “Share” -> “Copy link”。
B. 貼上連結到記事本,格式會像這樣:
https://www.notion.so/myworkspace/a8aec43384f447ed84390e8e42c2e089?v=...
a8aec43384f447ed84390e8e42c2e089
這串 32 個字元的亂碼,就是你的 NOTION_DATABASE_ID。
第四步:設定環境變數
回到你的專案資料夾,建立一個 .env檔案,填入剛剛取得的資訊:
# Notion 設定
NOTION_API_KEY=secret_你的IntegrationSecret
NOTION_DATABASE_ID=你的DatabaseID
# AI 模型設定 (本專案使用 Claude SDK)
ANTHROPIC_API_KEY=sk-ant-你的ClaudeAPIKey






