多智能體微服務(wù)實(shí)戰(zhàn)(1/4):康威定律在 AI 時(shí)代的應(yīng)用
從業(yè)務(wù)痛點(diǎn)出發(fā) - 為什么需要多智能體協(xié)作?
引言
想象這樣一個(gè)場景:
周一早上9點(diǎn),某制造企業(yè)的項(xiàng)目經(jīng)理李明收到一個(gè)緊急任務(wù)——公司決定開發(fā)一套新的ERP系統(tǒng),預(yù)算300萬元,需要12個(gè)月完成。李明深吸一口氣,開始了他漫長的一天:
- 9:30-10:30:找技術(shù)總監(jiān)討論技術(shù)選型,是用微服務(wù)還是單體架構(gòu)?用.NET還是Java?
- 10:30-11:30:跑到HR部門,詢問有沒有足夠的開發(fā)人員,現(xiàn)有團(tuán)隊(duì)的技能如何?
- 11:30-12:00:給財(cái)務(wù)部門發(fā)郵件,詢問300萬預(yù)算是否合理,能否調(diào)整?
- 14:00-15:00:約QA經(jīng)理,討論項(xiàng)目風(fēng)險(xiǎn)和質(zhì)量保證計(jì)劃
- 15:30-16:30:查看公司的項(xiàng)目管理規(guī)范,制定初步的時(shí)間表
到下班時(shí),李明勉強(qiáng)整理出一份粗略的項(xiàng)目計(jì)劃。第二天,各部門的反饋陸續(xù)到來,又是一輪修改和協(xié)調(diào)...
這個(gè)場景熟悉嗎?
在現(xiàn)代企業(yè)中,項(xiàng)目管理從來不是一個(gè)人的戰(zhàn)斗。它需要跨越技術(shù)、人力、財(cái)務(wù)、質(zhì)量、進(jìn)度等多個(gè)專業(yè)領(lǐng)域的深度協(xié)作。然而,傳統(tǒng)的項(xiàng)目管理方式存在諸多痛點(diǎn):
- 信息孤島:各部門的專業(yè)知識(shí)和數(shù)據(jù)分散在不同系統(tǒng)中
- 溝通成本高:需要大量的會(huì)議、郵件、即時(shí)通訊
- 響應(yīng)速度慢:從提出問題到獲得專業(yè)反饋,通常需要數(shù)小時(shí)甚至數(shù)天
- 標(biāo)準(zhǔn)不一致:不同部門給出的建議可能相互沖突,缺乏統(tǒng)一的決策框架
那么,AI能否幫助我們解決這些問題?答案是肯定的——但不是通過一個(gè)"超級(jí)AI助手",而是通過多智能體協(xié)作系統(tǒng)。
一、為什么單一AI助手不夠用?
1.1 通用vs專業(yè):魚和熊掌不可兼得
近年來,ChatGPT、Claude等大語言模型展現(xiàn)出了驚人的通用能力。很多企業(yè)嘗試直接使用這些通用模型來輔助項(xiàng)目管理,但很快就發(fā)現(xiàn)了問題:
案例:某公司使用ChatGPT生成項(xiàng)目預(yù)算估算,結(jié)果發(fā)現(xiàn):
- 推薦的技術(shù)棧不符合公司的技術(shù)標(biāo)準(zhǔn)
- 人力成本估算脫離當(dāng)?shù)厥袌鰧?shí)際
- 風(fēng)險(xiǎn)評(píng)估過于寬泛,缺乏針對性
根本原因:通用模型缺乏對企業(yè)特定領(lǐng)域的深度理解。它不知道你們公司的:
- 技術(shù)規(guī)范和歷史技術(shù)債務(wù)
- 團(tuán)隊(duì)的技能矩陣和當(dāng)前工作負(fù)載
- 財(cái)務(wù)預(yù)算的審批流程和歷史數(shù)據(jù)
- 特定行業(yè)的合規(guī)要求和風(fēng)險(xiǎn)模式
1.2 單體vs分布:維護(hù)的噩夢
有人可能會(huì)想:那我們訓(xùn)練一個(gè)包含所有企業(yè)知識(shí)的"超級(jí)模型"不就行了?
理想很豐滿,現(xiàn)實(shí)很骨感:
單體超級(jí)AI助手的問題:
- 訓(xùn)練成本高:需要收集所有部門數(shù)據(jù)
- 更新困難:任何部門知識(shí)更新都要重訓(xùn)
- 權(quán)限混亂:如何控制不同部門的數(shù)據(jù)
- 責(zé)任不清:出錯(cuò)了是誰的問題
- 專業(yè)性下降:樣樣通則樣樣松
更重要的是,這種方式違背了企業(yè)的實(shí)際組織結(jié)構(gòu)。在真實(shí)世界中:
- 技術(shù)團(tuán)隊(duì)有自己的架構(gòu)審查委員會(huì)和技術(shù)標(biāo)準(zhǔn)
- HR部門有自己的HRIS系統(tǒng)和人才數(shù)據(jù)庫
- 財(cái)務(wù)部門有自己的ERP系統(tǒng)和成本核算規(guī)則
- QA團(tuán)隊(duì)有自己的測試規(guī)范和質(zhì)量門禁
這些專業(yè)領(lǐng)域的知識(shí)和系統(tǒng),由各自的團(tuán)隊(duì)維護(hù)和演進(jìn)。如果強(qiáng)行整合到一個(gè)單體AI中,不僅技術(shù)上復(fù)雜,組織上也不可行。
二、多智能體微服務(wù):讓專業(yè)的人做專業(yè)的事
2.1 核心理念:康威定律在AI時(shí)代的應(yīng)用
1968年,Melvin Conway提出了著名的康威定律:
"設(shè)計(jì)系統(tǒng)的架構(gòu)受限于產(chǎn)生這些設(shè)計(jì)的組織的溝通結(jié)構(gòu)。"
在傳統(tǒng)軟件工程中,這意味著:如果你的組織有5個(gè)團(tuán)隊(duì),那么你的系統(tǒng)架構(gòu)最終會(huì)演化成5個(gè)相對獨(dú)立的子系統(tǒng)。
在AI時(shí)代,這個(gè)定律依然適用:
每個(gè)部門維護(hù)自己的專業(yè)智能體,這樣做的好處是:
- 專業(yè)性:每個(gè)智能體專注于自己的領(lǐng)域,提供更精準(zhǔn)的分析
- 獨(dú)立性:各部門可以獨(dú)立迭代自己的智能體,不影響其他部門
- 責(zé)任清晰:出問題時(shí),清楚是哪個(gè)領(lǐng)域的問題
- 符合實(shí)際:與企業(yè)現(xiàn)有的組織結(jié)構(gòu)和流程自然契合
2.2 實(shí)際案例:AgentFrameworkAspire項(xiàng)目
我們開發(fā)了一個(gè)開源的多智能體微服務(wù)系統(tǒng) —— AgentFrameworkAspire,來驗(yàn)證這個(gè)理念。
系統(tǒng)架構(gòu)概覽
5個(gè)專業(yè)智能體的職責(zé)
-
Tech Agent(技術(shù)架構(gòu)智能體)
- 評(píng)估技術(shù)復(fù)雜度
- 推薦技術(shù)棧
- 識(shí)別技術(shù)風(fēng)險(xiǎn)
- 提供架構(gòu)模板
-
HR Agent(人力資源智能體)
- 評(píng)估團(tuán)隊(duì)能力
- 估算人力需求
- 計(jì)算人力成本
- 檢查團(tuán)隊(duì)可用性
-
Finance Agent(財(cái)務(wù)智能體)
- 驗(yàn)證預(yù)算合理性
- 查詢歷史成本數(shù)據(jù)
- 計(jì)算ROI
- 提供成本分解建議
-
QA Agent(質(zhì)量保證智能體)
- 識(shí)別項(xiàng)目風(fēng)險(xiǎn)
- 評(píng)估風(fēng)險(xiǎn)影響和概率
- 制定緩解策略
- 規(guī)劃監(jiān)控計(jì)劃
-
PMO Agent(項(xiàng)目管理辦公室智能體)
- 任務(wù)分解
- 依賴分析
- 資源匹配
- 時(shí)間優(yōu)化
一次實(shí)際對話示例
讓我們看一個(gè)真實(shí)的交互場景:
以下案例由gpt-4o-mini輸出,作為小參數(shù)模型,僅代表編排過后智能體的最低水平

