惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
U
Unit 42
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
月光博客
月光博客
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
小众软件
小众软件
B
Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
美团技术团队
Y
Y Combinator Blog
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园_首页
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
爱范儿
爱范儿
B
Blog RSS Feed
V
Visual Studio Blog
MyScale Blog
MyScale Blog

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次
Flue:下一代自主Agent开发框架,让AI真正拥有自主能力
Cheman · 2026-06-19 · via BlogFinder

今天在 GitHub Trending 上看到一个有意思的项目:Flue,这是一个由Astro团队推出的Agent Harness框架,专注于帮助开发者构建真正自主的AI Agent,而不是简单的对话机器人。

一、项目概述

解决什么问题

早期的AI Agent大多基于原始的LLM API调用构建,这种方式只适用于简单的聊天机器人和脚本化任务。真正的自主Agent(如Claude Code、Codex)需要完全不同的架构——你给它们一个任务,而不是预定义的步骤序列,然后信任它们利用提供的上下文和工具来完成工作。

Flue正是为这种新一代自主Agent设计的框架,它提供了完整的TypeScript工具链,让任何模型都具备真正自主工作所需的上下文和环境。

核心特性

  • Agents:构建能够在对话和事件中保持上下文的自主Agent
  • Workflows:运行结构化自动化流程,代码引导Agent推理
  • Sandboxes:为Agent提供安全执行环境,支持工具调用、文件修改
  • Durable Execution:持久化执行,失败和重启后能恢复进度
  • Subagents:定义专业角色,让主Agent委托给专家子Agent
  • Tools:类型安全的API调用、数据查询和受控变更
  • Skills:可复用的专业知识和工作流包
  • MCP Servers:连接认证工具和服务
  • Observability:OpenTelemetry、Braintrust、Sentry等监控集成
  • Channels:从Slack、Teams、Discord、GitHub等接收事件

二、技术原理

架构设计

Flue的核心架构围绕"Harness"概念构建——一个为Agent提供完整运行时环境的框架。从源码可以看到,它采用模块化设计:

// agents/triage.ts
import { createAgent, type AgentRouteHandler } from '@flue/runtime';
import { local } from '@flue/runtime/node';
import triage from '../skills/triage/SKILL.md' with { type: 'skill' };
import verify from '../skills/verify/SKILL.md' with { type: 'skill' };
import * as githubTools from '../tools/github.ts';

export default createAgent(() => ({
  model: 'anthropic/claude-sonnet-4-6',
  tools: [...githubTools],
  skills: [triage, verify],
  sandbox: local(),
  instructions,
}));

这个设计体现了几个关键思想:

  1. 声明式配置:通过对象配置Agent的所有能力,包括模型、工具、技能、沙箱和指令
  2. 模块化组装:工具、技能、沙箱都是独立模块,可按需组合
  3. 类型安全:完整的TypeScript支持,编译期类型检查

核心包结构

package.json可以看出项目结构:

{
  "name": "flue",
  "type": "module",
  "license": "Apache-2.0",
  "engines": {
    "node": ">=22",
    "pnpm": ">=11 <12"
  }
}

主要包包括:

  • @flue/runtime:运行时核心,包含harness、sessions、tools、sandbox
  • @flue/cli:命令行工具和构建/开发工具链
  • @flue/sdk:客户端SDK,用于消费部署的Agent和Workflow
  • @flue/opentelemetry:OpenTelemetry追踪适配器
  • @flue/postgres:PostgreSQL持久化适配器

关键技术选型

  1. ESM模块系统:使用"type": "module",完全拥抱现代JavaScript生态
  2. pnpm工作区:monorepo架构,统一依赖管理
  3. Node 22+:利用最新Node.js特性,如原生TypeScript支持
  4. Turbo构建:高性能增量构建系统

沙箱执行机制

Flue支持多种沙箱环境:

