🚀 在 KaibanJS 中拥抱 MCP:多智能体 AI 系统的一次飞跃

AI 格局正在迅速演变,随之而来的是赋能开发者构建更高效、可扩展系统的工具和协议。其中一项进步是将模型上下文协议(MCP)集成到 KaibanJS 中,这是我们用于构建多智能体 AI 系统的 JavaScript 框架。
🔍 什么是 MCP?
模型上下文协议(MCP)是 Anthropic 开发的一个开放标准,旨在简化 AI 模型与外部工具或数据源之间的交互。可以将 MCP 视为 AI 集成的 USB-C——它提供了一种通用、标准化的方式,使 AI 智能体能够连接各种服务,而无需定制连接器。
主要特点:
- 标准化通信:MCP 为 AI 模型与工具和服务交互提供了结构化框架。
- 工具访问与扩展:AI 助手可以利用外部工具获取实时洞察。
- 安全且可扩展:促进与企业应用程序的安全且可扩展集成。
通过采用 MCP,开发者可以构建多智能体 AI 系统,其中多个专业智能体可以协同工作,共享相关信息而不会出现冗余或冲突。
🛠️ JavaScript 中的实现
在 JavaScript 生态系统中,MCP 的主要实现是 @modelcontextprotocol/sdk
库。虽然它功能全面,但为 KaibanJS 构建自定义包装器将带来巨大的维护开销,包括:
- 持续跟踪不断发展的 MCP 标准。
- 将工具转换为与 KaibanJS 架构匹配。
- 为持续支持和更新分配资源。
相反,我们选择利用 @langchain/mcp-adapters
,它将 MCP 工具无缝集成到 LangChain.js 应用程序中。鉴于 KaibanJS 构建于 LangChain.js 之上,此适配器可确保兼容性并减少额外支持的需要。
🔄 更新 LangChainJS 依赖项的重要性
为了促进 MCP 的集成,更新 LangChainJS 依赖项至关重要。在 KaibanJS v0.20.0 中,我们已将核心和工具包中的所有 @langchain
依赖项升级。这可确保:
- 与最新 LangChain API 完全兼容。
- 跨代理工作流的性能和稳定性增强。
- 访问 LangChain 中的新功能和配置选项。
🧪 在 KaibanJS 中使用 MCP
将 MCP 集成到您的 KaibanJS 项目中非常简单。以下是设置方法:
安装 MCP 适配器:
npm install @langchain/mcp-adapters
配置 MCP 客户端:
import { MultiServerMCPClient } from "@langchain/mcp-adapters"; const mcpClient = new MultiServerMCPClient({ prefixToolNameWithServerName: false, additionalToolNamePrefix: "", mcpServers: { tavily: { command: "npx", args: ["-y", "tavily-mcp@0.2.0"], env: { TAVILY_API_KEY: process.env.TAVILY_API_KEY || "", PATH: process.env.PATH || "" } }, weather: { transport: "sse", url: "https://example.com/mcp-weather", headers: { Authorization: "Bearer token123" }, useNodeEventSource: true, reconnect: { enabled: true, maxAttempts: 5, delayMs: 2000 } } } });
访问 MCP 工具:
const mcpTools = await mcpClient.getTools(); console.log(mcpTools);
与 KaibanJS 代理集成:
import { Agent } from "kaibanjs"; const searchAgent = new Agent({ name: "Scout", role: "Information Gatherer", goal: "Find up-to-date information about the given sports query.", background: "Research", tools: [...mcpTools] });
此设置允许您的 KaibanJS 代理利用通过 MCP 服务器公开的工具,从而增强其功能和互操作性。
🌐 浏览器困境
虽然 MCP 与服务器端环境的集成非常强大,但客户端支持(尤其是在浏览器中)仍然不足。@modelcontextprotocol/sdk
目前仅支持服务器端环境,这限制了 MCP 启用代理在基于浏览器的应用程序中的部署。
一些开发人员已经探索了诸如使用 WebSockets 或 WebAssembly 等变通方法,但这些解决方案既不标准化,也没有官方支持。缺乏稳定的客户端支持阻碍了完全去中心化、基于浏览器的 AI 代理的开发——这是 KaibanJS 热衷于追求的方向。
🚀 结论
KaibanJS 中采用 MCP 标志着在构建更模块化和可互操作的多智能体 AI 系统方面迈出了重要一步。通过利用 @langchain/mcp-adapters
等现有工具,我们确保了无缝集成,而无需维护自定义包装器所带来的开销。
然而,旅程并未就此结束。随着 AI 生态系统的发展,我们的工具和协议也必须随之发展。我们热切期待 MCP 的稳定客户端支持,以解锁基于浏览器的 AI 应用程序的新可能性。
敬请关注,继续构建!💪
🙋♂️ 免责声明
此帖子是与 Alex Anthony X/twitter 合作创建的。
🔗 联系我们
- X (Twitter): https://x.com/kaibanjs
- 官方页面: https://www.kaibanjs.com/
- Discord: https://discord.gg/Na83SNUB