名称: 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
使用 @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 应用是否需要网络搜索和内容提取功能?
在 Teams.ai 应用中使用 Anthropic Claude 模型,无需额外依赖。
npm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk @microsoft/teams.ai
从 console.anthropic.com 获取您的 API 密钥。
# 添加到 .env 文件
ANTHROPIC_API_KEY=your-anthropic-api-key
新建应用:
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,
});
// 能力最强 - 适用于复杂任务
AnthropicModel.CLAUDE_OPUS_4_5
// 智能与速度的平衡(推荐)
AnthropicModel.CLAUDE_SONNET_4_5
// 快速高效
AnthropicModel.CLAUDE_HAIKU_3_5
npm start
在 Teams 中发送消息以验证 Claude 是否正常响应。
为您的 Claude 驱动的 Teams 应用添加网络搜索和内容提取功能。
npm install @youdotcom-oss/teams-anthropic @anthropic-ai/sdk @microsoft/teams.ai @microsoft/teams.mcpclient
# 添加到 .env 文件
ANTHROPIC_API_KEY=your-anthropic-api-key
YDC_API_KEY=your-you-com-api-key
新建应用:
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 集成:
安装 MCP 依赖:
bash
npm install @microsoft/teams.mcpclient
添加导入语句:
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';
验证 You.com API 密钥:
typescript
if (!process.env.YDC_API_KEY) {
throw new Error('YDC_API_KEY 环境变量是必需的');
}
将模型替换为 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());
```
typescript
const result = await prompt.send(activity.text);npm start
向 Claude 提问需要网络搜索的问题:
- “AI 领域的最新进展有哪些?”
- “搜索 React 文档”
- “从 https://example.com 提取内容”
| 模型 | 枚举值 | 最佳适用场景 |
|---|---|---|
| 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。"
@youdotcom-oss/teams-anthropicANTHROPIC_API_KEYAnthropicChatModel 配置@microsoft/teams.mcpclientYDC_API_KEYgetYouMcpConfig() 配置“找不到模块 @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'
“需要 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
自动配置 You.com MCP 连接:
- URL:https://api.you.com/mcp
- 认证:来自 YDC_API_KEY 的 Bearer 令牌
- User-Agent:包含包版本以用于遥测
// 选项 1:使用环境变量(推荐)
getYouMcpConfig()
// 选项 2:自定义 API 密钥
getYouMcpConfig({ apiKey: 'your-custom-key' })