项目简介

Nanobot是一个开源的MCP(Model Context Protocol)主机,旨在简化AI代理的构建和部署。它能够作为独立的后端服务运行,也可以集成到现有应用中。Nanobot的核心功能是管理和提供AI代理所需的各种上下文信息,包括资源访问、工具调用以及Prompt模板渲染,并通过标准化的JSON-RPC协议与LLM客户端进行通信。

Nanobot不仅能够托管内部实现的MCP服务(如管理聊天历史、提供UI代理功能),还可以作为客户端连接和编排其他外部MCP服务器,从而构建复杂的多代理工作流。

主要功能点

  • 上下文管理: 托管和管理AI代理所需的数据资源,例如聊天历史、用户上传文件等。
  • 工具集成: 允许AI代理调用外部功能或服务(例如查询外部API、执行代码等),扩展其能力。
  • Prompt模板: 定义和渲染可定制的Prompt模板,支持LLM客户端灵活调整与AI代理的交互模式。
  • 会话管理: 维护用户与AI代理之间的会话状态,提供多会话支持。
  • 传输协议支持: 支持通过HTTP (SSE) 和标准输入/输出 (Stdio) 等多种传输协议与客户端通信。
  • 代理编排: 能够整合多个内部或外部的MCP服务器,构建复杂的AI代理工作流。
  • 认证与授权: 提供OAuth等机制来保护对MCP服务的访问。

安装步骤

  1. 安装Homebrew(macOS/Linux): 如果尚未安装,请通过以下命令安装:
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  2. 安装Nanobot CLI工具: 使用Homebrew安装Nanobot:
    brew install nanobot-ai/tap/nanobot
    这将安装 'nanobot' 命令行工具,用于运行和管理MCP主机。

服务器配置

MCP客户端需要以下信息来连接到Nanobot服务器:

  • 服务器名称 (Server Name): 您可以为该Nanobot实例自定义一个名称,例如 "MyNanobotAgentHost"。
  • 连接地址 (Connection URL): Nanobot服务器启动后,默认会在 'http://localhost:8080' 监听MCP请求。因此,客户端的连接URL通常是 'http://localhost:8080'。如果Nanobot配置了 'ListenAddress' 选项,则应使用对应的地址。
  • 传输协议 (Protocol): Nanobot支持HTTP (Server-Sent Events) 作为传输协议。
  • 初始化请求 (Initialization Request): 客户端会发送标准的MCP 'initialize' JSON-RPC请求来建立连接并获取服务器能力。

示例(JSON格式,供MCP客户端参考):

{
  "name": "MyNanobotAgentHost",
  "url": "http://localhost:8080",
  "protocol": "http-sse"
}

参数注释:

  • 'name': 客户端为该MCP服务器实例指定的名称。
  • 'url': Nanobot MCP服务器的实际运行地址。
  • 'protocol': 客户端与服务器通信使用的协议,这里是HTTP SSE。

基本使用方法

  1. 创建配置文件: 在项目目录中创建一个 'nanobot.yaml' 文件,定义您的代理和它们可能引用的MCP服务器。

    示例 'nanobot.yaml':

    agents:
      dealer:
        name: Blackjack Dealer
        model: gpt-4.1
        mcpServers: blackjackmcp # 引用下方定义的MCP服务器(Nanobot会作为客户端连接此外部MCP服务器)
    
    mcpServers:
      blackjackmcp:
        url: https://blackjack.nanobot.ai/mcp # 这是一个外部MCP服务器的URL
  2. 配置API Key: 如果您的代理使用OpenAI或Anthropic模型,请设置相应的API Key环境变量:

    export OPENAI_API_KEY=sk-...
    export ANTHROPIC_API_KEY=sk-ant-...
  3. 启动Nanobot: 运行以下命令启动Nanobot主机:

    nanobot run ./nanobot.yaml

    Nanobot将默认在 'http://localhost:8080' 上启动UI界面和MCP服务。

  4. 与Nanobot交互: 您可以通过浏览器访问 'http://localhost:8080' 与代理进行交互,或者通过兼容MCP协议的客户端连接到 Nanobot的MCP端点(通常是 'http://localhost:8080')。

信息

分类

AI与计算