项目简介
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服务的访问。
安装步骤
- 安装Homebrew(macOS/Linux): 如果尚未安装,请通过以下命令安装:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - 安装Nanobot CLI工具: 使用Homebrew安装Nanobot:
这将安装 'nanobot' 命令行工具,用于运行和管理MCP主机。brew install nanobot-ai/tap/nanobot
服务器配置
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。
基本使用方法
-
创建配置文件: 在项目目录中创建一个 '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 -
配置API Key: 如果您的代理使用OpenAI或Anthropic模型,请设置相应的API Key环境变量:
export OPENAI_API_KEY=sk-... export ANTHROPIC_API_KEY=sk-ant-... -
启动Nanobot: 运行以下命令启动Nanobot主机:
nanobot run ./nanobot.yamlNanobot将默认在 'http://localhost:8080' 上启动UI界面和MCP服务。
-
与Nanobot交互: 您可以通过浏览器访问 'http://localhost:8080' 与代理进行交互,或者通过兼容MCP协议的客户端连接到 Nanobot的MCP端点(通常是 'http://localhost:8080')。
信息
分类
AI与计算