写 AI 智能体最别扭的地方,是“代理逻辑”和“运行环境”纠缠在一起:今天用本地进程跑,明天要丢进云容器,后天又想用远程沙箱,代码就得反复改。Flue 的主张是“代理即函数”——把智能体写成一个普通函数,运行环境(本地/虚拟/远程容器沙箱)作为可替换的配件组合进去。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | flue |
| GitHub地址 | https://github.com/withastro/flue |
| 项目描述 | Astro 团队推出的沙箱智能体框架,代理即函数 |
| 作者 | withastro |
| 开源协议 | Apache License 2.0 |
| 开源状态 | 公开 |
| Languages | TypeScript |
| 支持平台 | Windows / macOS / Linux |
| 最后更新 | 2026-10-27 |
一、项目介绍
withastro/flue 是 Astro 团队推出的“沙箱代理框架(sandbox agent framework)”。核心理念是:代理本身就是函数,你用 'use agent' 指令声明一个 agent 函数,然后通过 useModel / useSandbox / useSkill / useTool 等钩子,把模型、沙箱、技能、工具组装进去。框架负责把这套组合完整调度起来,在虚拟、本地或远程容器沙箱中真实执行。
二、核心优势
- 代理即函数:用熟悉的代码结构描述智能体,降低心智负担。
- 部署无感:同一份 agent 代码可跑在本地、虚拟或远程沙箱。
- 组合式:模型、沙箱、技能、工具都是可插拔的钩子。
- 官方背书:来自 Astro 生态,工程化成熟度较高。
- 跨平台:基于 TypeScript,Windows / macOS / Linux 均可开发。
三、适用场景
- 需要把智能体部署到隔离沙箱执行不安全任务的团队。
- 想在本地与云端共用同一套 agent 代码的开发者。
- 构建需要调用 GitHub 等外部工具的多步代理。
四、安装教程
Flue 以 npm 包形式提供,核心运行时与 CLI:
npm install @flue/runtime @flue/cli初始化一个代理项目:
npx @flue/cli init my-agent常见报错:Node 版本过低会导致 ESM 解析失败,建议使用 Node 18+;若 npx 拉取缓慢,可先 npm i -g @flue/cli 再执行。
五、使用示例
定义一个负责分类问题的 agent(agents/triage.ts):
'use agent';
import { useModel, useSandbox, useTool } from '@flue/runtime';
import { local } from '@flue/runtime/node';
import { openIssue, searchCode } from '../tools/github.ts';
export function Triage() {
useModel('anthropic:claude-sonnet');
useSandbox(local());
useTool(openIssue);
useTool(searchCode);
// 代理逻辑:读取 issue、检索代码、给出分类建议
}真实运行:执行后 Triage 会在本地沙箱里加载 GitHub 工具,对传入的 issue 做代码检索并输出分类建议,整个过程不依赖手写调度代码。
六、常见问题
Q:和 LangGraph 这类框架有什么区别?
A:Flue 强调“函数即代理”与多沙箱部署,调度代码更贴近普通函数写法。
Q:沙箱支持哪些后端?
A:文档列出 local(本地)、virtual(虚拟)、remote container(远程容器)三类,可按安全需求选择。
Q:必须配合 Astro 吗?
A:不必须,Flue 是独立框架,可嵌入任意 Node/TS 项目。
七、总结
Flue 用“代理即函数 + 可替换沙箱”的思路,降低了智能体工程化的门槛,尤其适合需要在隔离环境跑代理的场景。作为 Apache-2.0 协议的开源项目,值得关注其后续在部署侧的演进。
评论 0
还没有评论,来说两句吧。