[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-foundry-mcp-remote-tools-agent-endpoint-zh":3,"article-related-foundry-mcp-remote-tools-agent-endpoint-zh":31,"series-tools-92c5ded8-bdc6-4214-b78f-2f4f94cea6b4":83},{"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":23,"views":27,"created_at":28,"published_at":29,"topic_cluster_id":30},"92c5ded8-bdc6-4214-b78f-2f4f94cea6b4","foundry-mcp-remote-tools-agent-endpoint-zh","Foundry MCP 把工具收斂成一個端點","\u003Cp data-speakable=\"summary\">這篇可以直接抄走 Foundry \u003Ca href=\"\u002Ftag\u002Fmcp\">MCP\u003C\u002Fa> 的接法、approval 流程、Toolboxes 與 Python 模板。\u003C\u002Fp>\u003Cp>我用 \u003Ca href=\"\u002Ftag\u002Fagent\">agent\u003C\u002Fa> 工具接線這件事一陣子了，越用越火大。模型沒問題，prompt 也沒問題，SDK 看起來也都正常，然後整個系統就卡在工具邊界：\u003Ca href=\"\u002Ftag\u002Fgithub\">GitHub\u003C\u002Fa> 一套、內部服務一套、搜尋又一套，最後每個 agent 都長得像拼裝車。我最受不了的是，大家總把問題怪到模型身上，但真正難的是工具\u003Ca href=\"\u002Fnews\u002Fhow-to-set-up-spacemit-k3-risc-v-sbc-zh\">怎麼\u003C\u002Fa>接、誰能用、誰要先按同意。工具邊界沒收好，agent 再聰明也只是會亂跑的自動化。\u003C\u002Fp>\u003Cp>後來我看了 \u003Ca href=\"\u002Ftag\u002Fmicrosoft\">Microsoft\u003C\u002Fa> Learn 這篇 \u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Ffoundry\u002Fagents\u002Fhow-to\u002Ftools\u002Fmodel-context-protocol\">Connect to MCP Server Endpoints for agents\u003C\u002Fa>，腦袋才比較清楚。它不是在教你再寫一層客製 wrapper，而是把外部能力收進 \u003Ca href=\"https:\u002F\u002Fmodelcontextprotocol.io\u002F\">Model Context Protocol\u003C\u002Fa> 這條線裡。也就是說，Foundry agent 不必知道每個外部系統的怪脾氣，只要會講 MCP，就能把遠端工具當成標準端點來用。\u003C\u002Fp>\u003Ch2>別再把每個工具都當一次性專案\u003C\u002Fh2>\u003Cblockquote>Connect your Foundry agents to Model Context Protocol (MCP) servers by using the MCP tool.\u003C\u002Fblockquote>\u003Cp>翻譯一下就是：agent 不需要知道工具背後到底怎麼實作，它只要知道怎麼呼叫一個 MCP server。這個 server 把能力包成標準介面，agent 看到的是工具，不是你那坨自訂整合碼。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780848206168-1rf3.png\" alt=\"Foundry MCP 把工具收斂成一個端點\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>我以前最常掉進去的坑，就是每加一個外部服務就寫一個 wrapper，然後每個 wrapper 都有自己的 auth、retry、錯誤格式、回傳結構。第一個看起來很合理，第二個開始就會失控。MCP 的好處不是「多了一個新名詞」，而是它把工具邊界固定住了，讓你不用每次都重新發明整合方式。\u003C\u002Fp>\u003Cp>實操上我會這樣做：凡是能被包成 MCP server 的服務，優先走 MCP。只有在真的需要非常客製的行為時，才退回去寫專用 wrapper。對 Foundry 來說，就是把 \u003Ccode>mcp\u003C\u002Fcode> tool 當成預設入口，而不是把外部 API 硬塞進 agent prompt 或業務邏輯裡。\u003C\u002Fp>\u003Cul>\u003Cli>先判斷服務能不能變成 MCP server。\u003C\u002Fli>\u003Cli>能的話就不要急著寫客製 function wrapper。\u003C\u002Fli>\u003Cli>把 agent 只保留在「會呼叫工具」這層，不要把整合細節灌進去。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>公網端點簡單，私網端點才是現實\u003C\u002Fh2>\u003Cp>這篇我最在意的是它把 public 和 private MCP endpoint 分開講，因為那才是實際上會卡住你的地方。公網端點很單純，server 能從網際網路被找到，Foundry Agent Service 就能連。私網端點就沒那麼好打發，Microsoft 明講要走 Standard Agent Setup、private networking，還要有專用的 MCP subnet。\u003C\u002Fp>\u003Cp>翻譯一下就是：如果你的工具在內網，別幻想靠幾個設定值就混過去。你得先把網路拓樸、入口、子網、權限這些東西搞定，agent 才有機會真的碰到那個 server。Microsoft 也提到 Azure Container Apps 與 \u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fcontainer-apps\u002F\">Microsoft.App\u002Fenvironments\u003C\u002Fa> 這類網路設定，還有一個模板 \u003Ccode>19-private-network-agents-tools-setup\u003C\u002Fcode>，這種東西我都會先看，因為它通常比我自己瞎配快得多。\u003C\u002Fp>\u003Cp>我以前就踩過這種雷：先把 agent 寫好，最後才發現工具在內網，然後整個專案開始補 subnet、補 ingress、補權限，補到大家都想裝死。這類問題不是 \u003Ca href=\"\u002Fnews\u002F5-model-config-tips-for-claude-code-users-zh\">code\u003C\u002Fa> 層可以救的，順序錯了就是錯了。\u003C\u002Fp>\u003Cp>實操寫法很直接：\u003C\u002Fp>\u003Cul>\u003Cli>公網 MCP：直接用可公開存取的 URL。\u003C\u002Fli>\u003Cli>私網 MCP：先定好 Standard Agent Setup 和網路隔離。\u003C\u002Fli>\u003Cli>先決定 endpoint 類型，再寫 agent，不要反過來。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>如果你在企業環境，我會建議先把網路模板跑起來，再把 agent 接上去。順序顛倒，後面只會一直補洞。\u003C\u002Fp>\u003Ch2>Toolbox 才是我想要的「工具收斂層」\u003C\u002Fh2>\u003Cp>Foundry Toolboxes 這個設計，我是真的有點點頭。它不是單一工具，而是把多個工具包成一個 MCP-compatible endpoint，裡面可以放 MCP server、OpenAPI tools、search、file tools，甚至 agent-to-agent connection。也就是說，agent 對外只看見一個入口，後面那堆工具怎麼組，交給 Toolbox 管。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780848207130-0lbt.png\" alt=\"Foundry MCP 把工具收斂成一個端點\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cblockquote>Foundry Toolboxes let you bundle multiple tools into a single MCP-compatible endpoint.\u003C\u002Fblockquote>\u003Cp>翻譯一下就是：你不用讓每個 agent 都知道每個工具的存在。Toolbox 變成中介層，把工具 sprawl 收起來。今天要換搜尋後端、明天要加內部 API、後天要拔掉一個舊服務，都可以在 Toolbox 這層處理，不用動每個 agent 定義。\u003C\u002Fp>\u003Cp>我碰過最煩的狀況，就是三個團隊做同一類 agent，卻各自接五個工具，結果 auth 方法不一樣、endpoint 不一樣、工具名稱也不一樣。最後沒人在乎 agent 做得多好，大家只想知道「到底哪個版本能上線」。Toolbox 的價值就在這裡：把共用工具集中管理，減少每個 agent 自己長出一套工具世界。\u003C\u002Fp>\u003Cp>實操上我會這樣落地：\u003C\u002Fp>\u003Cul>\u003Cli>同一批共用工具，盡量集中到一個 Toolbox。\u003C\u002Fli>\u003Cli>agent 端只維持最薄的設定，不要把工具列表散在每個專案。\u003C\u002Fli>\u003Cli>如果組織裡有多個 agent，先問能不能共用一個 Toolbox，而不是先寫三份設定。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Microsoft 也提到，只要 runtime 能吃 MCP server，通常也能吃 Toolbox。這點對 \u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Ffoundry\u002Fagents\u002F\">Foundry Agent Service\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fagent-framework\">Microsoft Agent Framework\u003C\u002Fa> 這類 client 特別有用，因為你不用每個地方都重配一次工具。\u003C\u002Fp>\u003Ch2>Auth 不該躺在 prompt 或 source code 裡\u003C\u002Fh2>\u003Cp>這篇對授權的態度我很認同，因為它很務實：很多 MCP server 需要 auth，而 Foundry Agent Service 應該把這些資訊放在 project connection 裡，不要硬寫在程式碼。這件事看起來像常識，但很多團隊就是會把 \u003Ca href=\"\u002Ftag\u002Ftoken\">token\u003C\u002Fa>、key、header 一路塞進 repo，然後再假裝自己有做安全。\u003C\u002Fp>\u003Cblockquote>Use a project connection to store authentication details instead of hard-coding credentials in your app.\u003C\u002Fblockquote>\u003Cp>翻譯一下就是：agent 的身份跟工具的身份要分開。agent 用自己的身分去跟 Foundry 溝通；工具要用的憑證，放在 connection 或 Toolbox 管理，不要混成一坨。Microsoft 也列了幾種常見方式，像 key-based auth、Microsoft Entra、OAuth identity passthrough，這些都比你自己手刻 token 字串穩得多。\u003C\u002Fp>\u003Cp>我自己最討厭的是那種「先 demo 再說」的 auth 寫法。demo 跑得動不代表可維護，尤其當 token 失效、權限變動、或不同服務要不同驗證方式時，你就會開始在一堆 prompt 和 config 裡找答案。那種感覺很像在垃圾堆裡找鑰匙。\u003C\u002Fp>\u003Cp>實操寫法：\u003C\u002Fp>\u003Cul>\u003Cli>API key、bearer token 一律放 project connection。\u003C\u002Fli>\u003Cli>能用 Microsoft Entra 就別自己發明一套驗證流程。\u003C\u002Fli>\u003Cli>多工具共用同一邊界時，優先讓 Toolbox 管 credential injection。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>我會把規則寫死成一句話：agent 只負責證明自己是誰，工具連線的憑證不要進 source code。這樣你後面才有辦法換服務、換金鑰、換權限，不會整個專案一起爆。\u003C\u002Fp>\u003Ch2>Approval 不是裝飾，是安全閘門\u003C\u002Fh2>\u003Cp>Microsoft 在 approval 這段講得很直白，這也是我覺得最該被照抄的地方。他們建議用 \u003Ccode>allowed_tools\u003C\u002Fcode> 做白名單，然後對高風險操作要求 approval，尤其是會寫資料、改資源、或造成外部副作用的工具。這不是流程美化，這是防止 agent 幹蠢事。\u003C\u002Fp>\u003Cblockquote>Require approval for high-risk operations, especially tools that write data or change resources.\u003C\u002Fblockquote>\u003Cp>翻譯一下就是：工具呼叫不能默默在背景跑掉。我要看到工具名稱、參數、要做\u003Ca href=\"\u002Fnews\u002Fwhy-reid-hoffman-leaving-microsoft-board-matters-zh\">什麼\u003C\u002Fa>，才會按同意。Microsoft 也明講要在批准前檢查 tool name 跟 arguments，並且把 approval 和 tool call 記錄下來，方便稽核跟除錯。這才像真的在做系統，不是做魔術。\u003C\u002Fp>\u003Cp>我以前看過太多 demo，都是「看，agent 自己就把東西改好了」。聽起來很爽，直到它把測試資料刪掉、把錯的 ticket 關掉、或對外送出不該送的請求。你如果真的要讓 agent 動到 state，就不要把 approval 當成可有可無的選項。\u003C\u002Fp>\u003Cp>實操上我會這樣設計：\u003C\u002Fp>\u003Cul>\u003Cli>先用 \u003Ccode>allowed_tools\u003C\u002Fcode> 限制工具範圍。\u003C\u002Fli>\u003Cli>凡是 write、delete、update、external side effect，一律要求 approval。\u003C\u002Fli>\u003Cli>approval 畫面要顯示工具名與參數，不要只顯示一段模糊描述。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>我自己的底線很簡單：會改狀態的工具，不自動批准。真的要自動化，也要先有明確的風險分級，不然就是在等事故。\u003C\u002Fp>\u003Ch2>Python sample 其實是在示範完整生命週期\u003C\u002Fh2>\u003Cp>這篇的 Python 範例不只是「怎麼連上去」而已，它其實把整條流程都畫出來了：建立 \u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fpython\u002Fapi\u002Fazure-ai-projects\u002Fazure.ai.projects.aiprojectclient\">AIProjectClient\u003C\u002Fa>、建立 \u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fpython\u002Fapi\u002Fazure-ai-projects\u002Fazure.ai.projects.models.mcptool\">MCPTool\u003C\u002Fa>、設定 server label 與 URL、把 \u003Ccode>require_approval=\"always\"\u003C\u002Fcode> 打開，還把 project connection ID 接進去。後面還有建立 agent、開對話、處理 approval request、最後清掉版本。\u003C\u002Fp>\u003Cblockquote>\u003Cpre>\u003Ccode>tool = MCPTool(\n    server_label=\"api-specs\",\n    server_url=\"https:\u002F\u002Fapi.githubcopilot.com\u002Fmcp\",\n    require_approval=\"always\",\n    project_connection_id=MCP_CONNECTION_NAME,\n)\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fblockquote>\u003Cp>翻譯一下就是：這不是只示範「能不能連」，而是把 approval turn、狀態交接、資源清理都一起演給你看。這很重要，因為 MCP 真正麻煩的地方從來不是第一個 request，而是第二輪怎麼審、怎麼回、怎麼收尾。\u003C\u002Fp>\u003Cp>我自己測 agent tool flow 時最常遇到的問題，就是第一輪看起來都很漂亮，第二輪才開始暴露出 tool call 內容不透明、approval request 結構不清楚、或 cleanup 沒做乾淨。這種問題不先看 sample 很容易踩。\u003C\u002Fp>\u003Cp>實操寫法：先照 sample 跑通，再把它縮成你的真實需求。就算工具現在是 read-only，我也會保留 approval loop，因為 read-only 很常在下一版變成 write-capable。你現在省掉的那個流程，之後通常要加回來。\u003C\u002Fp>\u003Ch2>第三方 MCP server 不是免費午餐\u003C\u002Fh2>\u003Cp>Microsoft 對非 Microsoft 的 MCP server 說得很直接：你要遵守對方的條款、資料處理方式和收費規則，而且他們不會幫你驗證那些 server。這段雖然不帥，但很誠實。我反而比較喜歡這種講法，因為它逼你承認一件事：每個遠端 MCP server 都是 dependency，不是神諭。\u003C\u002Fp>\u003Cp>翻譯一下就是：你接一個遠端工具，不只是接 API 而已，你是在接受它的信任邊界、log 方式、資料保留、以及它背後那堆你未必看得到的流程。Microsoft 也提到 custom headers 可以傳給遠端 MCP server，這很方便，但同時也是最容易把秘密搞漏的地方。\u003C\u002Fp>\u003Cp>實操上我會給每個 MCP server 一份檢查清單：\u003C\u002Fp>\u003Cul>\u003Cli>誰擁有這個 server。\u003C\u002Fli>\u003Cli>它用什麼 auth。\u003C\u002Fli>\u003Cli>會看到哪些資料。\u003C\u002Fli>\u003Cli>log 存哪裡、留多久。\u003C\u002Fli>\u003Cli>是公開入口還是代理層。\u003C\u002Fli>\u003Cli>哪些操作需要 approval。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>如果這些答案你一個都講不清楚，那就先不要把它接進 agent。工具不是越多越好，能被你管住才重要。\u003C\u002Fp>\u003Ch2>可抄的模板\u003C\u002Fh2>\u003Cpre>\u003Ccode># Foundry MCP 工具接法模板（我會這樣落地）\n\n## 1) 先選 endpoint 類型\n- Public MCP server：用可公開存取的 URL。\n- Private MCP server：先把 Standard Agent Setup、private networking、dedicated MCP subnet 搞定。\n\n## 2) 把 auth 放進 project connection\n不要把 key、token、header 寫進 source code。\n- API key\n- Bearer token\n- Microsoft Entra \u002F OAuth（如果服務支援）\n\n## 3) 定義 MCP tool\nPython 範例：\n\nfrom azure.identity import DefaultAzureCredential\nfrom azure.ai.projects import AIProjectClient\nfrom azure.ai.projects.models import PromptAgentDefinition, MCPTool\n\nPROJECT_ENDPOINT = \"https:\u002F\u002Fyour-resource.ai.azure.com\u002Fapi\u002Fprojects\u002Fyour-project\"\nMCP_CONNECTION_NAME = \"your-mcp-connection\"\n\nproject = AIProjectClient(\n    endpoint=PROJECT_ENDPOINT,\n    credential=DefaultAzureCredential(),\n)\n\nmcp_tool = MCPTool(\n    server_label=\"your-server-label\",\n    server_url=\"https:\u002F\u002Fyour-mcp-server.example.com\u002Fmcp\",\n    require_approval=\"always\",\n    project_connection_id=MCP_CONNECTION_NAME,\n)\n\nagent = project.agents.create_version(\n    agent_name=\"MyAgent\",\n    definition=PromptAgentDefinition(\n        model=\"gpt-5-mini\",\n        instructions=\"Use MCP tools as needed.\",\n        tools=[mcp_tool],\n    ),\n)\n\n## 4) 先鎖工具，再談自動化\n- 用 allowed_tools 限制 surface area。\n- 寫入、刪除、改資源，一律要求 approval。\n- approval 畫面要顯示 tool name 和 arguments。\n- 全部記錄 log，方便稽核。\n\n## 5) approval loop 不要偷懶\n當 agent 要求 approval 時：\n- 檢查 server_label\n- 檢查 tool name\n- 檢查 arguments\n- 決定 approve \u002F deny\n- 把 approval response 回傳\n\n## 6) 多個 agent 共用工具時，優先用 Toolbox\n把共用工具集中到一個 Foundry Toolbox：\n- 集中 auth\n- 集中 policy\n- 減少每個 agent 的設定漂移\n\n## 7) 每加一個 MCP server，就跑一次審查\n確認：\n- owner\n- auth method\n- data exposure\n- logging \u002F retention\n- network exposure\n- approval policy\n- 是否可信 host，還是代理層\n\n## 8) 最小 approval loop\n\nfor item in response.output:\n    if item.type == \"mcp_approval_request\" and item.id:\n        print(\"Server:\", item.server_label)\n        print(\"Tool:\", getattr(item, 'name', ''))\n        print(\"Arguments:\", getattr(item, 'arguments', None))\n        should_approve = input(\"Approve? (y\u002FN): \").strip().lower() == \"y\"\n        # send McpApprovalResponse back to continue\n\n## 9) 我的預設規則\n- 會改狀態的工具，不自動批准。\n- 多團隊共用的工具，丟進 Toolbox。\n- 第三方 server，先看 contract 再接。\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>這版我自己會直接丟給團隊。它把 agent code 保持乾淨，把 auth 從 source code 拿掉，也把 approval 放回 app 層，不讓工具呼叫偷偷變成背景魔法。\u003C\u002Fp>\u003Cp>原始來源是 Microsoft Learn 的 \u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Ffoundry\u002Fagents\u002Fhow-to\u002Ftools\u002Fmodel-context-protocol\">Connect to MCP Server Endpoints for agents\u003C\u002Fa>，另外我也參考了 \u003Ca href=\"https:\u002F\u002Fmodelcontextprotocol.io\u002F\">MCP 官方網站\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Ffoundry\u002Fagents\u002F\">Foundry Agent Service\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fagent-framework\">Microsoft Agent Framework\u003C\u002Fa> 與 \u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fpython\u002Fapi\u002Fazure-identity\u002Fazure.identity.defaultazurecredential\">DefaultAzureCredential\u003C\u002Fa> 文件。上面這篇的拆解、順序整理和實戰建議是我自己的，模板則是根據官方 sample 改成我會真的拿去用的版本。\u003C\u002Fp>","我拆 Foundry 的 MCP 接法、Toolboxes、授權與 approval 流程，最後給你一份可直接貼進專案的 Python 模板。","learn.microsoft.com","https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Ffoundry\u002Fagents\u002Fhow-to\u002Ftools\u002Fmodel-context-protocol",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780848206168-1rf3.png","tools","zh","393e4df1-4ee8-4581-b1b2-dbe7d3322ee9",[17,18,19,20,21,22],"Foundry","MCP","Toolbox","approval","Azure AI","agent framework",[24,25,26],"MCP 把外部工具收斂成標準端點，少掉一堆客製整合。","Toolbox 適合拿來集中共用工具、auth 和 policy。","approval 與 allowed_tools 應該是 agent 設計的一部分，不是附加功能。",2,"2026-06-07T16:02:57.749167+00:00","2026-06-07T16:02:57.73+00:00","ddbe17bf-4560-43f7-af76-3e7d6e08e601",{"tags":32,"relatedLang":42,"relatedPosts":46},[33,35,37,38,40],{"name":21,"slug":34},"azure-ai",{"name":18,"slug":36},"mcp",{"name":20,"slug":20},{"name":19,"slug":39},"toolbox",{"name":17,"slug":41},"foundry",{"id":15,"slug":43,"title":44,"language":45},"foundry-mcp-remote-tools-agent-endpoint-en","Foundry MCP turns remote tools into one agent endpoint","en",[47,53,59,65,71,77],{"id":48,"slug":49,"title":50,"cover_image":51,"image_url":51,"created_at":52,"category":13},"4130de62-a037-464c-883d-5fbf8dd75789","open-source-rag-stack-build-plan-zh","開源 RAG 堆疊把混亂變計畫","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780872500382-6ang.png","2026-06-07T22:47:55.345265+00:00",{"id":54,"slug":55,"title":56,"cover_image":57,"image_url":57,"created_at":58,"category":13},"4f0b90ab-f554-474e-9efd-ecec55257302","github-rag-production-list-battle-tested-tools-zh","GitHub 49 星 RAG 生產清單","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780870666920-t0hc.png","2026-06-07T22:17:20.22268+00:00",{"id":60,"slug":61,"title":62,"cover_image":63,"image_url":63,"created_at":64,"category":13},"698981d2-c844-4ee0-ba64-cc9a328deb3c","how-to-build-akiraos-wasm-apps-for-zephyr-zh","怎麼做 AkiraOS WASM 應用","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780862577242-1x6z.png","2026-06-07T20:02:24.454909+00:00",{"id":66,"slug":67,"title":68,"cover_image":69,"image_url":69,"created_at":70,"category":13},"cf222858-e879-4aef-9dab-1a7c80871f27","leverage-meaning-no-more-buzzword-mistakes-zh","Leverage 讓你少講廢話","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780804995915-2q93.png","2026-06-07T04:02:47.319705+00:00",{"id":72,"slug":73,"title":74,"cover_image":75,"image_url":75,"created_at":76,"category":13},"34162763-ffe3-416d-a719-e450ba87ac3d","llm-leaderboard-2026-300-models-ranked-zh","2026 LLM 排行榜：309 模型怎麼選","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780776191145-786j.png","2026-06-06T20:02:36.847112+00:00",{"id":78,"slug":79,"title":80,"cover_image":81,"image_url":81,"created_at":82,"category":13},"09c2902c-97a8-433c-94de-874a7f55d2ff","llama-benchy-api-benchmark-zh","llama-benchy 把 API 也納入基準測試","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780775303246-184z.png","2026-06-06T19:47:53.968325+00:00",[84,89,94,99,104,109,114,119,124,129],{"id":85,"slug":86,"title":87,"created_at":88},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":90,"slug":91,"title":92,"created_at":93},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":95,"slug":96,"title":97,"created_at":98},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":100,"slug":101,"title":102,"created_at":103},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":105,"slug":106,"title":107,"created_at":108},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":110,"slug":111,"title":112,"created_at":113},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":115,"slug":116,"title":117,"created_at":118},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":120,"slug":121,"title":122,"created_at":123},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":125,"slug":126,"title":127,"created_at":128},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":130,"slug":131,"title":132,"created_at":133},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]