项目简介
BeemFlow是一个为LLM(大型语言模型)协作者时代设计的开源工作流协议、运行时和全球工具注册中心。它使开发者和AI代理能够以结构化的方式定义和执行自动化流程,并以标准化的Model Context Protocol (MCP) 协议向LLM客户端暴露这些能力。
主要功能点
- AI原生工作流: 使用YAML、JSON或原生代码定义人类和AI都易于理解和协作的自动化工作流。
- 统一工具访问: 通过内置适配器或连接外部MCP服务器,无缝集成并调用各种API、服务和遗留系统。
- MCP服务器实现: BeemFlow运行时本身可以作为MCP服务器运行,通过JSON-RPC协议为LLM客户端提供调用工具、启动工作流、访问运行时状态等功能。
- 状态管理与持久化: 支持工作流暂停(例如,等待人工审批)和从中断处恢复,提供可靠的长时运行自动化。
- 多接口支持: 工作流和运行时操作可通过命令行(CLI)、HTTP API或MCP协议访问,实现接口的统一。
- 灵活部署: 可作为简单的CLI工具运行,或启动为持久化的HTTP/MCP服务。
安装步骤
BeemFlow使用Go语言编写。安装通常涉及下载预编译的二进制文件或从源代码构建。
- 克隆仓库:
git clone https://github.com/awantoch/beemflow - 进入目录:
cd beemflow - 构建二进制文件:
构建成功后,将在项目根目录(或 './bin' 目录)找到 'flow' 可执行文件。make build # 或者使用 Go 命令: go build .
MCP服务器配置 (供MCP客户端使用)
BeemFlow运行时可以启动为一个MCP服务器实例,供外部的MCP客户端(如LLM应用、AI代理)连接和调用其能力。MCP客户端需要知道如何连接到这个运行中的BeemFlow实例。
BeemFlow支持通过以下两种主要模式启动为MCP服务器:
-
Stdio模式 (推荐用于进程内或本地集成):
- 启动 BeemFlow 作为 Stdio MCP 服务器的命令:
/path/to/your/flow mcp serve --stdio - MCP客户端配置示例 (JSON 格式):
{ "name": "beemflow-runtime", "transport": "stdio", "command": ["/path/to/your/flow", "mcp", "serve", "--stdio"], "description": "BeemFlow runtime providing workflow and tool execution via Stdio MCP" }
- 启动 BeemFlow 作为 Stdio MCP 服务器的命令:
-
HTTP模式 (推荐用于网络化访问):
- 启动 BeemFlow 作为 HTTP MCP 服务器的命令 (端口可自定义):
/path/to/your/flow mcp serve --addr localhost:3001 - MCP客户端配置示例 (JSON 格式):
{ "name": "beemflow-runtime", "transport": "http", "endpoint": "http://localhost:3001/mcp", "description": "BeemFlow runtime providing workflow and tool execution via HTTP MCP" }
- 启动 BeemFlow 作为 HTTP MCP 服务器的命令 (端口可自定义):
重要提示: 上述配置是提供给 连接到 BeemFlow 服务器的 MCP 客户端 使用的。BeemFlow 自身的运行时配置(如存储、事件总线、其需要连接的 其他 MCP 服务器等)则保存在 'flow.config.json' 文件中。
基本使用方法
一旦 BeemFlow 作为 MCP 服务器通过 'flow mcp serve' 命令启动并运行,兼容的 MCP 客户端就可以通过发送符合 JSON-RPC 协议的请求来调用 BeemFlow 暴露的各种工具和操作。这些操作包括但不限于:
- 'beemflow_list_tools': 获取 BeemFlow 自身暴露的所有工具列表(例如,启动工作流、列出工作流等操作)。
- 'beemflow_start_run': 根据名称启动一个已定义的工作流。
- 'beemflow_get_flow': 获取某个工作流的定义。
- 'beemflow_validate_flow': 验证工作流定义的有效性。
- 'beemflow_registry_index': 获取 BeemFlow 集成的所有工具和 MCP 服务器的注册信息。
LLM 客户端可以使用其内置的工具调用能力,根据 BeemFlow 提供的工具描述(通过 'beemflow_list_tools' 等获取)构造相应的 JSON-RPC 请求发送给 BeemFlow MCP 服务器端点来执行所需的操作。
信息
分类
AI与计算