OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  teams-anthropic:集成 Microsoft Teams 与 Anthropic 的协作技能

teams-anthropic:集成 Microsoft Teams 与 Anthropic 的协作技能

 
  nosql ·  2026-02-24 23:39:47 · 2 次点击  · 0 条评论  

名称: teams-anthropic-integration
描述: 使用 @youdotcom-oss/teams-anthropic 将 Anthropic Claude 模型(Opus、Sonnet、Haiku)集成到 Microsoft Teams.ai 应用中。可选集成 You.com MCP 服务器以启用网络搜索和内容提取功能。
许可证: MIT
compatibility: Node.js 18+, @microsoft/teams.ai
元数据:
author: youdotcom-oss
category: enterprise-integration
version: "1.1.0"
keywords: microsoft-teams,teams-ai,anthropic,claude,mcp,you.com,web-search,content-extraction


使用 Anthropic Claude 构建 Teams.ai 应用

使用 @youdotcom-oss/teams-anthropic 将 Claude 模型(Opus、Sonnet、Haiku)集成到 Microsoft Teams.ai 应用中。可选集成 You.com MCP 服务器以启用网络搜索和内容提取功能。

选择您的路径

路径 A:基础设置(推荐新手入门)
- 在 Teams.ai 中使用 Anthropic Claude 模型
- 支持聊天、流式响应、函数调用
- 无需额外依赖

路径 B:集成 You.com MCP(用于网络搜索功能)
- 包含路径 A 的所有功能
- 通过 You.com 实现网络搜索和内容提取
- 获取实时信息

决策点

问:您的 Teams 应用是否需要网络搜索和内容提取功能?

  • 不需要 → 选择 路径 A:基础设置(更简单、更快)
  • 需要 → 选择 路径 B:集成 You.com MCP

路径 A:基础设置

在 Teams.ai 应用中使用 Anthropic Claude 模型,无需额外依赖。

A1. 安装包

npm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk @microsoft/teams.ai

A2. 获取 Anthropic API 密钥

console.anthropic.com 获取您的 API 密钥。

# 添加到 .env 文件
ANTHROPIC_API_KEY=your-anthropic-api-key

A3. 问:新建应用还是现有应用?

  • 新建 Teams 应用:使用下方完整模板
  • 现有应用:在现有设置中添加 Claude 模型

A4. 基础模板

新建应用:

import { App } from '@microsoft/teams.apps';
import { AnthropicChatModel, AnthropicModel } from '@youdotcom-oss/teams-anthropic';

if (!process.env.ANTHROPIC_API_KEY) {
  throw new Error('ANTHROPIC_API_KEY 环境变量是必需的');
}

const model = new AnthropicChatModel({
  model: AnthropicModel.CLAUDE_SONNET_4_5,
  apiKey: process.env.ANTHROPIC_API_KEY,
  requestOptions: {
    max_tokens: 2048,
    temperature: 0.7,
  },
});

const app = new App();

app.on('message', async ({ send, activity }) => {
  await send({ type: 'typing' });

  const response = await model.send(
    { role: 'user', content: activity.text }
  );

  if (response.content) {
    await send(response.content);
  }
});

app.start().catch(console.error);

现有应用:

添加到现有导入语句:

import { AnthropicChatModel, AnthropicModel } from '@youdotcom-oss/teams-anthropic';

替换现有模型:

const model = new AnthropicChatModel({
  model: AnthropicModel.CLAUDE_SONNET_4_5,
  apiKey: process.env.ANTHROPIC_API_KEY,
});

A5. 选择您的模型

// 能力最强 - 适用于复杂任务
AnthropicModel.CLAUDE_OPUS_4_5

// 智能与速度的平衡(推荐)
AnthropicModel.CLAUDE_SONNET_4_5

// 快速高效
AnthropicModel.CLAUDE_HAIKU_3_5

A6. 测试基础设置

npm start

