[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-open-source-ai-agent-frameworks-compared-langfuse-zh":3,"article-related-open-source-ai-agent-frameworks-compared-langfuse-zh":30,"series-ai-agent-520bcebc-da4d-4846-8438-73fbf26a0d57":75},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":29},"520bcebc-da4d-4846-8438-73fbf26a0d57","open-source-ai-agent-frameworks-compared-langfuse-zh","開源 AI Agent 框架實作比較與追蹤","\u003Cp data-speakable=\"summary\">這篇教你選開源 \u003Ca href=\"\u002Ftag\u002Fai-agent\">AI Agent\u003C\u002Fa> 框架、接上 Langfuse 追蹤，並完成第一個可驗證的代理流程。\u003C\u002Fp>\u003Cp>如果你正在為 Python 或 \u003Ca href=\"\u002Ftag\u002Ftypescript\">TypeScript\u003C\u002Fa> 專案挑選 agent framework，這篇可以直接帶你縮小選項，並在第一天就把觀測資料接好。照做完，你會得到一個能跑的最小代理流程、一條可在 Langfuse 檢視的 trace，以及一份適合你技術棧的框架判斷。\u003C\u002Fp>\u003Cp>本文以 Langfuse 的框架比較內容為基礎，重點放在實作路線\u003Ca href=\"\u002Fnews\u002Fopenai-should-pay-more-for-bio-jailbreaks-not-less-zh\">而不是\u003C\u002Fa>空泛排名。你會先選出\u003Ca href=\"\u002Fnews\u002Fopenclaw-v2026-7-1-control-ui-workspace-zh\">控制\u003C\u002Fa>風格，再把 SDK、工具呼叫、追蹤、護欄與基準測試串成一條可驗收的工作流。\u003C\u002Fp>\u003Ch2>開始之前\u003C\u002Fh2>\u003Cul>\u003Cli>Node 20+，若你要用 TypeScript 框架，例如 Mastra、Vercel AI SDK 或 Strands Agents。\u003C\u002Fli>\u003Cli>Python 3.10+，若你要用 LangGraph、Claude Agent SDK、Google ADK、Pydantic AI、CrewAI 或 Strands Agents。\u003C\u002Fli>\u003Cli>一個 Langfuse 帳號與專案，用來收 trace、span、prompt 和 evaluation。\u003C\u002Fli>\u003Cli>至少一組模型 API key，例如 OpenAI、Anthropic、Google Gemini 或 AWS Bedrock。\u003C\u002Fli>\u003Cli>本機已安裝 Git，方便你 clone 範例 app 或自己的 agent service。\u003C\u002Fli>\u003Cli>具備 tool calling、async code 與環境變數的基本操作能力。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Step 1: 選定控制風格\u003C\u002Fh2>\u003Cp>目的：先決定你要自己掌握多少 orchestration。LangGraph 與 \u003Ca href=\"\u002Ftag\u002Fgoogle\">Google\u003C\u002Fa> ADK 適合明確流程；\u003Ca href=\"\u002Ftag\u002Fopenai\">OpenAI\u003C\u002Fa> Agents SDK 與 \u003Ca href=\"\u002Ftag\u002Fclaude\">Claude\u003C\u002Fa> Agent SDK 適合管理式 loop；Pydantic AI 適合重視型別驗證的 Python 團隊；Mastra 與 Vercel AI SDK 則偏向 TypeScript-first 產品。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784401377614-3fuv.png\" alt=\"開源 AI Agent 框架實作比較與追蹤\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>判斷規則很簡單：如果你需要分支、重試與人工核准發生在固定節點，就先選 graph-based 框架。若你想用最少組裝完成可用 loop，就先選 loop-first SDK。若你最在意輸入輸出驗證與開發體驗，就先從 Pydantic AI 開始。\u003C\u002Fp>\u003Cp>驗收：你應該能用一句話說出選擇，例如「我需要明確狀態控制，所以選 LangGraph。」\u003C\u002Fp>\u003Ch2>Step 2: 安裝 SDK 與追蹤客戶端\u003C\u002Fh2>\u003Cp>目的：建立一個能送出 trace 的本機專案。先安裝你選定的框架，再加入 Langfuse client 或該框架文件建議的 OpenTelemetry 整合。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784401375852-fk3y.png\" alt=\"開源 AI Agent 框架實作比較與追蹤\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cpre>\u003Ccode>npm install @langfuse\u002Fclient @vercel\u002Fai-sdk\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>如果你是 Python 專案，就改裝對應的框架套件與 Langfuse Python SDK。接著在執行 app 之前，先設定 Langfuse public key、secret key 與 host 等環境變數。\u003C\u002Fp>\u003Cp>驗收：你應該看到套件安裝完成沒有錯誤，而且 .env 已包含框架需要的金鑰。\u003C\u002Fp>\u003Ch2>Step 3: 建立單工具代理迴圈\u003C\u002Fh2>\u003Cp>目的：先證明框架能呼叫工具並回傳有用答案，再加多代理或工作流複雜度。第一版只保留一個 model、一段 prompt、一個 tool 與一條輸出路徑。\u003C\u002Fp>\u003Cp>例如接上一個天氣查詢、檔案讀取或資料庫查詢工具。若框架支援 handoff、subagent 或 workflow，先不要用，先確認基本 loop 真的能跑通。\u003C\u002Fp>\u003Cp>驗收：你應該看到代理回應中包含工具結果，而不是只有\u003Ca href=\"\u002Fnews\u002Fkimi-k3-model-hype-into-harness-work-zh\">模型\u003C\u002Fa>猜測。\u003C\u002Fp>\u003Ch2>Step 4: 把執行寫進 Langfuse\u003C\u002Fh2>\u003Cp>目的：把代理執行記錄下來，方便檢查 prompt、tool call、延遲與失敗原因。依照框架整合文件加入 tracing hooks 或 middleware，然後送出一次測試請求。\u003C\u002Fp>\u003Cp>打開 Langfuse 專案後，確認 trace 內有 root run，並且 model call 與 tool call 都各自形成 child span。若框架支援結構化 metadata，請把框架名稱、模型名稱與環境一起附上，方便日後篩選。\u003C\u002Fp>\u003Cp>驗收：你應該在 Langfuse 看到一條新 trace，而且至少有一個 model span 與一個 tool span。\u003C\u002Fp>\u003Ch2>Step 5: 加上護欄與流程控制\u003C\u002Fh2>\u003Cp>目的：在流量進來前，先把代理變得更安全、更可預測。加入框架原生的控制，例如輸入驗證、輸出 schema、權限 allowlist、retry、checkpoint 或 human-in-the-loop interrupt。\u003C\u002Fp>\u003Cp>控制方式要跟框架特性對齊。Pydantic AI 用 typed input 與 output。CrewAI 用角色定義，再包進 Flows。LangGraph 或 Google ADK 用明確分支與重試路徑。Claude Agent SDK 或 OpenAI Agents SDK 則用 hooks、guardrails 或 handoffs 來限制行為。\u003C\u002Fp>\u003Cp>驗收：你應該能丟出一個無效輸入，並看到代理拒絕或改道，而不是靜默失敗。\u003C\u002Fp>\u003Ch2>Step 6: 對照基準 trace\u003C\u002Fh2>\u003Cp>目的：用觀測資料判斷第一版是否足夠。對同一個 prompt 跑幾次，對照 trace，找出不穩定的 tool 使用、重試過多，或 context 無謂膨脹。\u003C\u002Fp>\u003Cp>接著記錄 latency、cost 與 success rate 的基準值，方便後續版本比較。Langfuse 最有價值的地方，是把 traces 當成開發資產，而不只是上線後的儀表板。\u003C\u002Fp>\u003Cp>驗收：你應該拿到一組可重複的 baseline trace，並列出下一輪要改善的項目。\u003C\u002Fp>\u003Ch2>常見錯誤\u003C\u002Fh2>\u003Cul>\u003Cli>因為品牌熟悉度選框架，而不是依控制需求選。修法：先對照 workflow control、type safety 或 managed loop，再決定框架。\u003C\u002Fli>\u003Cli>單代理 loop 還沒跑通就先做多代理協作。修法：先把一個 tool、一段 prompt、一條 trace 做穩，再加 handoff 或 subagent。\u003C\u002Fli>\u003Cli>等到 production 才接觀測。修法：在第一個 prototype 就串 Langfuse，提早看見 prompt、tool 與 retry 問題。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>接下來可以看什麼\u003C\u002Fh2>\u003Cp>當第一個 agent 已經可追蹤且穩定，下一步就進入框架專屬強化：加入 eval、建立 prompt versioning、替 tool call 製作 regression test，並比較重試、記憶成長與人工核准流程下的表現。\u003C\u002Fp>","這篇教你選開源 AI Agent 框架、接上 Langfuse 追蹤，並完成第一個可驗證的代理流程。","langfuse.com","https:\u002F\u002Flangfuse.com\u002Fblog\u002F2025-03-19-ai-agent-comparison",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784401377614-3fuv.png","ai-agent","zh","55fc6bbb-4e7d-4f4d-8fa3-3886f4d6f7a1",[17,18,19,20,21],"Langfuse","LangGraph","Pydantic AI","Vercel AI SDK","agent framework",[23,24,25],"先按控制風格選框架，再補追蹤與護欄。","第一版只做單工具迴圈，避免過早多代理化。","Langfuse 要在原型期接上，才能建立可比較的 baseline。",0,"2026-07-18T19:02:25.980472+00:00","2026-07-18T19:02:25.974+00:00","ac421c47-7ea0-4fc6-8634-33f80d04101c",{"tags":31,"relatedLang":34,"relatedPosts":38},[32],{"name":18,"slug":33},"langgraph",{"id":15,"slug":35,"title":36,"language":37},"open-source-ai-agent-frameworks-compared-langfuse-en","Open-Source AI Agent Frameworks Compared","en",[39,45,51,57,63,69],{"id":40,"slug":41,"title":42,"cover_image":43,"image_url":43,"created_at":44,"category":13},"31657b75-a18e-418e-a5d6-bca5095e2780","codex-micro-macropad-ai-control-deck-zh","Codex Micro 讓控制面板變安全","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784291589427-erc8.png","2026-07-17T12:32:45.179803+00:00",{"id":46,"slug":47,"title":48,"cover_image":49,"image_url":49,"created_at":50,"category":13},"ee3c0a0e-0117-4f79-b94b-308d08b43669","automate-web3-grant-screening-ai-scoring-zh","Web3 補助金 AI 篩選流程實作","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784187173996-8c2e.png","2026-07-16T07:32:23.745459+00:00",{"id":52,"slug":53,"title":54,"cover_image":55,"image_url":55,"created_at":56,"category":13},"02bfe363-1ca6-4c20-be08-34d4ad532b71","anthropic-model-task-persistence-tuning-zh","Anthropic 任務耐力調校指南","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784102587342-bz4a.png","2026-07-15T08:02:31.959666+00:00",{"id":58,"slug":59,"title":60,"cover_image":61,"image_url":61,"created_at":62,"category":13},"7acb5b4c-de5e-4ded-83cf-82cf93f47a00","google-gemini-enterprise-agent-platform-cloud-service-zh","Google Gemini Enterprise 代理平台把 AI 代理變成雲…","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784059372531-sfab.png","2026-07-14T20:02:24.962585+00:00",{"id":64,"slug":65,"title":66,"cover_image":67,"image_url":67,"created_at":68,"category":13},"1f24f862-f37b-4bd9-b78d-434713905348","workbuddy-harness-engineering-agent-reliability-zh","WorkBuddy 證明了 Agent 可靠性不靠大模型本身","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1783987377305-yt32.png","2026-07-14T00:02:31.385926+00:00",{"id":70,"slug":71,"title":72,"cover_image":73,"image_url":73,"created_at":74,"category":13},"415418c7-749e-4352-a21d-d2fa62d8b96b","perplexity-teammate-coding-agent-strategy-zh","Perplexity 應把 Teammate 做成 coding agent，…","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1783589576714-n7gs.png","2026-07-09T09:32:25.568287+00:00",[76,81,86,91,96,101,106,111,116,121],{"id":77,"slug":78,"title":79,"created_at":80},"4ae1e197-1d3d-4233-8733-eafe9cb6438b","claude-now-uses-your-pc-to-finish-tasks-zh","Claude 開始幫你操作電腦","2026-03-26T07:20:48.457387+00:00",{"id":82,"slug":83,"title":84,"created_at":85},"5bede67f-e21c-413d-9ab8-54a3c3d26227","googles-2026-ai-agent-report-decoded-zh","Google 2026 AI Agent 報告解讀","2026-03-26T11:15:22.651956+00:00",{"id":87,"slug":88,"title":89,"created_at":90},"2987d097-563f-46c7-b76f-b558d8ef7c2b","kimi-k25-review-stronger-still-not-legend-zh","Kimi K2.5 評測：更強，但還不是神作","2026-03-27T07:15:55.277513+00:00",{"id":92,"slug":93,"title":94,"created_at":95},"95c9053b-e3f4-4cb5-aace-5c54f4c9e044","claude-code-controls-mac-desktop-zh","Claude Code 也能操控 Mac 了","2026-03-28T03:01:58.58121+00:00",{"id":97,"slug":98,"title":99,"created_at":100},"dc58e153-e3a8-4c06-9b96-1aa64eabbf5f","cloudflare-100x-faster-ai-agent-sandbox-zh","Cloudflare 的 AI 沙箱跑超快","2026-03-28T03:09:44.142236+00:00",{"id":102,"slug":103,"title":104,"created_at":105},"1c8afc56-253f-47a2-979f-1065ff072f2a","openai-backs-isara-agent-swarm-bet-zh","OpenAI 挺 Isara 的 agent swarm …","2026-03-28T03:15:27.513155+00:00",{"id":107,"slug":108,"title":109,"created_at":110},"7379b422-576e-45df-ad5a-d57a0d9dd467","openai-plan-automated-ai-researcher-zh","OpenAI 想做自動化 AI 研究員","2026-03-28T03:17:42.090548+00:00",{"id":112,"slug":113,"title":114,"created_at":115},"48c9889e-86df-450b-a356-e4a4b7c83c5b","harness-engineering-ai-agent-reliability-2026-zh","駕馭工程：從「馬具」到「作業系統」，AI Agent 可靠性的終極密碼","2026-03-31T06:42:53.556721+00:00",{"id":117,"slug":118,"title":119,"created_at":120},"96d8e8c8-1edd-475d-9145-b1e7a1b02b65","mcp-explained-from-prompts-to-production-zh","MCP 怎麼把提示詞變工作流","2026-04-01T09:24:39.321274+00:00",{"id":122,"slug":123,"title":124,"created_at":125},"f2ca7720-b471-4ce5-9336-2a9ac2a876fd","amazon-bedrock-agents-multi-agent-workflows-zh","Amazon Bedrock Agents 進入多代理工作流","2026-04-01T09:30:29.945429+00:00"]