项目简介

FlowDex是一个旨在优化LLM交互的后端服务,通过智能地管理上下文、路由功能调用和精细控制Token使用,来提升大型语言模型在复杂任务中的效率和表现。它尤其为n8n工作流和Claude Code (MCP) 环境设计,提供无缝的集成体验。

主要功能点

  • 高效上下文管理: 仅发送上下文的变化部分(Delta Context),大幅减少Token消耗,有效避免重复内容。
  • Token预算控制: 对系统提示、上下文、工具和用户输入设定严格的Token上限,避免超额使用,提升成本效益。
  • 语义检索: 根据查询内容智能召回相关的历史信息或知识片段,为LLM提供更丰富的背景信息。
  • 功能路由: 允许LLM调用外部定义的工具或函数,并根据成本提示智能选择最合适的工具。
  • 可复现性: 保存每次LLM运行的详细记录(Run Manifest),方便重现和调试问题。
  • MCP桥接: 作为MCP服务器,与兼容Model Context Protocol (MCP) 的客户端(如Claude Code)通信,暴露FlowDex的核心功能作为可调用的工具。

安装步骤

FlowDex推荐通过Docker部署,以简化环境配置。

  1. 使用Docker (推荐): 在FlowDex仓库的根目录,运行以下命令:

    docker compose up --build

    这将启动FlowDex API服务、Redis缓存/持久化服务以及MCP HTTP桥接服务。

  2. 本地Python安装: 确保您的系统安装了Python 3.10+。

    python -m venv .venv && source .venv/bin/activate
    pip install -r server/requirements.txt
    uvicorn server/app:app --reload --port 8787
  3. 配置环境变量: 在项目根目录创建'.env'文件,或作为Docker环境变量设置。请务必根据您的实际情况进行配置:

    FLOWDEX_PORT=8787
    FLOWDEX_MODEL=anthropic/claude-3-5-sonnet
    FLOWDEX_CACHE_DIR=.flowdex_cache
    FLOWDEX_MAX_TOKENS=6000
    FLOWDEX_BUDGET_SYSTEM=1000
    FLOWDEX_BUDGET_CONTEXT=2500
    FLOWDEX_BUDGET_USER=1500
    FLOWDEX_BUDGET_TOOLS=1000
    FLOWDEX_API_KEY=your-secure-api-key # **请务必更改此项以确保FlowDex API安全**
    ANTHROPIC_API_KEY=your-anthropic-api-key # **用于调用Anthropic LLM,必填**

    请务必设置'FLOWDEX_API_KEY'用于FlowDex API的认证,以及'ANTHROPIC_API_KEY'用于调用Anthropic LLM。

服务器配置 (MCP客户端使用)

MCP客户端需要配置FlowDex作为其上下文服务。以下是两种主要的连接方式及其在MCP客户端中的配置示例:

  1. 本地桌面环境 (通过Stdio): 如果您的MCP客户端(例如VS Code上的Claude Code扩展)运行在本地桌面,可以直接通过标准输入输出(Stdio)协议连接。

    {
      "name": "FlowDex 本地 MCP 服务",
      "command": "python",
      "args": ["/path/to/FlowDex/mcp/server.py"],
      "description": "FlowDex服务器,通过Stdio桥接本地API服务,提供LLM上下文管理和工具。"
    }
    • 'name': 这是在MCP客户端中显示该MCP服务器的名称。
    • 'command': 用于启动MCP服务器进程的命令。在此示例中为 'python'。
    • 'args': 传递给'command'的参数列表。这里指定了FlowDex MCP Stdio桥接脚本的完整路径。请将'/path/to/FlowDex/'替换为您的FlowDex克隆仓库的实际根目录路径。
  2. 远程/浏览器环境 (通过HTTP): 如果MCP客户端运行在远程服务器或浏览器环境(如Unraid, Codespaces),您可以使用HTTP桥接连接。

    {
      "name": "FlowDex 远程 MCP 服务",
      "command": "http",
      "args": {
        "url": "https://your-host/mcp",
        "headers": {
          "X-API-Key": "your-flowdex-api-key"
        }
      },
      "description": "FlowDex HTTP桥接服务,适用于远程或浏览器环境的MCP客户端。"
    }
    • 'name': 这是在MCP客户端中显示该MCP服务器的名称。
    • 'command': 指定MCP客户端应使用'http'协议连接。
    • 'args': 包含HTTP连接详情的对象。
      • 'url': FlowDex MCP HTTP桥接服务的可访问URL。如果您使用Docker Compose部署,默认暴露在主机的'8788'端口。在生产环境中,建议将其放置在反向代理(如Nginx、Cloudflare)后面并使用HTTPS。
      • 'headers': 包含HTTP请求头部的对象。如果您的FlowDex服务器配置了'FLOWDEX_API_KEY',客户端需要通过'X-API-Key'头部发送此密钥以进行认证。请将'your-flowdex-api-key'替换为实际的API密钥。

基本使用方法

在MCP客户端(如Claude Code)中配置FlowDex服务器后,LLM可以利用FlowDex提供的功能:

  • 存储上下文 (Memory): 通过FlowDex API的'/memory/put'端点存储命名上下文,供后续LLM推理使用。
    • 例如:向 'POST /memory/put' 发送 JSON body: '{"id": "project_overview", "data": "这是一个关于Alpha项目概要的文本。"}'
  • 获取上下文: 通过FlowDex API的'/memory/get'端点检索存储的上下文。
    • 例如:向 'GET /memory/get?id=project_overview' 发送请求。
  • 注册工具: 通过'/tools/register'端点注册供LLM调用的外部工具,这些工具包含名称、描述和JSON Schema。
    • 例如:向 'POST /tools/register' 发送 JSON body: '{"name": "search_database", "description": "在项目数据库中搜索信息。", "schema": {"query": "string"}}'
  • 进行推理: MCP客户端通过调用FlowDex服务器的'flowdex.infer'方法,发送用户输入、系统提示、要包含的上下文ID和可选的工具列表来启动LLM推理。FlowDex将根据这些信息构建高效的提示、执行语义检索(如果请求)、考虑可用工具,并最终调用配置的LLM。

信息

分类

AI与计算