在 Teams 中发送消息以验证 Claude 是否正常响应。


路径 B:集成 You.com MCP

为您的 Claude 驱动的 Teams 应用添加网络搜索和内容提取功能。

B1. 安装包

npm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk @microsoft/teams.ai @microsoft/teams.mcpclient

B2. 获取 API 密钥

# 添加到 .env 文件
ANTHROPIC_API_KEY=your-anthropic-api-key
YDC_API_KEY=your-you-com-api-key

B3. 问:新建应用还是现有应用?

  • 新建 Teams 应用:使用下方完整模板
  • 现有应用:在现有 Claude 设置中添加 MCP 集成

B4. MCP 模板

新建应用:

import { App } from '@microsoft/teams.apps';
import { ChatPrompt } from '@microsoft/teams.ai';
import { ConsoleLogger } from '@microsoft/teams.common';
import { McpClientPlugin } from '@microsoft/teams.mcpclient';
import {
  AnthropicChatModel,
  AnthropicModel,
  getYouMcpConfig,
} from '@youdotcom-oss/teams-anthropic';

// 验证环境变量
if (!process.env.ANTHROPIC_API_KEY) {
  throw new Error('ANTHROPIC_API_KEY 环境变量是必需的');
}

if (!process.env.YDC_API_KEY) {
  throw new Error('YDC_API_KEY 环境变量是必需的');
}

// 配置日志记录器
const logger = new ConsoleLogger('mcp-client', { level: 'info' });

// 创建集成 MCP 的提示
const prompt = new ChatPrompt(
  {
    instructions: '您是一个有用的助手,可以访问网络搜索和内容提取工具。请使用这些工具提供准确、最新的信息。',
    model: new AnthropicChatModel({
      model: AnthropicModel.CLAUDE_SONNET_4_5,
      apiKey: process.env.ANTHROPIC_API_KEY,
      requestOptions: {
        max_tokens: 2048,
      },
    }),
  },
  [new McpClientPlugin({ logger })],
).usePlugin('mcpClient', getYouMcpConfig());

const app = new App();

app.on('message', async ({ send, activity }) => {
  await send({ type: 'typing' });

  const result = await prompt.send(activity.text);
  if (result.content) {
    await send(result.content);
  }
});

app.start().catch(console.error);

现有 Claude 应用:

如果您已有路径 A 的设置,请添加 MCP 集成:

  1. 安装 MCP 依赖:
    bash npm install @microsoft/teams.mcpclient

  2. 添加导入语句:
    typescript import { ChatPrompt } from '@microsoft/teams.ai'; import { ConsoleLogger } from '@microsoft/teams.common'; import { McpClientPlugin } from '@microsoft/teams.mcpclient'; import { getYouMcpConfig } from '@youdotcom-oss/teams-anthropic';

  3. 验证 You.com API 密钥:
    typescript if (!process.env.YDC_API_KEY) { throw new Error('YDC_API_KEY 环境变量是必需的'); }

  4. 将模型替换为 ChatPrompt:
    ```typescript
    const logger = new ConsoleLogger('mcp-client', { level: 'info' });

const prompt = new ChatPrompt(
{
instructions: '您的指令在此',
model: new AnthropicChatModel({
model: AnthropicModel.CLAUDE_SONNET_4_5,
apiKey: process.env.ANTHROPIC_API_KEY,
}),
},
[new McpClientPlugin({ logger })],
).usePlugin('mcpClient', getYouMcpConfig());
```

  1. 使用 prompt.send() 替代 model.send():
    typescript const result = await prompt.send(activity.text);

B5. 测试 MCP 集成

npm start

向 Claude 提问需要网络搜索的问题:
- “AI 领域的最新进展有哪些?”
- “搜索 React 文档”
- “从 https://example.com 提取内容”


可用的 Claude 模型

