在這份快速入門中,將說明如何使用 Agent 365 工具設定一個可運作的 JavaScript LangChain agent,並透過 Agents Playground 和 Teams 測試該代理。
先決條件
- 如果你打算使用 Visual Studio Code,必須安裝 .NET。 (建議使用 .NET 8.0。)
- Node.js 16 版或更高版本
- LangChain
- 特工遊樂場
- NodeJS 可安裝 Npm(節點封裝管理員)
- GitHub 存取權限
- 一個現有的 AI 代理專案。 此快速入門使用來自 Microsoft 365 代理工具包 (VS Code 中的 ATK)中的 Agent 範例代理。
- A365 CLI
- 代理身份認證
從 Microsoft 365 代理工具包中建立 LangChain + Node.js 範例
要準備好一切,你先在 VS Code 安裝 Microsoft 365 代理工具包,打開範例庫,並在本地架設 LangChain + Node.js 範例,方便之後設定和執行。 以下截圖展示了你在過程中應該預期會看到的內容。
打開 Visual Studio Code,然後在擴充功能面板中用 Ctrl+Shift X+ 鍵。
在搜尋欄輸入「Agents Toolkit」。
你應該會在這裡看到截圖中的結果:
Microsoft 365 Agents Toolkit
選取安裝。
VS Code 顯示的擴充功能詳細檢視方式如下:
安裝後, M365 代理工具包 圖示會出現在左側導航列。
選擇它即可開啟歡迎體驗。
你現在應該會看到像是「建立宣告式代理」、「建立新代理/應用程式」和「檢視範例」等選項,如這裡所示:
選擇 「查看範例」。
在樣本列表中,往下滑可找到 LangChain + Node.js 劑樣本。
加以選取。
你會看到兩個選項: 建立 (本地支架)或 在 GitHub 查看。
選擇 [建立] 。
當提示時,選擇你電腦上的一個資料夾來產生樣本。 例如:
C:\A365-Ignite-Demo工具包會將 LangChain + Node.js 範例架構到子資料夾(例如 sample_agent),然後自動在 VS Code 中開啟。
一旦支架完成,你現在就擁有一個完整運作的 LangChain + Node.js 代理專案
安裝必要套件
在執行範例前,先在你的專案中開啟 , package.json 確認所有必須的 Agent 365 和 Agent 框架相依關係都已列出。 Microsoft 365 代理工具包產生的樣本已經包含這些條目。
檢視完後,請 package.json執行以下操作安裝所有內容:
npm install
此程序會拉出所有 Agent 365 函式庫、Agent 框架相依、主機元件及範例中定義的其他相依。 安裝後,啟動開發伺服器驗證專案是否能建置並執行
npm run dev
新增 Microsoft 365 工具(MCP 伺服器)
你可以使用 CLI 中的 a365 開發指令 來探索和管理 MCP 伺服器。
在使用 MCP 伺服器時,你可以:
- 了解哪些 MCP 伺服器可供使用
- 將一台或多台 MCP 伺服器加入您的代理程式配置
- 檢視目前配置的 MCP 伺服器
- 移除不再需要的 MCP 伺服器
MCP 伺服器加入後,您的代理工具清單會擴展至包含類似的條目:
{
"mcpServers": [
{
"mcpServerName": "mcp_MailTools",
"mcpServerUniqueName": "mcp_MailTools",
"scope": "McpServers.Mail.All",
"audience": "api://00001111-aaaa-2222-bbbb-3333cccc4444"
}
]
}
通知訂閱與處理
範例代理會訂閱所有使用 onAgentNotification("*") Agent 365 的通知,並將其路由到單一處理器。 此處理器允許代理對背景或系統事件作出反應,而不僅僅是直接的使用者訊息。
以下程式碼顯示通知在檔案中的 agent.ts 設定方式。
constructor() {
super();
this.onAgentNotification("agents:*", async(context, state, activity) => {
await this.handleAgentNotificationActivity(context, state, activity);
});
}
async handleAgentNotificationActivity(context, state, activity)
{
await context.sendActivity("Received an AgentNotification!");
// Add custom handling here
}
可檢視性
這段片段顯示了讓樣品可觀察所需的最小變化。 它初始化 Agent 365 可觀察性 SDK,並將每個代理呼叫包裹在 InferenceScope 一個能自動擷取輸入、輸出與元資料的環境中。
以下程式碼展示了檔案中 client.ts 一個簡化的可觀察性範例。
const sdk = ObservabilityManager.configure(b =>
b.withService('<service-name>', '<version>')
);
sdk.start();
async invokeAgentWithScope(prompt: string) {
const scope = InferenceScope.start(
{
operationName: InferenceOperationType.CHAT,
model: '<llm-name>'
},
{
agentId: '<agent-id>',
agentName: '<agent-name>',
conversationId: '<conv-id>'
},
{ tenantId: '<tenant-id>' }
);
const response = await this.invokeAgent(prompt);
scope?.recordInputMessages([prompt]);
scope?.recordOutputMessages([response]);
scope?.recordResponseId(`resp-${Date.now()}`);
return response;
}
此片段展示了在 Node.js + LangChain 樣本中實現可觀測性的核心模式。 完整可觀察性設定請參見 了解更多可觀察性資訊
測試您的 Agent
設定必要的環境變數,選擇認證模式,然後在本地啟動代理程式。 你可以用 Agents Playground 端對端測試所有東西,除非你想發佈代理並在 Teams 或 Outlook 等應用程式中使用,否則不需要 Microsoft 365 租戶。 請參閱詳細步驟,請參閱 「了解更多關於如何配置與代理遊樂場測試代理的測試 」。
測試步驟概述
- 把你的 API 金鑰和模型設定加入
.env檔案,讓範例能和 LLM 溝通。 - 選擇您的驗證方法 針對本地開發,範例支援使用由代理藍圖建立的值來執行代理認證。
- 在本地啟動代理,讓它接觸像是代理遊樂場這類工具。
- 使用 Agents Playground 測試訊息、工具和通知,無需設定租戶或部署任何東西。
- 當你準備好體驗實際行為時,發布一個 Microsoft 365 租戶,並在 Teams、Outlook 或其他 Microsoft 365 表面中測試代理程式。
發佈您的 Agent
當你的客服人員準備好使用真正的 Microsoft 365 體驗,如 Teams 聊天、Outlook 訊息、Word @mentions時,你就將它發佈給 Microsoft 365 租戶。
Agent 365 CLI publish 指令負責打包:它更新你的清單、打包所有內容,並將代理程式上傳到 Microsoft 管理中心。
發布時,請在完成上傳前,檢視並自訂代理人的名稱、描述、圖示及版本。 一旦發布,你的代理就會在租戶中被發現並安裝。
你可以在這裡查看已發表的代理人: https://admin.cloud.microsoft/#/agents/all