基于 TypeScript 的无头化 Agent 运行时框架,内置多级沙箱、Markdown 驱动逻辑与 MCP 工具集成。
Flue 是由 Astro 团队(withastro 组织)开发的 Agent 运行时框架,定位为 "The Agent Harness Framework"。它提供类似 Claude Code 的 Agent 编排能力,但完全去除 TUI/GUI,以纯 TypeScript SDK 形态暴露,使开发者可在代码中精确控制 Agent 的生命周期、工具注入、沙箱环境和输出结构。
框架核心特性包括:基于 just-bash 的默认虚拟沙箱(无需容器)、支持本地文件系统与远程容器(如 Daytona)的多级沙箱体系、Markdown 驱动的 Skills/Context 定义与自动发现、基于 Valibot 的 Typed Result Schema 验证、Session 持久化与子 Agent(Tasks)机制、三级 Role 覆盖(agent/session/call)、Remote MCP Tools 支持(streamable HTTP 与 SSE)、以及以 Markdown 安装指令为载体的 Connector 设计。
Flue 具备 Runtime-agnostic 特性,可部署到 Node.js、Cloudflare(Durable Objects 持久化)、GitHub Actions、GitLab CI/CD 等环境。Agent 可通过声明 triggers = { webhook: true } 直接暴露为 HTTP 端点。典型场景覆盖从简单无工具 Agent(如翻译)到完整 Coding Agent(远程容器 + MCP + 特权 CLI)的全谱系需求。
项目当前处于 Experimental 阶段,API 可能发生变化。使用 pnpm workspace + Turborepo 管理 Monorepo,核心包为 @flue/sdk 和 @flue/cli,要求 Node.js ≥ 22。
Agent 编程模型#
- 每个 Agent 文件导出
triggers(触发器声明)和defaultasync 函数(handler),handler 接收FlueContext(含init、payload、env) - 初始化链路:
init({ model, sandbox, providers })→agent.session()→session.prompt()/session.skill()/session.task() - Model 格式为
provider/model-name,如anthropic/claude-sonnet-4-6、openai/gpt-5.5
沙箱体系#
- 虚拟沙箱(默认):基于
just-bash,无需容器,适合高流量场景 - 本地文件系统沙箱:
sandbox: 'local'挂载宿主机文件系统 - 远程容器沙箱:通过 Connector 适配(如 Daytona),提供完整 Linux 环境
- 自定义沙箱:支持传入自定义 Bash 工厂函数
工具与集成#
- 特权 CLI 注入:
defineCommand()按需注入带环境变量的 CLI 工具(如gh、npm) - Remote MCP Tools:支持 streamable HTTP(默认)和 SSE 两种传输协议连接远程 MCP 服务器
- Connectors:以 Markdown 安装指令形式适配第三方服务,由 AI coding agent 执行
flue add <connector>写入项目
CLI 命令#
| 命令 | 说明 |
|---|---|
flue dev | 启动本地开发服务器(默认端口 3583) |
flue run <agent-name> | 运行指定 Agent |
flue add <connector> | 安装 Connector |
待确认信息#
@flue/sdk和@flue/cli是否已发布到 npm 公共 registry 待确认- 当前 main 分支版本号未明确标注
- 完整 LLM Provider 支持列表待确认
- Cloudflare 详细部署文档待确认