模型 枚举值 最佳适用场景
Claude Opus 4.5 AnthropicModel.CLAUDE_OPUS_4_5 复杂任务,最高能力
Claude Sonnet 4.5 AnthropicModel.CLAUDE_SONNET_4_5 智能与速度的平衡(推荐)
Claude Haiku 3.5 AnthropicModel.CLAUDE_HAIKU_3_5 快速响应,高效
Claude Sonnet 3.5 AnthropicModel.CLAUDE_SONNET_3_5 上一代,稳定

高级功能

流式响应

const response = await model.send(
  { role: 'user', content: '写一个短篇故事' },
  {
    onChunk: async (delta) => {
      // 流式处理每个到达的令牌
      process.stdout.write(delta);
    },
  }
);

函数调用

const response = await model.send(
  { role: 'user', content: '旧金山的天气如何?' },
  {
    functions: {
      get_weather: {
        description: '获取指定位置的当前天气',
        parameters: {
          location: { type: 'string', description: '城市名称' },
        },
        handler: async (args: { location: string }) => {
          // 在此处调用您的 API
          return { temperature: 72, conditions: '晴朗' };
        },
      },
    },
  }
);

对话记忆

import { LocalMemory } from '@microsoft/teams.ai';

const memory = new LocalMemory();

// 第一条消息
await model.send(
  { role: 'user', content: '我的名字是 Alice' },
  { messages: memory }
);

// 第二条消息 - Claude 会记住
const response = await model.send(
  { role: 'user', content: '我的名字是什么?' },
  { messages: memory }
);
// 响应:"您的名字是 Alice。"

验证清单

路径 A 清单

  • [ ] 包已安装:@youdotcom-oss/teams-anthropic
  • [ ] 环境变量已设置:ANTHROPIC_API_KEY
  • [ ] 模型已使用 AnthropicChatModel 配置
  • [ ] 已选择模型(Opus/Sonnet/Haiku)
  • [ ] 已使用基本消息测试应用

路径 B 清单

  • [ ] 完成所有路径 A 项目
  • [ ] 额外包已安装:@microsoft/teams.mcpclient
  • [ ] 环境变量已设置:YDC_API_KEY
  • [ ] 日志记录器已配置
  • [ ] ChatPrompt 已使用 getYouMcpConfig() 配置
  • [ ] 已使用网络搜索查询测试应用

常见问题

路径 A 问题

“找不到模块 @youdotcom-oss/teams-anthropic”

npm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk

“需要 ANTHROPIC_API_KEY 环境变量”
- 从 https://console.anthropic.com/ 获取密钥
- 添加到 .env:ANTHROPIC_API_KEY=your-key-here

“无效的模型标识符”
- 使用枚举:AnthropicModel.CLAUDE_SONNET_4_5
- 不要使用字符串:'claude-sonnet-4-5-20250929'

路径 B 问题

“需要 YDC_API_KEY 环境变量”
- 从 https://you.com/platform/api-keys 获取密钥
- 添加到 .env:YDC_API_KEY=your-key-here

“MCP 连接失败”
- 在 https://you.com/platform/api-keys 验证 API 密钥是否有效
- 检查网络连接
- 查看日志输出以获取详细信息

“找不到模块 @microsoft/teams.mcpclient”

npm install @microsoft/teams.mcpclient

getYouMcpConfig() 工具函数

自动配置 You.com MCP 连接:
- URLhttps://api.you.com/mcp
- 认证:来自 YDC_API_KEY 的 Bearer 令牌
- User-Agent:包含包版本以用于遥测

// 选项 1:使用环境变量(推荐)
getYouMcpConfig()

// 选项 2:自定义 API 密钥
getYouMcpConfig({ apiKey: 'your-custom-key' })

资源

  • :https://github.com/youdotcom-oss/dx-toolkit/tree/main/packages/teams-anthropic
  • You.com MCP:https://documentation.you.com/developer-resources/mcp-server
  • Anthropic API:https://console.anthropic.com/
  • You.com API 密钥:https://you.com/platform/api-keys
2 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor