[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-aspire-microsoft-agent-framework-app-graph-zh":3,"article-related-aspire-microsoft-agent-framework-app-graph-zh":34,"series-ai-agent-06a33326-5420-4e1d-99ff-233939652a44":87},{"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":25,"views":30,"created_at":31,"published_at":32,"topic_cluster_id":33},"06a33326-5420-4e1d-99ff-233939652a44","aspire-microsoft-agent-framework-app-graph-zh","Aspire 把 Agent 圖譜收進一個 AppHost","\u003Cp data-speakable=\"summary\">Aspire 13.4 把多代理 App 收進同一個圖譜，讓聊天、語音、專家代理和資料服務一起跑、一起追蹤。\u003C\u002Fp>\u003Cp>說真的，這篇重點很明確。\u003Ca href=\"https:\u002F\u002Fdevblogs.microsoft.com\u002Faspire\u002F\" target=\"_blank\" rel=\"noopener\">Aspire\u003C\u002Fa> 不再只是啟動服務的工具。它現在更像整個系統的藍圖。\u003C\u002Fp>\u003Cp>在 \u003Ca href=\"\u002Ftag\u002Fmicrosoft\">Microsoft\u003C\u002Fa> 的 AlpineAI 範例裡，聊天、語音、專家代理、Foundry 資源，還有 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-cosmos-emulator\" target=\"_blank\" rel=\"noopener\">Cosmos DB Emulator\u003C\u002Fa> 都放進同一個 AppHost。版本是 13.4，發布日是 2026 年 6 月 9 日。這些數字很直白，意思也很直白：多代理系統開始走向可\u003Ca href=\"\u002Fnews\u002Ffive-patching-steps-distributed-estates-zh\">管理\u003C\u002Fa>，而不是靠啟動腳本硬撐。\u003C\u002Fp>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>項目\u003C\u002Fth>\u003Cth>Microsoft 展示內容\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>Aspire 版本\u003C\u002Ftd>\u003Ctd>13.4\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>發布日期\u003C\u002Ftd>\u003Ctd>2026-06-09\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>模型部署數\u003C\u002Ftd>\u003Ctd>2\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>專家代理數\u003C\u002Ftd>\u003Ctd>5\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>使用者面向的 advisor 體驗數\u003C\u002Ftd>\u003Ctd>2\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2>一個 AppHost 就是整張圖\u003C\u002Fh2>\u003Cp>這次最有意思的地方，是 AppHost 的角色變了。它不只是啟服務而已。它開始描述整個 app graph，包括模型部署、prompt \u003Ca href=\"\u002Ftag\u002Fagent\">agent\u003C\u002Fa>、hosted agent、Python 服務、Go 服務，還有它們依賴的基礎設施。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781353076983-n0ho.png\" alt=\"Aspire 把 Agent 圖譜收進一個 AppHost\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>講白了，就是把原本散掉的東西收回來。你不用再靠腦內記憶去拼湊「誰先起、誰連誰、誰吃哪個資料庫」。Aspire 直接把依賴關係寫進去。\u003C\u002Fp>\u003Cp>在 AlpineAI 範例裡，這張圖包含前端、資料產生器、聊天 advisor、語音 advisor，還有多個專家代理。Aspire 會照順序啟動，建立引用關係，然後把實際跑起來的東西攤給你看。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cstrong>Foundry account 和 project\u003C\u002Fstrong> 管 agent 資源。\u003C\u002Fli>\u003Cli>\u003Cstrong>Model deployments\u003C\u002Fstrong> 分開一般聊天和 realtime 語音。\u003C\u002Fli>\u003Cli>\u003Cstrong>App references\u003C\u002Fstrong> 連結代理、資料和其他服務。\u003C\u002Fli>\u003Cli>\u003Cstrong>Azure Container Apps\u003C\u002Fstrong> 把執行環境講清楚。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>這種做法比「先把 \u003Ca href=\"\u002Ftag\u002Fapi\">API\u003C\u002Fa> 起來再說」實際太多。因為一旦加上 voice、tool call、live telemetry，單靠手動啟動很容易炸。你今天記得住，明天就忘了。\u003C\u002Fp>\u003Cp>Microsoft 也把不同執行模型放在同一份定義裡。Foundry 可以放 prompt agent。自家程式也能包成 hosted agent。兩者不是同一種東西，但 Aspire 把它們當成同一個系統的一部分。\u003C\u002Fp>\u003Ch2>Advisor 才是 orchestration 層\u003C\u002Fh2>\u003Cp>聊天 advisor 才是整個體驗的腦袋。它接收使用者問題，判斷要叫哪些專家代理，再把答案整合成一段回覆。這比把所有問題丟給一個大模型硬猜，乾淨很多。\u003C\u002Fp>\u003Cp>Tommaso Stocchi 在文章裡寫得很清楚。這個範例像一個真實的滑雪場櫃台。它能回答旅客問題、讀即時 resort telemetry、轉派任務給專家代理、查網路上的一般滑雪知識，還能同時支援聊天和語音。\u003C\u002Fp>\u003Cblockquote>“The important part is not that the demo is about skiing. The important part is how Aspire turns a complex multi-agent system into one application graph you can run, observe, and publish.”\u003C\u002Fblockquote>\u003Cp>這句話很到位。重點真的不是滑雪。重點是系統一大之後，還能不能看懂它、跑它、修它。\u003C\u002Fp>\u003Cp>在這個設計裡，使用者只跟 advisor 對話。weather、lift traffic、safety、ski coach 和 web research 都\u003Ca href=\"\u002Fnews\u002Fmica-turns-web3-compliance-into-product-design-zh\">變成\u003C\u002Fa>工具。每個工具只做一件事，這樣 trace 才看得懂，問題也比較好抓。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cstrong>Weather agent\u003C\u002Fstrong> 管即時天氣和預報。\u003C\u002Fli>\u003Cli>\u003Cstrong>Lift traffic agent\u003C\u002Fstrong> 管排隊時間和纜車狀態。\u003C\u002Fli>\u003Cli>\u003Cstrong>Safety agent\u003C\u002Fstrong> 管封閉路段和坡面風險。\u003C\u002Fli>\u003Cli>\u003Cstrong>Ski coach agent\u003C\u002Fstrong> 把程度轉成建議。\u003C\u002Fli>\u003Cli>\u003Cstrong>Ski researcher\u003C\u002Fstrong> 用 web search 回答一般滑雪問題。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>語音不是另一個 App\u003C\u002Fh2>\u003Cp>語音 advisor 的做法很聰明。它不是再做一套獨立系統，而是走同一組專家代理，只是 transport 和 runtime 不同。它是 .NET WebSocket service，接瀏覽器音訊，再串 \u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fai-services\u002Fvoice-live\u002F\" target=\"_blank\" rel=\"noopener\">Azure AI Voice Live\u003C\u002Fa>。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781353075642-vqrp.png\" alt=\"Aspire 把 Agent 圖譜收進一個 AppHost\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>這種設計很務實。很多團隊會把 voice 和 chat 拆成兩個世界。結果就是行為不一致，prompt 不一致，debug 也不一致。最後大家只好互相怪來怪去。\u003C\u002Fp>\u003Cp>Microsoft 在 Foundry 裡也把 realtime 和一般聊天模型分開。範例裡，一個 deployment 給標準對話，另一個給語音即時互動。這個切法合理，因為 latency、streaming 和 prompt tuning 的需求本來就不同。\u003C\u002Fp>\u003Cp>對開發者來說，真正省事的是啟動流程。Aspire 可以把前端、語音服務、advisor、資料產生器一起起來。你不用自己寫一坨 launch script，還要怕漏掉某個環節。\u003C\u002Fp>\u003Ch2>數字一看，架構就清楚了\u003C\u002Fh2>\u003Cp>這篇文章給了不少具體數字。Aspire 是 13.4。發文日是 2026 年 6 月 9 日。範例裡有 2 個 model deployments、5 個 specialist agents、2 個使用者面向的 advisor 體驗。這不是空泛描述，是真的有東西在協調。\u003C\u002Fp>\u003Cp>如果你拿這些數字去比，就會更有感。單一 advisor 只是一個 MAF agent，卻要 fan out 到 5 個工具。語音 advisor 也是另一條服務路徑，但它還是靠同一個 Foundry project 和同一份即時資料。資料產生器則是 Go 寫的，專門餵 telemetry。\u003C\u002Fp>\u003Cp>這種多語言、多 runtime 的混搭，Aspire 沒有假裝不存在。它直接把事實攤開。這點我覺得比很多平台誠實多了。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cstrong>Go\u003C\u002Fstrong> 負責資料產生器。\u003C\u002Fli>\u003Cli>\u003Cstrong>Python\u003C\u002Fstrong> 負責 weather、safety、ski coach agents。\u003C\u002Fli>\u003Cli>\u003Cstrong>.NET\u003C\u002Fstrong> 負責 advisor、lift traffic、voice service。\u003C\u002Fli>\u003Cli>\u003Cstrong>A2A\u003C\u002Fstrong> 讓專家代理把能力包成工具。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>還有一個很重要的點，是觀測性。文章提到 OpenTelemetry 已經接進 advisor，還有敏感資料開關。這代表 Microsoft 預設你要 trace agent 行為，不是只把它跑起來就算了。\u003C\u002Fp>\u003Cp>當 advisor 決定要不要叫 weather、lift traffic、safety 或 ski coach 時，trace 應該說得出理由。沒有這個，除錯就會變成猜謎。尤其一個模型呼叫後面又串好幾個工具時，猜錯一次就很痛。\u003C\u002Fp>\u003Ch2>這種結構，不只適合滑雪場\u003C\u002Fh2>\u003Cp>AlpineAI 雖然是 demo，但架構很容易對到真實產品。客服助理、現場營運儀表板、旅遊規劃器、內部 IT agent，很多都會長成同一種樣子：一個 orchestrator，加上幾個窄職責的專家，再接一個即時資料源。\u003C\u002Fp>\u003Cp>這裡也看得出平台和自訂程式的分工。Foundry 管 hosted prompt agent 和 model 資源。自家程式管 domain logic、orchestration，還有需要自己依賴的服務。Aspire 把兩者放在一起，但不硬把它們混成同一件事。\u003C\u002Fp>\u003Cp>這個分法很重要。它避免兩種常見災難。第一種是把所有工作硬塞進一個大 prompt。第二種是把 agent 拆得滿地都是，repo 多到你自己都找不到。\u003C\u002Fp>\u003Cp>我覺得接下來真正的問題，不是 agent 能不能互相講話。問題是團隊願意把 graph 維持多大，才需要更強的 policy、測試和 trace 分析。現在這個範例給的答案很務實：先用一張圖，讓專家保持窄，讓 advisor 當唯一入口。\u003C\u002Fp>\u003Ch2>結語：先把系統畫清楚，再談聰明\u003C\u002Fh2>\u003Cp>這次 Aspire 的訊號很明白。它想處理的不是單一 API，而是整個 agentic app 的結構。對\u003Ca href=\"\u002Ftag\u002F台灣開發者\">台灣開發者\u003C\u002Fa>來說，這很實用，因為真正難的通常不是模型，而是系統怎麼管。\u003C\u002Fp>\u003Cp>如果你也在做多代理應用，我會建議先問一件事：你的 AppHost 能不能一眼看出誰依賴誰。能看懂，才有辦法 trace、測試、\u003Ca href=\"\u002Fnews\u002Ftexas-design-system-37-components-state-websites-zh\">上線\u003C\u002Fa>。看不懂，後面再多模型都只是堆複雜度。\u003C\u002Fp>\u003C\u002Fp>","Aspire 13.4 把 Microsoft Agent Framework、Foundry、語音、聊天和 Cosmos DB Emulator 收進同一個 App graph，讓多代理系統能一起啟動、追蹤和除錯。","devblogs.microsoft.com","https:\u002F\u002Fdevblogs.microsoft.com\u002Faspire\u002Fbuilding-distributed-multi-agent-systems-with-aspire-and-microsoft-agent-framework\u002F",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781353076983-n0ho.png","ai-agent","zh","50d67ff2-698e-4ac1-9b5f-9233550bdc00",[17,18,19,20,21,22,23,24],"Aspire","Microsoft Agent Framework","Microsoft Foundry","Cosmos DB Emulator","AppHost","多代理系統","OpenTelemetry","Azure Container Apps",[26,27,28,29],"Aspire 13.4 把多代理系統收進同一個 App graph，啟動和追蹤都更直接。","聊天 advisor 當 orchestration 層，專家代理只做窄職責。","語音和聊天共用同一組專家，但走不同 runtime 與模型部署。","OpenTelemetry 和依賴圖讓 agent 行為可觀測，不再只能靠猜。",1,"2026-06-13T12:17:30.314245+00:00","2026-06-13T12:17:30.29+00:00","e3b68196-9e64-4c18-a3b6-a73e73bfb367",{"tags":35,"relatedLang":46,"relatedPosts":50},[36,38,40,42,44],{"name":19,"slug":37},"microsoft-foundry",{"name":21,"slug":39},"apphost",{"name":17,"slug":41},"aspire",{"name":18,"slug":43},"microsoft-agent-framework",{"name":20,"slug":45},"cosmos-db-emulator",{"id":15,"slug":47,"title":48,"language":49},"aspire-microsoft-agent-framework-app-graph-en","Aspire ties Microsoft Agent Framework into one app graph","en",[51,57,63,69,75,81],{"id":52,"slug":53,"title":54,"cover_image":55,"image_url":55,"created_at":56,"category":13},"09e34016-bbc0-4313-b090-2dbfdd6cf96a","fine-tuning-slms-turns-enterprise-ai-practical-zh","SLM 微調把企業 AI 變可用","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781359406320-5jrq.png","2026-06-13T14:02:55.242488+00:00",{"id":58,"slug":59,"title":60,"cover_image":61,"image_url":61,"created_at":62,"category":13},"40cd5d8d-c9fc-4883-b978-f7f757c14488","fable-5-claude-code-like-coworker-zh","Fable 5 讓 Claude Code 更像真同事","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781324309029-2n7r.png","2026-06-13T04:18:00.6602+00:00",{"id":64,"slug":65,"title":66,"cover_image":67,"image_url":67,"created_at":68,"category":13},"5bff363a-295a-47d3-911b-411f5f45e2bb","fine-tuning-methods-sft-lora-dpo-rlhf-grpo-zh","SFT、LoRA、DPO、RLHF、GRPO 選型指南","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781262197359-7rgb.png","2026-06-12T11:02:33.190744+00:00",{"id":70,"slug":71,"title":72,"cover_image":73,"image_url":73,"created_at":74,"category":13},"9a720eb3-d88e-4ee9-bb59-7e02f0359fc7","mistral-vibe-cli-agent-still-matters-zh","Mistral Vibe 證明 CLI 代理仍然重要","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781248675431-k8cj.png","2026-06-12T07:17:21.512085+00:00",{"id":76,"slug":77,"title":78,"cover_image":79,"image_url":79,"created_at":80,"category":13},"3f5cef32-c57b-4355-80f5-09af8a117d96","kimi-code-cli-setup-pricing-workflow-guide-zh","Kimi Code CLI 安裝、定價與工作流","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781161398225-58ea.png","2026-06-11T07:02:27.830955+00:00",{"id":82,"slug":83,"title":84,"cover_image":85,"image_url":85,"created_at":86,"category":13},"fda45923-6a5e-4f58-b8ac-e28e30fdae66","windows-agent-runtime-not-human-desktop-zh","Windows 正在變成 agent runtime，而不是人類桌面","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781147870390-3anp.png","2026-06-11T03:17:17.184885+00:00",[88,93,98,103,108,113,118,123,128,133],{"id":89,"slug":90,"title":91,"created_at":92},"4ae1e197-1d3d-4233-8733-eafe9cb6438b","claude-now-uses-your-pc-to-finish-tasks-zh","Claude 開始幫你操作電腦","2026-03-26T07:20:48.457387+00:00",{"id":94,"slug":95,"title":96,"created_at":97},"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":99,"slug":100,"title":101,"created_at":102},"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":104,"slug":105,"title":106,"created_at":107},"95c9053b-e3f4-4cb5-aace-5c54f4c9e044","claude-code-controls-mac-desktop-zh","Claude Code 也能操控 Mac 了","2026-03-28T03:01:58.58121+00:00",{"id":109,"slug":110,"title":111,"created_at":112},"dc58e153-e3a8-4c06-9b96-1aa64eabbf5f","cloudflare-100x-faster-ai-agent-sandbox-zh","Cloudflare 的 AI 沙箱跑超快","2026-03-28T03:09:44.142236+00:00",{"id":114,"slug":115,"title":116,"created_at":117},"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":119,"slug":120,"title":121,"created_at":122},"7379b422-576e-45df-ad5a-d57a0d9dd467","openai-plan-automated-ai-researcher-zh","OpenAI 想做自動化 AI 研究員","2026-03-28T03:17:42.090548+00:00",{"id":124,"slug":125,"title":126,"created_at":127},"48c9889e-86df-450b-a356-e4a4b7c83c5b","harness-engineering-ai-agent-reliability-2026-zh","駕馭工程：從「馬具」到「作業系統」，AI Agent 可靠性的終極密碼","2026-03-31T06:42:53.556721+00:00",{"id":129,"slug":130,"title":131,"created_at":132},"96d8e8c8-1edd-475d-9145-b1e7a1b02b65","mcp-explained-from-prompts-to-production-zh","MCP 怎麼把提示詞變工作流","2026-04-01T09:24:39.321274+00:00",{"id":134,"slug":135,"title":136,"created_at":137},"f2ca7720-b471-4ce5-9336-2a9ac2a876fd","amazon-bedrock-agents-multi-agent-workflows-zh","Amazon Bedrock Agents 進入多代理工作流","2026-04-01T09:30:29.945429+00:00"]