项目简介
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部署,以简化环境配置。
-
使用Docker (推荐): 在FlowDex仓库的根目录,运行以下命令:
docker compose up --build这将启动FlowDex API服务、Redis缓存/持久化服务以及MCP HTTP桥接服务。
-
本地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 -
配置环境变量: 在项目根目录创建'.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客户端中的配置示例:
-
本地桌面环境 (通过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克隆仓库的实际根目录路径。
-
远程/浏览器环境 (通过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与计算