三、技術(shù)實(shí)現(xiàn):三大標(biāo)準(zhǔn)協(xié)議
你可能會(huì)問:這么多智能體,它們之間怎么通信?如何確保互操作性?
這就是我們項(xiàng)目的技術(shù)亮點(diǎn)——使用了三大標(biāo)準(zhǔn)協(xié)議:
3.1 MCP協(xié)議:讓每個(gè)團(tuán)隊(duì)暴露專業(yè)工具
MCP (Model Context Protocol) 是一個(gè)開放標(biāo)準(zhǔn),讓任何服務(wù)都能以統(tǒng)一的方式暴露工具、資源和提示詞給AI模型。
在我們的項(xiàng)目中,每個(gè)專業(yè)服務(wù)都暴露了自己的MCP工具。例如,F(xiàn)inance服務(wù)的代碼:
// Finance/Program.cs - MCP工具定義
[McpServerToolType]
public class FinanceTools
{
[McpServerTool]
public Task<CallToolResult> ValidateBudget(
decimal amount,
string category,
string costCenter)
{
// 驗(yàn)證預(yù)算是否在可用范圍內(nèi)
var isValid = amount > 0 && amount < 1000000;
var availableBudget = 500000m;
var result = new
{
IsValid = isValid && amount <= availableBudget,
RequestedAmount = amount,
AvailableBudget = availableBudget,
Message = isValid && amount <= availableBudget
? "Budget validation passed"
: $"Requested {amount} exceeds available {availableBudget}"
};
return Task.FromResult(new CallToolResult
{
Content = [new TextContentBlock {
Text = System.Text.Json.JsonSerializer.Serialize(result)
}]
});
}
[McpServerTool]
public Task<CallToolResult> GetHistoricalCosts(
string projectType,
string department)
{
// 查詢歷史項(xiàng)目成本數(shù)據(jù)(Mock實(shí)現(xiàn))
var historicalData = new
{
ProjectType = projectType,
Department = department,
AverageCost = 250000m,
MinCost = 150000m,
MaxCost = 450000m,
ProjectCount = 15
};
return Task.FromResult(new CallToolResult
{
Content = [new TextContentBlock {
Text = System.Text.Json.JsonSerializer.Serialize(historicalData)
}]
});
}
}
關(guān)鍵點(diǎn):
- 使用
[McpServerTool]特性標(biāo)記工具方法 - 參數(shù)和返回值都有明確的類型定義
- AI模型可以自動(dòng)發(fā)現(xiàn)這些工具并調(diào)用
3.2 A2A協(xié)議:智能體之間的"對講機(jī)"
A2A (Agent-to-Agent Protocol) 是 Google Cloud 主導(dǎo)的智能體間通信標(biāo)準(zhǔn)。它定義了:
- 智能體如何描述自己的能力(AgentCard)
- 智能體之間如何發(fā)送消息
- 如何處理流式響應(yīng)
每個(gè)專業(yè)智能體都暴露了A2A端點(diǎn)。例如Tech Agent:
// Tech/Program.cs - A2A Agent暴露
public class TechAnalystAgent
{
private readonly IChatClient _chatClient;
public void Attach(ITaskManager taskManager)
{
// 注冊消息處理器
taskManager.OnMessageReceived = ProcessMessageAsync;
// 注冊能力描述處理器
taskManager.OnAgentCardQuery = GetAgentCardAsync;
}
private async Task<A2AResponse> ProcessMessageAsync(
MessageSendParams messageSendParams,
CancellationToken cancellationToken)
{
var messageText = messageSendParams.Message.Parts
.OfType<TextPart>()
.FirstOrDefault()?.Text ?? "";
var messages = new List<ChatMessage>
{
new(ChatRole.System,
"You are a technical requirements analyst..."),
new(ChatRole.User, messageText)
};
var completion = await _chatClient.GetResponseAsync(
messages,
cancellationToken: cancellationToken);
return new AgentMessage
{
Role = MessageRole.Agent,
MessageId = Guid.NewGuid().ToString(),
ContextId = messageSendParams.Message.ContextId,
Parts = [new TextPart { Text = completion.Text }]
};
}
private Task<AgentCard> GetAgentCardAsync(
string agentUrl,
CancellationToken cancellationToken)
{
return Task.FromResult(new AgentCard
{
Name = "Technical Requirements Analyst",
Description = "Technical analyst agent specializing in " +
"requirements analysis and architecture design",
Url = agentUrl,
Version = "1.0.0",
Capabilities = new AgentCapabilities
{
Streaming = false,
PushNotifications = false
}
});
}
}
// 暴露A2A端點(diǎn)
var techTaskManager = new TaskManager();
requirementAnalyst.Attach(techTaskManager);
app.MapA2A(techTaskManager, "/tech/requirement-analyst");
app.MapWellKnownAgentCard(techTaskManager, "/tech/requirement-analyst");
關(guān)鍵點(diǎn):
- AgentCard:智能體的"自我介紹",說明自己能做什么
- MessageSendParams:標(biāo)準(zhǔn)化的消息格式
- 使用
MapA2A()暴露端點(diǎn),其他智能體可以遠(yuǎn)程調(diào)用
3.3 Agent Framework:編排復(fù)雜工作流
Microsoft.Agents.AI 是微軟的智能體開發(fā)框架,提供了工作流編排能力。
在我們的項(xiàng)目經(jīng)理智能體中,使用了3階段工作流:
// AgentFrameworkAspire.Web/Services/ProjectManagerAgent.cs
public async IAsyncEnumerable<ExecutorEvent> ExecuteWorkflowStreamAsync(
string userInput,
CancellationToken ct = default)
{
// ========== Stage 1: 并行分析 ==========
yield return new WorkflowStageStartEvent("pm-workflow")
{
StageName = "并行分析階段",
InvolvedAgents = ["Tech", "HR", "Finance", "QA"]
};
// 并行調(diào)用4個(gè)specialist agents
var parallelTasks = new[]
{
CallA2AAgentAsync("Tech", _techAgent!, userInput, ct),
CallA2AAgentAsync("HR", _hrAgent!, userInput, ct),
CallA2AAgentAsync("Finance", _financeAgent!, userInput, ct),
CallA2AAgentAsync("QA", _qaAgent!, userInput, ct)
};
var analysisResults = new List<AgentRunResponse>();
// 使用 Task.WhenEach 實(shí)現(xiàn)流式返回
await foreach (var task in Task.WhenEach(parallelTasks))
{
var response = await task;
analysisResults.Add(response);
// 流式輸出每個(gè)specialist的響應(yīng)
foreach (var message in response.Messages)
{
yield return new AgentRunUpdateEvent("pm-workflow",
new AgentRunResponseUpdate
{
Role = message.Role,
Contents = message.Contents,
AgentId = response.AgentId
});
}
}
yield return new WorkflowStageCompleteEvent("pm-workflow")
{
StageName = "并行分析階段"
};
// ========== Stage 2: PMO規(guī)劃 ==========
// (基于Stage 1的結(jié)果調(diào)用PMO)
// ...
// ========== Stage 3: PM整合 ==========
// (生成最終綜合報(bào)告)
// ...
}
關(guān)鍵點(diǎn):
- 使用
IAsyncEnumerable實(shí)現(xiàn)流式響應(yīng) WorkflowStageStartEvent/WorkflowStageCompleteEvent:標(biāo)記工作流階段Task.WhenEach:實(shí)現(xiàn)真正的并行執(zhí)行AgentRunUpdateEvent:流式返回每個(gè)智能體的輸出
四、Aspire:本地模擬企業(yè)K8s環(huán)境
你可能又會(huì)問:這么多微服務(wù),開發(fā)和測試不是很麻煩嗎?
這就是 .NET Aspire 的價(jià)值所在。
4.1 一鍵啟動(dòng)所有服務(wù)
在沒有Aspire之前,啟動(dòng)5個(gè)微服務(wù)需要:
- 打開5個(gè)終端窗口
- 分別
cd到每個(gè)服務(wù)目錄 - 分別執(zhí)行
dotnet run - 記住每個(gè)服務(wù)的端口號(hào)
- 手動(dòng)配置服務(wù)之間的URL
有了Aspire:
cd AgentFrameworkAspire.AppHost
dotnet run
一行命令,所有服務(wù)自動(dòng)啟動(dòng),自動(dòng)配置,自動(dòng)服務(wù)發(fā)現(xiàn)。
4.2 統(tǒng)一配置管理
所有服務(wù)都需要OpenAI API Key,如何管理?
// AgentFrameworkAspire.AppHost/Program.cs
var openAiApiKey = builder.AddParameter("openai-apikey", secret: true);
var openAiDeployment = builder.AddParameter("openai-deployment", "gpt-4o-mini");
// 自動(dòng)注入到每個(gè)服務(wù)
var financeService = builder.AddProject<Projects.Finance>("finance")
.WithEnvironment("OpenAI__ApiKey", openAiApiKey)
.WithEnvironment("OpenAI__DeploymentName", openAiDeployment);
var techService = builder.AddProject<Projects.Tech>("tech")
.WithEnvironment("OpenAI__ApiKey", openAiApiKey)
.WithEnvironment("OpenAI__DeploymentName", openAiDeployment);
// ... 其他服務(wù)類似
關(guān)鍵點(diǎn):
- 參數(shù)只定義一次
- 自動(dòng)注入到所有需要的服務(wù)
- 支持User Secrets,不會(huì)泄露敏感信息
4.3 可視化Dashboard
Aspire提供了一個(gè)強(qiáng)大的Dashboard,可以實(shí)時(shí)查看:
- 所有服務(wù)的運(yùn)行狀態(tài)
- 日志聚合(所有服務(wù)的日志在一個(gè)地方)
- 分布式追蹤(跨服務(wù)的請求鏈路)
- 性能指標(biāo)

