项目:https://github.com/taichuy/1flowbase
作者/组织:taichuy(Org)
创建时间:2026-03-09(约 3 个月)
技术栈:Rust 后端(Axum)+ 前端(pnpm + Turbo)+ PostgreSQL
许可证:Apache-2.0
Stars/Forks/Issues:110 / 10 / 36
一、核心定位:不是路由,是编排
1flowbase 给自己的一句话定义是:"Open-source virtual model gateway for local AI agent clients."
LiteLLM routes models. 1flowbase composes models into workflow-backed virtual model endpoints.
这是它与市面上所有 LLM 网关/代理工具的本质区别:
| 工具类别 | 典型行为 | 1flowbase 的不同 |
|---|---|---|
| Model Router(LiteLLM 等) | 把请求路由到某个具体的模型/提供商 | 把多个模型、工具、验证器、格式化器组合成一个新的虚拟模型 |
| AI Workflow Builder(Dify 等) | 构建一个 AI 应用或工作流 | 把这个工作流发布为标准 API 端点(OpenAI/Claude 兼容) |
| Agent Framework(LangGraph 等) | 帮开发者写代码构建 agent 图 | 提供可视化运行时、协议发布、执行日志 |
| Cost Tracker | 展示 token 或花费总额 | 把成本关联到工作流节点、模型调用、执行追踪 |
1.1 为什么需要这个定位?
现代 AI 工具的请求链路远比用户看到的复杂:
user input + system prompt + developer prompt + tool definitions + project context
+ chat history + command outputs + intermediate model calls + verifier / formatter steps
1flowbase 的核心主张是:"The first step to harness is to see the Agent's execution path clearly."(驾驭的第一步是看清 agent 的执行路径。)
即使一个简单的 hi 输入,在完整上下文(system prompt、tool schema、历史、工作流步骤)叠加后,可能变成一次昂贵的请求。1flowbase 让你看到工作流背后的执行路径,然后基于真实运行时数据优化,而不是猜测。
二、架构拆解:Rust 后端的模块化设计
2.1 工作区结构(Cargo Workspace)
api/
├── apps/
│ ├── api-server/ # 主 API 服务入口(Axum HTTP 服务)
│ └── plugin-runner/ # 插件运行时(支持 JS/TS 插件)
├── crates/
│ ├── domain/ # 领域模型:workflow、node、execution 定义
│ ├── control-plane/ # 控制平面:工作流 CRUD、版本管理、配置
│ ├── orchestration-runtime/# 编排运行时:工作流编译、执行引擎、状态机
│ ├── runtime-core/ # 运行时核心:节点执行、payload 构建、错误处理
│ ├── runtime-profile/ # 运行时性能分析:token 统计、延迟追踪
│ ├── publish-gateway/ # 发布网关:OpenAI/Claude 协议适配、虚拟端点暴露
│ ├── access-control/ # 访问控制:权限、认证、审计
│ ├── plugin-framework/ # 插件框架:HostExtension、模板系统
│ ├── storage-durable/ # 持久化存储:PostgreSQL 抽象
│ ├── storage-ephemeral/ # 临时存储:缓存、会话状态
│ ├── storage-object/ # 对象存储:S3 兼容(文件上传等)
│ └── observability/ # 可观测性:日志、追踪、指标
这是一个**非常清晰的领域驱动设计(DDD)**分层:
- domain:核心业务实体定义,不依赖外部技术
- control-plane:管理面操作
- orchestration-runtime + runtime-core:执行面核心
- publish-gateway:协议适配层
- storage-durable/storage-ephemeral/storage-object:存储分层(持久/临时/对象)
- observability:贯穿所有层的可观测性
2.2 关键技术选型分析
后端:Rust(Axum + Tokio)
- Axum 0.7:基于 Tower 的异步 HTTP 框架,类型安全的路由
- Tokio 全功能运行时:async/await + io + process + net + signal + sync + time + fs
- SQLx 0.8:编译时检查的 SQL(带 PostgreSQL + Rustls + UUID + 时间 + JSON + 迁移)
- Utoipa 5:OpenAPI 3.1 自动生成(Axum 集成)
- Moka 0.12:高性能缓存(future 支持)
- RquickJS 0.11:嵌入式 JS 引擎(插件运行时)
- Jsonschema 0.46:JSON Schema 验证(输出格式化)
前端:pnpm + Turbo
- pnpm:高效的包管理器
- Turbo:构建系统加速(monorepo 缓存优化)
部署:Docker Compose
- 一键部署脚本(Shell/PowerShell/CMD)
- 分离 middleware(PostgreSQL 等)和 application 服务
- 开发辅助脚本:
dev-up.js(启动、状态、停止、重启)
2.3 插件系统:RquickJS 的野心
api/crates 中的 plugin-framework 和 plugin-runner 使用 RquickJS(Rust 绑定的 QuickJS 引擎)来运行插件。这意味着:
- 用户可以用 JS/TS 写自定义节点逻辑
- 插件在沙箱中运行(QuickJS 的隔离性)
- 与 Rust 主进程通过 HostExtension 接口交互
这是一个轻量级但灵活的插件架构——不需要 WASM 的复杂性,但提供了足够的扩展性。
三、核心概念:工作流 → 虚拟模型
3.1 从工作流到端点的五步闭环
Build workflow → Publish endpoint → Call from clients → Inspect trace/tokens/cost → Optimize
Step 1: Build a workflow(可视化编排)
Vision Model → Small Model → Strong Reasoning Model → Verifier → Formatter
节点类型包括:
- 模型节点:调用 LLM(不同模型/参数)
- 工具节点:调用外部 API/函数
- 验证器节点:验证输出结构/内容
- 格式化器节点:格式化最终输出
- 路由节点:条件分支/模型级联
Step 2: Publish as model endpoint(协议适配)
/v1/responses(OpenAI Responses API)/v1/chat/completions(OpenAI Chat Completions API)/v1/messages(Claude-compatible Messages API)
一个工作流可以同时暴露为多个协议端点。
Step 3: Call from clients(透明使用)
客户端看到的只是一个普通的模型名称,如 gpt-4o-virtual 或 claude-sonnet-workflow。请求参数完全兼容标准 API。
Step 4: Inspect execution(全链路追踪)
Request
→ workflow node inputs
→ model calls
→ tool callbacks
→ node outputs
→ token usage / latency / errors
→ final response
Step 5: Optimize and reuse(数据驱动优化)
- 压缩 prompts(去掉冗余上下文)
- 拆分长上下文(多节点并行处理)
- 简单步骤迁移到更便宜模型(级联策略)
- 添加验证器/格式化器(减少重试)
- 添加 fallback 策略(模型降级)
- 发布优化后的工作流为新的虚拟模型
四、典型用例的工程价值
4.1 用例 1:视觉前置 + 文本推理(成本优化)
Image / screenshot / PDF → Vision/OCR node → structured text → strong text model → verifier → final answer
场景:Claude Code 或 Cursor 处理截图/文档时
- 传统做法:直接发给 GPT-4o/Vision 模型(贵)
- 1flowbase 做法:先走小模型 OCR 提取文本(便宜),再走大模型推理(精确),最后验证(兜底)
成本优化效果:根据论文和业界的级联数据,这种策略通常可以降低 50-70% 的 token 成本。
4.2 用例 2:模型级联(Quality/Cost 平衡)
Simple classification → small model (e.g., Qwen3-0.6B)
Formatting → small model (e.g., Qwen3-1.7B)
Complex reasoning → strong model (e.g., Qwen3-32B)
Final verification → verifier node
场景:客服机器人、内容审核、文档处理
- 简单意图识别 → 小模型(1ms 级延迟,几乎免费)
- 复杂情感分析 → 中模型(平衡质量/成本)
- 专业知识问答 → 大模型(只在需要时触发)
- 验证器 → 确保输出格式正确,避免用户看到错误
4.3 用例 3:为 Coding Agent 构建可编程上游模型
Code generation → test/lint check → reviewer node → fix node → final patch
场景:Claude Code、Cursor、Windsurf 等编码工具
- 问题:这些工具直接调用 Claude/GPT 4,看不到中间步骤
- 1flowbase 方案:把「生成→测试→审查→修复」封装为一个虚拟模型
- 客户端只需调用
my-coding-agent模型 - 开发者在 1flowbase 中调试每个节点(哪个测试失败?哪个审查意见有效?哪个修复步骤耗时最长?)
4.4 用例 4:输出结构保证(Schema 验证)
LLM → JSON Schema Validator → Formatter → Final Output
场景:API 响应生成、工具调用参数、自动化任务
- 大模型输出 JSON 但格式错误 → 验证器捕获
- 验证器触发重试或格式化器修正
- 最终输出保证符合 schema
五、与竞品的差异化分析
5.1 vs LiteLLM(最常被对比的)
| 维度 | LiteLLM | 1flowbase |
|---|---|---|
| 核心功能 | 模型路由(fallback、负载均衡) | 工作流编排(多节点组合) |
| 抽象层级 | 模型级别 | 工作流级别 → 虚拟模型级别 |
| 客户端感知 | 客户端知道调用的是哪个模型 | 客户端只看到一个虚拟模型 |
| 可观测性 | 请求级别的日志 | 节点级别的追踪(输入/输出/延迟/token) |
| 适用场景 | 多模型切换、统一计费 | 复杂工作流封装、调试优化 |
关系:互补。可以用 LiteLLM 做底层路由,1flowbase 做上层编排。
5.2 vs Dify / Flowise(AI 工作流构建器)
| 维度 | Dify / Flowise | 1flowbase |
|---|---|---|
| 目标用户 | 构建 AI 应用(聊天机器人、知识库) | 构建可复用的虚拟模型端点 |
| 部署方式 | 应用平台 | 模型网关 |
| 协议兼容 | 通常自带 UI/Chat | 完全兼容 OpenAI/Claude API |
| 生态定位 | 应用层 | 基础设施层(更接近 LLM 网关) |
5.3 vs LangGraph / CrewAI(Agent 框架)
| 维度 | LangGraph / CrewAI | 1flowbase |
|---|---|---|
| 编程模型 | 代码定义(Python) | 可视化编排 + 配置 |
| 运行时 | 库级别 | 服务级别(带 API 暴露) |
| 调试方式 | 代码调试/日志 | 节点级追踪 + 可视化 |
| 适用场景 | 复杂自定义 agent | 标准化、可复用的模型服务 |
六、技术成熟度与工程风险
6.1 当前状态(截至 2026-06-14)
已实现的:
- ✅ 可视化工作流编辑器
- ✅ 多节点工作流编排
- ✅ 虚拟模型端点发布(3 种协议)
- ✅ 流式响应支持
- ✅ 基础执行日志
- ✅ 工具回调追踪
- ✅ 应用级 token 统计
- ✅ Prompt 和模型配置版本历史
开发中的:
- 🔄 更深层的本地 agent 对话收集
- 🔄 Token Bill of Materials(系统 prompts、工具定义、历史、命令输出的节点级来源)
- 🔄 Agent 会话搜索和回放
- 🔄 Recall Pack 导出
- 🔄 异常成本检测和优化建议
- 🔄 Claude Code / Codex / aionui 模板
- 🔄 MCP-aware 插件节点和工具调用源归因
注意:1flowbase 目前不定位为 MCP 服务器或 MCP 网关。MCP 感知能力在路线图上,但当前产品重点是发布兼容模型端点和追踪工作流执行。
6.2 潜在工程风险
1. 成熟度风险(110 stars,36 open issues)
- 项目仅 3 个月,社区规模较小
- 36 个 open issues 说明还有不少问题待解决
- 生产环境使用需要谨慎评估
2. 技术栈门槛
- 后端 Rust + 前端现代 TS 栈,对运维团队要求较高
- 需要 Node.js >= 24.0.0 + 最新稳定 Rust + Docker
- 编译时间较长(Rust 的编译开销)
3. 插件生态初期
- RquickJS 插件系统虽然轻量,但生态尚未成熟
- 缺少社区插件市场(路线图上,但尚未实现)
4. 与现有 MCP 生态的整合
- 明确声明目前不是 MCP 网关
- 但 MCP 正在成为标准(Anthropic 推动),如果整合不及时可能失去生态优势
6.3 架构优势
1. 自托管优先(Self-hosted first)
- 不依赖外部 SaaS,数据完全本地
- 对数据隐私敏感的企业友好
2. 透明性设计
- 不倡导隐蔽的模型替换(stealthy model replacement)
- 所有端点配置明确、可观察、可审计
3. 模块化架构
- 清晰的分层(domain/control-plane/runtime/gateway/storage/observability)
- 便于维护和扩展
七、路线图与未来方向
7.1 近期(Enhancing)
- Token Bill of Materials:这是最有价值的功能——将 token 成本分解到每个节点、每次模型调用、每个工具回调。这对成本优化至关重要。
- 异常成本检测:自动识别异常的 token 消耗(比如某次请求突然用了 10 倍 token)
- MCP-aware 插件节点:接入 Model Context Protocol 生态
7.2 中期(Planned)
- 低代码应用构建平台:从工作流编排扩展到应用构建
- 团队工作空间和多租户管理:企业级功能
- 权限、审批、审计和成本治理:合规需求
- 模板市场和 Workflow Recipe 生态:社区驱动的模板共享
7.3 长期想象空间
- 模型评测与自动优化:基于执行日志自动推荐最佳模型级联策略
- A/B 测试框架:不同工作流版本的对比测试
- 智能降级:根据实时成本和延迟自动调整工作流节点
- 跨工作流复用:将常用子工作流(如 "验证器 → 格式化器")打包为可复用组件
八、总结:值得关注的定位
1flowbase 的核心价值在于填补了一个空白:
在「模型路由」和「AI 应用构建」之间,有一个「工作流封装为模型端点」的层次。
- LiteLLM 做底层路由(选哪个模型)
- Dify 做上层应用(构建聊天机器人)
- 1flowbase 做中间层(把多个模型组合成一个新标准模型)
这个中间层的价值在于:
- 客户端透明:现有代码无需修改,只需改模型名
- 可观测性:看清 agent 的完整执行路径
- 成本可控:基于数据优化,而非猜测
- 自托管:数据不流出本地
对于正在使用 Claude Code、Cursor、OpenClaw 等本地 AI agent 的团队,1flowbase 提供了一个理解和优化 agent 执行路径的基础设施。它的口号 "The first step to harness is to see the Agent's execution path clearly" 精准地切入了这个需求。
推荐关注场景:
- 本地 AI agent 工作流的可观测性需求
- 多模型级联的成本优化场景
- 需要标准化 API 但内部流程复杂的企业
- 自托管优先的合规要求
项目:https://github.com/taichuy/1flowbase
社区:Linux.do — Learn AI on L-Station
#AIAgent #LLMGateway #WorkflowEngine #可观测性 #成本优化 #本地部署 #Rust #虚拟模型 #小凯
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。