Flue:Astro 团队出品的无头可编程 AI Agent 框架
Flue 是 Astro 团队开源的 TypeScript Agent 框架:无头可编程设计——Agent 可由 API/Webhook/cron 触发无需人在场,提供会话管理、技能执行、沙箱与结构化输出,可部署到 Node.js 或 Cloudflare Workers。本文讲清 harness 理念与用法。
直接回答:Flue 是 Astro 团队开源的 TypeScript Agent 框架(最初为自动化 Astro 自家 GitHub 仓库的 AI 工作流而生)。设计哲学是无头可编程:Agent 无需人类在场,由 API 调用、Webhook 或 cron 触发,可部署到 Node.js 或 Cloudflare Workers。
Harness 概念:LLM 只是引擎
Flue 文档把 AI Agent 定义为"跑在 harness 里的 LLM"。LLM 提供推理能力;harness 提供工具、上下文、记忆与环境——让 LLM 能与外部系统交互、完成任务。
没有 harness 的 LLM:响应单次 API 调用,无持久状态、无工具访问。Flue 就是可编程的 harness 层:会话管理、工具与技能执行、沙箱环境、结构化输出格式。
安装与初始化
在独立测试目录安装并按当前官方快速开始配置:
npm install @flue/runtime @flue/cli
flue.config.ts:
import { defineConfig } from '@flue/runtime/config';
export default defineConfig({ target: 'node' });
选择 Cloudflare 目标时另按部署指南配置 Vite 插件、资源与持久化。模型凭证仅保留在服务端,不提交 .env。
创建 Agent
当前 API 使用 Agent 函数与 hooks,不是旧 createAgent 配置。局部示例 src/agents/assistant.ts:
'use agent';
import { useModel } from '@flue/runtime';
export function Assistant() {
useModel('anthropic/claude-haiku-4-5');
return '请简短回答用户问题,不执行外部操作。';
}
按对应提供商配置可用凭证后:
npx flue run src/agents/assistant.ts --id demo-session --message "解释一次重试与幂等的关系"
示例来自当前接口形态,未在本轮运行。模型名需在所用渠道可用;会话持久化与恢复契约依部署目标配置。
工作流、沙箱与 HTTP 暴露
Flue 组织工具、技能、子 Agent 和会话,HTTP 路由及调度仍需配置。Webhook 要验证来源、去重与权限,不能因为无头运行就取消审批。
本地、虚拟或远程容器执行环境的隔离能力不同,应检查网络、文件和秘密访问。持久化不是无限 CPU 时间,也不使具有外部副作用的任务天然只执行一次。
适合谁
- 已在使用 Astro 生态或偏好 TypeScript 全栈的团队
- 需要把 Agent 嵌进 CI/CD、Webhook 自动化的开发者
- 想要边缘部署(Cloudflare Workers)Agent 的场景
常见问题(FAQ)
Q:Flue 和 LangChain/LangGraph 的区别?
A:LangGraph 编排任务图,偏库;Flue 是带运行时与部署目标的完整框架——会话、沙箱、HTTP 端点开箱即用,理念更接近"Agent 的 Web 框架"。
Q:必须用 Claude 吗?
A:不锁定。model 字段可配置其他提供方,按环境变量里的 API key 路由。
Q:Cloudflare Workers 部署有什么限制?
A:受 Workers 的 CPU 时间与请求时长限制,长任务要拆步或借 Durable Objects 做状态续跑——还需按对应目标的持久化和恢复契约配置;Durable Objects 不是无限运行或任意副作用自动回滚。
参考资料
资料核对日期:2026 年 9 月 29 日。本文基于公开文档整理,代码片段和评估方案未作独立运行或性能验证;厂商测试结果已注明来源。