项目简介

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语言编写。安装通常涉及下载预编译的二进制文件或从源代码构建。

  1. 克隆仓库:
    git clone https://github.com/awantoch/beemflow
  2. 进入目录:
    cd beemflow
  3. 构建二进制文件:
    make build 
    # 或者使用 Go 命令: go build .
    构建成功后,将在项目根目录(或 './bin' 目录)找到 'flow' 可执行文件。

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"
      }
  • 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 服务器的 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与计算