返回 FEED
AGENT2026-05-07

Flue:又一款 Agent 开发框架,基于 TypeScript 构建

Flue 是 Astro 团队开源的 Agent Harness 框架,基于 TypeScript。

核心思路:Agent = Model + Harness

Flue 强调架构才是让 Claude Code 和 Codex 变得强大的原因。它们可以规划、收集上下文、读写文件、生成子 Agent、承担角色、解决问题。这些 Agent 不只是聊天机器人。

为什么不是每个 Agent 都这样构建?

Flue 的答案是:提供一个可编程的 TypeScript Harness,让任何人都能构建这种级别的 Agent。

架构分层

04 / Filesystem  read · write · grep · glob
03 / Sandbox     bash · security · network
02 / Harness    skills · memory · sessions
01 / Model       tokens · tools · prompts
  • Model:Token、工具、Prompts
  • Harness:Skills、Memory、Sessions(记忆和会话管理)
  • Sandbox:Bash、安全、网络控制
  • Filesystem:读写、grep、glob

快速上手

安装超级简单:

npx fetch flueframework.com/start.md to create a new agent

一个 AI issue triage Agent 只要 22 行 TypeScript:

import type { FlueContext } from '@flue/sdk/client';
import { Octokit } from '@octokit/core';
import * as v from 'valibot';

export const triggers = {};

export default async function ({ init, payload, env }: FlueContext) {
  const { issueNumber } = payload;
  const agent = await init({ model: 'anthropic/claude-opus-4-7' });
  const session = await agent.session();

  const triage = await session.skill('triage', {
    args: { issueNumber },
    result: v.object({
      severity: v.picklist(['low', 'medium', 'high', 'critical']),
      reproducible: v.boolean(),
      summary: v.string(),
    }),
  });

  const body = `**Severity:** ${triage.severity}\n**Reproducible:** ${triage.reproducible}\n\n${triage.summary}`;
  await (new Octokit({ auth: env.GITHUB_TOKEN })).request(
    'POST /repos/{owner}/{repo}/issues/{num}/comments',
    { owner: 'withastro', repo: 'flue', num: issueNumber, body },
  );
}

可连接多种 Sandbox

内置虚拟 Sandbox:零配置,直接用
Daytona:真实容器,适合编码 Agent
Cloudflare Workers + R2:知识库查询,容器都不需要启动

部署到任何地方

  • Node.js
  • Cloudflare Workers
  • GitHub Actions
  • GitLab CI/CD
  • Daytona
  • Render

谁在做

Astro 团队。GitHub: withastro/flue

核心价值:别租别人的 Agent。自己拥有整个技术栈:Agent、Harness、Sandbox。