import { local } from '@flue/runtime/node';
// 或使用远程容器
sandbox: local()  // 本地沙箱
sandbox: docker() // Docker容器
sandbox: remote() // 远程沙箱

这确保Agent在隔离环境中执行代码,不会影响宿主系统。

三、安装与快速开始

环境要求

  • Node.js >= 22
  • pnpm >= 11 < 12

安装步骤

# 克隆项目
git clone https://github.com/withastro/flue.git
cd flue

# 安装依赖
pnpm install

# 开发模式
pnpm dev

# 构建
pnpm build

# 测试
pnpm test

最简运行示例

创建一个基础Agent:

// agents/hello.ts
import { createAgent } from '@flue/runtime';

export default createAgent(() => ({
  model: 'anthropic/claude-sonnet-4-6',
  instructions: `你是一个友好的助手,帮助用户解决问题。`,
  tools: [],
  skills: [],
}));

四、使用方法与实战

构建Triage Agent

Flue官方示例展示了一个完整的Bug分类Agent:

const instructions = `
Triage a bug report end-to-end: reproduce the bug,
diagnose the root cause, verify whether the behavior is
intentional, and attempt a fix.
`;

export default createAgent(() => ({
  model: 'anthropic/claude-sonnet-4-6',
  tools: [...githubTools],
  skills: [triage, verify],
  sandbox: local(),
  instructions,
}));

这个Agent能够:

  1. 复现Bug
  2. 诊断根本原因
  3. 验证行为是否为预期
  4. 尝试修复

HTTP路由暴露

Flue支持将Agent暴露为HTTP服务:

export const route: AgentRouteHandler = async (_c, next) => next();

这使得Agent可以通过API调用,集成到任何应用中。

部署选项

Flue支持多种部署平台:

  • Node.js:传统服务器部署
  • Cloudflare Workers:边缘计算
  • GitHub Actions:CI/CD集成
  • GitLab CI/CD:自动化流程
  • Daytona:开发环境
  • Render:云平台

实际应用场景

  1. 自动化代码审查:Agent分析PR,提供建议
  2. 智能客服:处理复杂客户问题,多轮对话
  3. 数据处理管道:ETL任务的自主执行
  4. DevOps自动化:监控告警的自动响应

五、常见问题与解决方案

Q1: 安装依赖失败

问题pnpm install报错

解决方案

  • 确保Node版本 >= 22:node -v
  • 确保pnpm版本在11-12之间:pnpm -v
  • 清理缓存:pnpm store prune

Q2: Agent无法调用工具

问题:Agent返回错误,无法执行工具

解决方案

  • 检查工具定义是否正确导出
  • 确保沙箱环境正确配置
  • 查看运行时日志,确认工具注册成功

Q3: 持久化失败

问题:Agent重启后丢失上下文

解决方案

  • 配置PostgreSQL适配器:@flue/postgres
  • 确保数据库连接正常
  • 检查session配置是否启用持久化

Q4: 性能问题

问题:Agent响应缓慢

解决方案

  • 使用边缘部署(Cloudflare Workers)
  • 优化工具调用频率
  • 启用OpenTelemetry监控,定位瓶颈

Q5: 类型错误

问题:TypeScript编译失败

解决方案

# 检查类型
pnpm check:types

# 格式化代码
pnpm format

六、总结

Flue代表了AI Agent开发的下一代范式——从简单的API调用转向完整的自主工作框架。其核心优势在于:

  1. 完整的运行时环境:会话、工具、沙箱、持久化一应俱全
  2. 模块化设计:按需组装Agent能力,灵活可扩展
  3. 生产就绪:支持多种部署平台,内置可观测性
  4. 类型安全:完整的TypeScript支持,开发体验优秀

对于想要构建真正自主Agent的开发者,Flue提供了一个强大且灵活的起点。无论是自动化工作流、智能助手还是复杂的业务流程,Flue都能胜任。


项目地址:https://github.com/withastro/flue 文档:https://flueframework.com