【免费下载链接】litellm-agent-control-plane
1 place to call all your agents - OpenCode, Hermes, Claude Managed Agents, Cursor Agents API, DeepAgents.
LiteLLM Agent Control Plane(LAP)是一个统一的 Agent 调用平台,可以把 OpenCode、Claude Managed Agents、Cursor Agents API、DeepAgents 等多种 Agent 汇聚到一处。本指南带你完成LiteLLM Agent Control Plane 的 Microsoft Teams 集成:只需 5 步,就能把一个 LAP Agent 变成 Teams 机器人,让同事直接在 Teams 私聊或群聊里 @ 你的 Agent 提问,Agent 会流式回复在同一个会话中。
一、Teams 集成的工作原理
每个接入 Teams 的 LAP Agent 对应一个 Bot Framework 注册 + 一个 Teams 应用包,链路如下:
- 用户在 Teams 私聊或群聊里发消息;
- Microsoft 把消息回调到 Azure Bot 的 messaging endpoint;
- 该 endpoint 指向 LAP 上该 Agent 专属的
/api/agents/<agent-id>/teams/messages; - LAP 为这个 Teams 会话创建(或复用)一个 Agent session,调用你配置的 runtime 和模型;
- Agent 以流式方式把回复写回 Teams 的同一会话。
Teams 相关服务端的处理逻辑集中在 src/http/managed_agents/teams/,其中 web_api.rs 负责调用 Bot Framework API 发送与更新回复消息;会话持久化见 0018_teams_agent_sessions.sql。
二、准备工作清单 ✅
开始集成前,请确认以下条件:
| 准备项 | 说明 |
|---|---|
| 公网 HTTPS 地址 | LAP 已部署到公网 HTTPS URL(本地测试可用 HTTPS 隧道临时暴露) |
| 可用的 Agent | 在 LAP 中有一个 runtime 和模型都正常工作的 Agent |
| Azure Bot | 权限创建/编辑 Azure Bot 注册,或已有一个 Bot Framework bot |
| Teams 租户权限 | 可上传自定义 Teams 应用,或有一位管理员可代为发布 |
完整的先决条件与排错说明可参考官方文档:docs/channels/teams.mdx。
三、第 1 步:准备 Agent 与 Runtime
在 UI 中打开Agents页面,确认你的 Agent 已经选好了 runtime(OpenCode、Claude Managed Agents、Cursor 等)和模型,并且能正常 Run 对话。
如果还没有可用的 runtime,打开Add Runtime对话框,填入 Alias、API Spec、API Base 和 API Key,点击Create Runtime即可:
💡 建议先在 Web UI 里跑通一轮对话,再去接 Teams。这样一旦机器人报错,能快速区分是 runtime 问题还是 Teams 配置问题。
四、第 2 步:注册 Azure Bot 并配置回调地址
在 Azure 上创建一个新的 Azure Bot(或复用一个已有 Bot);
把 Bot 的messaging endpoint设置为该 Agent 专属的 Teams 端点:
$LAP_URL/api/agents/<agent-id>/teams/messages例如:
https://agents.example.com/api/agents/agent_123/teams/messages在 Azure Bot 渠道设置中启用Microsoft Teams渠道;
记下以下三个值,后面要填入 LAP:
- Microsoft App ID
- Tenant ID
- App password(client secret 的值,不是 secret ID)
五、第 3 步:在 LAP UI 保存 Bot 凭据
在 LAP UI 的Agents页面选择目标 Agent,点击Add to Teams。该流程会展示与 Azure Bot 完全一致的 messaging endpoint,方便核对。前端实现位于 teams-app-flow.tsx。
依次填入:
- Teams 应用名称
- Microsoft App ID
- Tenant ID(多租户 bot 可留空)
- App password(粘贴 client secret 的值)
点击Save Bot Credentials。🔐 LAP 会把 App password 加密存入 vault,Agent 配置中只保存对应的 vault 密钥名,不会明文落库。
六、第 4 步:下载 Teams 应用包并安装
- 点击Download Teams Package,LAP 会为你生成一个
.zip应用包(包含manifest.json与应用图标); - 清单(manifest)自动指向你保存的 Microsoft App ID,并启用 personal、group chat、team 三种作用域;
- 通过以下任一方式上传安装:
- Teams →Apps→Manage your apps→Upload an app
- Teams Developer Portal
- Microsoft Teams 管理中心(需要管理员发布时)
⚠️ 如果租户禁用了自定义应用上传,请联系 Teams 管理员通过 admin center 发布或放行该应用。
七、第 5 步:在 Teams 里对话 🎉
安装完成后,两种用法任选:
私聊(direct message):
Can you summarize the latest incident notes?群聊 / 团队频道中 @ 机器人:
@YourAgent check the deployment status and summarize the result机器人会为这个 Teams 会话启动或复用一个 Agent session,流式生成回复,并直接在原会话中更新消息内容。多 Agent 场景下,为每个 Agent 各生成一个 Teams 应用包即可——每个包指向自己独立的/api/agents/<agent-id>/teams/messages端点,互不干扰。
八、常见问题排查 🛠️
| 现象 | 排查方向 |
|---|---|
| 回调完全不到 LAP | 确认 Azure Bot 的 messaging endpoint 是公网 HTTPS 地址,且以/api/agents/<agent-id>/teams/messages结尾 |
| Teams 上传被拦截 | 租户禁用了自定义应用上传,改用 Teams 管理中心发布 |
| 回调返回 Unauthorized | 核对 LAP 中保存的 Microsoft App ID、Tenant ID、App password 与 Azure Bot 注册信息完全一致 |
| 机器人回复 Agent 错误 | 先在 LAP UI 中单独测试该 Agent 的 runtime 与模型凭据是否正常 |
更多细节(如签名校验、会话锁、流式回复实现)可查看:
- 官方文档:docs/channels/teams.mdx
- Teams 通道源码:src/http/managed_agents/teams/
- UI 集成流程:src/ui/src/app/agents/teams-app-flow.tsx
总结
LiteLLM Agent Control Plane 的 Teams 集成把"部署 Azure Bot → 配置回调 → 上传应用包"这套流程简化成了 UI 内两步:保存凭据 + 下载应用包。只要你的 Agent 在 Web UI 中已经能正常对话,几分钟内就能让它成为团队 Teams 里随时可 @ 的智能助手。
【免费下载链接】litellm-agent-control-plane
1 place to call all your agents - OpenCode, Hermes, Claude Managed Agents, Cursor Agents API, DeepAgents.
相关推荐
Grafana OnCall与Microsoft Teams集成配置指南
Grafana OnCall与Microsoft Teams集成配置指南 前言 在现代IT运维中,高效的告警通知和团队协作至关重要。Grafana OnCall
后端告警可观测性Agent Teams 插件中的 Agent 类型选择指南:在 agent-teams 中正确挑选 `subagent_type`
Agent Teams 插件中的 Agent 类型选择指南:在 agent teams 中正确挑选 subagent_type 导读 在 agent teams
AI 插件AI 技能开发工具golang-migrate/migrate与Microsoft Teams:通知集成
golang migrate/migrate与Microsoft Teams:通知集成 你是否曾因数据库迁移失败未及时察觉而导致线上故障?是否希望团队能实时掌握
数据库开发工具CLI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考