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

社区文章 发布于 2025 年 5 月 16 日

image/png

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 项目中非常简单。以下是设置方法:

  1. 安装 MCP 适配器:

    npm install @langchain/mcp-adapters
    
  2. 配置 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
          }
        }
      }
    });
    
  3. 访问 MCP 工具:

    const mcpTools = await mcpClient.getTools();
    console.log(mcpTools);
    
  4. 与 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 合作创建的。

🔗 联系我们

社区

注册登录 以评论