Flue 智能体框架
用可编程的 TypeScript 运行框架,让任意模型具备自主完成真实任务所需的上下文、工具与安全沙箱。
- Star 数
- ★ 8.6k
- 最近更新
- 19 天前
- License
- Apache-2.0
- 主语言
- TypeScript
- FA 评分
- 47/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API(部分支持)
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 需要在受控沙箱里复现问题、定位根因并尝试修复的缺陷分流团队
- 不适合
- 只需要简单连续对话、不涉及工具与沙箱的团队
- 不愿意写 TypeScript 代码、期望零代码配置的使用者
- 源码审查
- 47/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
Flue 是一个基于 TypeScript 的智能体运行框架(harness framework),而非单纯的 SDK。开发者在一个导出函数中通过 useModel、useSandbox、useSkill、useTool 组合模型、沙箱、技能与工具,并返回一段自然语言任务说明,函数本身即智能体。运行时提供会话、工具、技能、文件系统访问与虚拟/本地/远程容器沙箱,并支持持久化恢复、子智能体、MCP 工具接入与事件通道。它由 @flue/runtime、@flue/vite、@flue/cli、@flue/sdk、@flue/opentelemetry、@flue/postgres 等包组成,可部署到 Node.js、Cloudflare Workers、GitHub Actions、GitLab CI/CD、Render 等环境,并可用 OpenAI 兼容或 Anthropic 等模型提供商。可观测性通过 OpenTelemetry、Braintrust、Sentry 或自定义 observer 导出。
在 agents/*.ts 中用 'use agent' 指令声明智能体函数,调用 useModel 指定模型、useSandbox 挂载 local() 等沙箱、useSkill 加载 SKILL.md 技能文档、useTool 注册工具函数(如 openIssue、searchCode),并 return 一段任务说明作为系统级上下文。运行时据此组装上下文、加载技能与工具,让模型在沙箱内读写文件、调用工具并多轮推进直至完成任务;会话状态与已接受的工作可在失败或重启后持久恢复。它可连接 MCP Server 获取已认证的外部工具,通过 Channels 接收 Slack、Teams、Discord、GitHub 等验证过的事件,并通过 @flue/vite 的 vite dev / vite build 在 Node 与 Cloudflare 上运行,用 flue CLI 本地执行,用 @flue/sdk 消费已部署智能体的会话。
- 需要在受控沙箱里复现问题、定位根因并尝试修复的缺陷分流团队
- 希望把 Slack、GitHub、Discord 等平台事件直接接入自主智能体工作流的运维或平台团队
- 要在 Node.js 或 Cloudflare Workers 上部署自有智能体服务、并用 @flue/sdk 对接前端的工程团队
- 需要持久化会话与失败恢复(Postgres 适配器)的长时任务场景
- 需要为不同任务定义专门子智能体并按需委派的复杂工作流开发者
如何安装或部署这个 Agent?
仓库 README 未给出完整的安装与初始化命令(如包管理器安装步骤或项目脚手架命令),可确认的包为 @flue/runtime、@flue/vite、@flue/cli、@flue/sdk、@flue/opentelemetry 与 @flue/postgres,并需 Node.js 运行时与已选择的模型提供商凭证。以下为 README 中智能体文件的实际写法:
// agents/triage.ts
'use agent';
import { useModel, useSandbox, useSkill, useTool } from '@flue/runtime';
import { local } from '@flue/runtime/node';
import triage from '../skills/triage/SKILL.md';
import verify from '../skills/verify/SKILL.md';
import { openIssue, searchCode } from '../tools/github.ts';
export function Triage() {
useModel('anthropic/claude-sonnet-4-6');
useSandbox(local());
useSkill(triage);
useSkill(verify);
useTool(openIssue);
useTool(searchCode);
return `Triage a bug report end-to-end: reproduce the bug,
diagnose the root cause, verify whether the behavior is
intentional, and attempt a fix.`;
}如何使用这个 Agent?
在智能体函数中组合模型、沙箱、技能与工具后,用 flue CLI 本地运行,或通过 @flue/vite 启动与构建:
vite devvite build本地运行使用 flue 二进制:
flue部署时选择目标运行时,README 列出 Node.js、Cloudflare Workers、GitHub Actions、GitLab CI/CD、Daytona 与 Render;已部署的智能体会话可通过 @flue/sdk 消费,追踪可接入 @flue/opentelemetry。
这个 Agent 有哪些优点和局限?
- 用一个 TypeScript 函数即可声明完整运行框架,模型、沙箱、技能、工具集中组合,结构清晰
- 提供虚拟、本地、远程容器三类沙箱路径,智能体可在受控环境中读写文件与执行操作
- 内置持久化恢复(durability)与 @flue/postgres 适配器,已接受的工作可在失败重启后继续
- 可接入 MCP Server 与 Slack、Teams、Discord、GitHub 等 Channels 事件,并能导出 OpenTelemetry 等遥测
- 部署目标明确:Node.js、Cloudflare Workers、GitHub Actions、GitLab CI/CD、Render 等
- README 未提供完整的安装、脚手架与配置步骤,上手需自行补齐项目结构与依赖版本
- 绑定 TypeScript 与函数式 'use agent' 编写范式,跨语言团队需要额外学习成本
- 生产使用需要自备模型提供商凭证,并按调用量付费
- 持久化、子智能体与可观测性等能力分散在多个包与外部服务中,完整落地需要较多配置
这个 Agent 与同类方案有什么区别?
README 将早期“直接用裸 LLM API 调用”的方式与 Claude Code、Codex 这类自主智能体对比,指出前者只适合简单聊天与脚本任务;Flue 定位为提供同类自主能力但可自行编程与部署的框架。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Flue 智能体框架 当前 | 47 · 缺口较多 | 开发框架免费 + 模型费 | ★ 8.6k | 19 天前 | TypeScript | — |
| Jev Review | 81 · 表现良好 | Agent 插件 / 技能免费 + 模型费 | ★ 248 | 1 个月前 | TypeScript | Codex · Claude Code |
| Open-Inspect 背景智能体系统 | 77 · 表现良好 | 自托管服务免费 + 模型费 | ★ 3.5k | 今天 | TypeScript | OpenAI API · Claude API |
| Jevbridge 决策桥 | 62 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 48 | 1 个月前 | TypeScript | Codex · OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
工作流层面可见最小权限实践:approve-contributor 与 pr-redirect 均设 permissions:{} 并按 job 授予最小权限,pr-redirect 明确不检出 PR head、不执行 fork 代码,且将特权写令牌与沙箱只读令牌分离,值得肯定(least_privilege=2)。但框架本身宣称提供'安全沙箱'却未在可见文件中说明沙箱隔离机制、权限边界或确认流程;README 示例直接赋予 openIssue 等写操作工具而无任何用户确认环节(user_confirmation=1)。数据流与敏感数据处理仅靠工作流注释间接体现,缺少框架级说明(data_flow_transparency=1、sensitive_data_handling=2)。依赖安全仅见 package.json 版本范围,无锁文件审计或漏洞策略(dependency_security=1)。外部副作用与回滚:工作流对失败分支有 deleteRef 清理,但框架对 agent 写操作无回滚/撤销机制说明(external_effects=1、rollback=1)。来源归属仅 LICENSE 与包名,无 NOTICE 或贡献者归属说明(source_attribution=1)。
README 与 package.json、工作流脚本相互一致(包名、CLI 路径、构建命令吻合),自洽性尚可(self_consistency=2)。依赖可用性仅给出 engines 与版本范围,无锁文件或安装验证证据(dependency_availability=1)。失败信息在工作流中有明确 ::error:: 与退出码处理,框架层失败信息未展示(failure_messages=2)。
README 列出多部署目标(Node、Cloudflare、GitHub Actions、Daytona 等)与多场景,受众与场景覆盖较好(audience_and_scenarios=2)。但能力边界(沙箱能做什么、不能做什么)与触发精度(agent 何时自主行动、何时需确认)缺乏明确界定(capability_boundaries=1、trigger_precision=1)。环境适配有 engines 与多平台部署说明(environment_fit=2)。
README 结构清晰、包表与功能列表组织良好(information_architecture=2)。安装说明仅有 pnpm 脚本,无面向使用者的安装步骤(install_notes=1)。命名稳定性无版本或 API 稳定性承诺(naming_stability=1)。示例丰富但无 FAQ(examples_and_faq=2)。无已知限制章节(known_limitations=0)。LICENSE 为完整 Apache-2.0 文本且 package.json 声明一致(license=3)。无 CHANGELOG 或版本策略(versioning_changelog=0)。维护责任因发布者未验证且无维护者说明,仅能从工作流推断(maintenance_responsibility=1)。
示例代码可直接理解并产出可用 agent 定义,输出可用性较好(output_usability=2)。作为'harness 框架'相对裸 SDK 有差异化价值(marginal_value=2)。但成本(模型调用、沙箱、多平台部署)与收益权衡缺乏说明(cost_benefit=1)。
README 大量链接指向外部文档站点,仓库内无法核验其声明(claim_traceability=1)。跨源佐证有限,仅工作流与 package.json 部分印证(cross_source_corroboration=1)。事实与推断分离一般,'安全沙箱''自主'等为断言性表述(fact_inference_separation=1)。
- README 宣称'安全沙箱'但仓库内无隔离机制、权限边界或确认流程说明,部署前需自行审查沙箱实现。
- 示例 agent 直接授予 openIssue 等写操作工具且无用户确认环节,存在非预期外部副作用风险。
- 发布者身份未经验证,维护责任与更新路径不明确,需谨慎评估长期维护。
- 无 CHANGELOG、版本策略或已知限制说明,API 稳定性未知。
- 依赖安全仅有版本范围,无锁文件审计或漏洞缓解证据。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。