五、實(shí)際效果:數(shù)據(jù)說話
我們對系統(tǒng)進(jìn)行了性能測試,結(jié)果令人滿意:
5.1 響應(yīng)速度
| 場景 | 單人手工處理 | 單體AI助手 | 多智能體系統(tǒng) |
|---|---|---|---|
| 初步項(xiàng)目評(píng)估 | 4-8小時(shí) | 5-10分鐘 | 30-60秒 |
| 并行分析 | 順序進(jìn)行 | 順序進(jìn)行 | 真并行 |
| 專業(yè)深度 | ????? | ??? | ????? |
5.2 資源消耗
| 指標(biāo) | 數(shù)值 |
|---|---|
| 系統(tǒng)啟動(dòng)時(shí)間 | < 30秒 |
| 總內(nèi)存占用 | < 1GB |
| CPU占用(閑時(shí)) | < 5% |
| 完整工作流完成時(shí)間 | 60-180秒(取決于模型) |
六、為什么這個(gè)方案適合企業(yè)?
6.1 符合組織現(xiàn)實(shí)
企業(yè)本身就是分布式的:
- 不同部門有不同的職責(zé)和專業(yè)知識(shí)
- 不同團(tuán)隊(duì)使用不同的系統(tǒng)和工具
- 知識(shí)和數(shù)據(jù)天然分散
多智能體微服務(wù)架構(gòu)順應(yīng)而非對抗這種現(xiàn)實(shí)。
6.2 演進(jìn)友好
- 新增一個(gè)專業(yè)領(lǐng)域?添加一個(gè)新的智能體服務(wù)
- 某個(gè)部門的規(guī)則變了?只需更新對應(yīng)的智能體
- 想換個(gè)AI模型提供商?改一行配置
不影響其他部門,不需要重新訓(xùn)練整個(gè)系統(tǒng)。
6.3 責(zé)任清晰
在單體AI系統(tǒng)中,出現(xiàn)錯(cuò)誤很難定位:
- 是模型的問題?
- 是訓(xùn)練數(shù)據(jù)的問題?
- 還是提示詞的問題?
在多智能體系統(tǒng)中:
- Tech Agent給出了錯(cuò)誤的技術(shù)建議?→ 技術(shù)團(tuán)隊(duì)負(fù)責(zé)修復(fù)
- Finance Agent的預(yù)算計(jì)算不對?→ 財(cái)務(wù)團(tuán)隊(duì)調(diào)整工具
- 工作流編排邏輯有問題?→ PMO團(tuán)隊(duì)優(yōu)化編排
問題邊界清晰,責(zé)任明確。
6.4 漸進(jìn)式落地
不需要一次性改造整個(gè)企業(yè)的項(xiàng)目管理流程:
- 第一步:先上線一個(gè)試點(diǎn)智能體(如Finance Agent)
- 第二步:逐步添加其他專業(yè)智能體
- 第三步:引入工作流編排,實(shí)現(xiàn)端到端自動(dòng)化
風(fēng)險(xiǎn)可控,投資回報(bào)逐步顯現(xiàn)。
七、挑戰(zhàn)與局限
任何技術(shù)方案都不是銀彈,多智能體系統(tǒng)也有其挑戰(zhàn):
7.1 技術(shù)復(fù)雜度
- 需要理解微服務(wù)架構(gòu)
- 需要學(xué)習(xí)A2A、MCP等新協(xié)議
- 分布式系統(tǒng)的調(diào)試更復(fù)雜
緩解措施:
- 使用Aspire簡化本地開發(fā)
- 提供完整的文檔和示例
- 開源社區(qū)的支持
7.2 協(xié)議成熟度
- A2A和MCP都是新興協(xié)議
- 生態(tài)工具還在建設(shè)中
- 標(biāo)準(zhǔn)可能還會(huì)演進(jìn)
緩解措施:
- 這些協(xié)議由頭部大廠支持
- 代碼做好抽象,協(xié)議變化時(shí)影響面小
- 積極參與社區(qū),跟進(jìn)最新進(jìn)展
7.3 初期投入
相比直接調(diào)用ChatGPT API,多智能體系統(tǒng)需要:
- 更多的初期開發(fā)工作
- 更多的基礎(chǔ)設(shè)施
- 團(tuán)隊(duì)的學(xué)習(xí)成本
但長期來看:
- 維護(hù)成本更低
- 擴(kuò)展性更好
- 更符合企業(yè)實(shí)際
八、下一步:動(dòng)手實(shí)踐
看到這里,你可能已經(jīng)躍躍欲試了。好消息是:AgentFrameworkAspire項(xiàng)目完全開源!
快速開始
-
克隆項(xiàng)目:
git clone https://github.com/MadLongTom/A2AMicroserviceSample.git cd AgentFrameworkAspire -
配置API Key:
cd AgentFrameworkAspire.AppHost dotnet user-secrets set "Parameters:openai-apikey" "your-key" -
啟動(dòng)系統(tǒng):
dotnet run -
訪問UI:
打開瀏覽器,訪問Dashboard顯示的Web UI地址 -
測試提問:
開發(fā)一個(gè)企業(yè)ERP系統(tǒng),預(yù)算300萬元,預(yù)期12個(gè)月完成
系列文章預(yù)告
在接下來的文章中,我們將深入探討:
- 第2篇:三大協(xié)議(MCP、A2A、Agent Framework)的技術(shù)細(xì)節(jié)和代碼實(shí)現(xiàn)
- 第3篇:Aspire的配置、調(diào)試和最佳實(shí)踐
- 第4篇:如何擴(kuò)展系統(tǒng)、添加新智能體、遷移到生產(chǎn)環(huán)境
九、結(jié)語
企業(yè)AI的未來,不是一個(gè)"超級(jí)大腦"替代所有人,而是讓每個(gè)專業(yè)團(tuán)隊(duì)擁有自己的AI助手,然后通過標(biāo)準(zhǔn)化的協(xié)議實(shí)現(xiàn)智能協(xié)作。
就像李明不再需要一整天跑遍各個(gè)部門,而是可以在30秒內(nèi)獲得綜合的專業(yè)建議。
這不是科幻,這是現(xiàn)在就能實(shí)現(xiàn)的技術(shù)。
多智能體微服務(wù)架構(gòu),讓企業(yè)AI落地變得:
- 更專業(yè)(每個(gè)領(lǐng)域深度建模)
- 更靈活(按需擴(kuò)展,獨(dú)立演進(jìn))
- 更現(xiàn)實(shí)(符合組織結(jié)構(gòu),漸進(jìn)式實(shí)施)
如果你的企業(yè)也面臨類似的跨部門協(xié)作挑戰(zhàn),不妨試試這個(gè)方案。
參考資料
- 本項(xiàng)目地址:https://github.com/MadLongTom/A2AMicroserviceSample
- MCP協(xié)議規(guī)范:https://modelcontextprotocol.io/
- A2A協(xié)議(Google Cloud):https://cloud.google.com/agentspace/docs/agent-to-agent
- A2A .NET SDK:https://github.com/microsoft/a2a-dotnet
- .NET Aspire文檔:https://learn.microsoft.com/dotnet/aspire/
- Microsoft Agent Framework:https://github.com/microsoft/agents
本文來自博客園,作者:MadLongTom,轉(zhuǎn)載請注明原文鏈接:http://www.rzrgm.cn/madtom/p/19140138
浙公網(wǎng)安備 33010602011771號(hào)