Flue 框架从入门到精通
Part 2 · 核心能力

§04 Agent = 模型 + 马具:Harness 的五个零件

拆开 Harness 的五个零件:文件、工具、沙箱、会话、子智能体

📑 本章目录

04.1 一个公式,反复用

我刚学 Flue 时,最懵的就是"马具里到底有啥"。翻完文档才懂,其实就五个零件。

今天拆开讲。Flue 的马具有五个零件,各有各的活:

零件 它干啥 类比
文件系统 让 Agent 存东西 员工的笔记本
工具 让 Agent 动手 员工的软件
沙箱 让 Agent 安全地动 员工的工作间
会话 让 Agent 记得上下文 员工的记忆
子智能体 让 Agent 会分工 员工的同事

重点看:最右一列"类比"。

把 Agent 当成一个被你雇来的员工。你不用教他每步点哪,你给他工具和工位。

04.2 五个零件怎么装

它们都写在一个 createAgent(() => ({...})) 里。看这个真实例子:

// src/agents/repository-reviewer.ts
import { createAgent } from '@flue/runtime';
import { local } from '@flue/runtime/node';
import reviewChecklist from '../skills/review-checklist/SKILL.md' with { type: 'skill' };
import { repositoryTools } from '../shared/repository-tools.ts';

export default createAgent(() => ({
  model: 'anthropic/claude-sonnet-4-6',
  instructions: 'Review the change and report only evidence-based findings.',
  cwd: '/srv/repositories/catalog-service', // 工作目录
  tools: repositoryTools,                  // 零件:工具
  skills: [reviewChecklist],               // 零件:技能
  sandbox: local(),                        // 零件:沙箱
}));

这五行,就是给员工配齐了脑子、指令、工具、技能、工位。

标叔的经验:写 Agent 更像"搭环境"而不是"写代码"。

我最初总想写逻辑。后来明白,难的不是代码,是"给 Agent 什么样的上下文"。上下文给对了,它自己干得比你写的还好。

04.3 两个模式,别用错

Flue 有两种 Agent 模式,用错会报错。这个坑我踩过,单独提一下:

模式 用途 怎么写 标叔的结论
交互式 Agent 网页聊天、SSE、WebSocket 直接 createAgent(),导出 route/websocket 持续对话选它
工作流 Agent flue run 一次性任务 handler 里 createAgent()init() 干完即走选它

核心建议:长聊用交互式,干完就走用工作流。

分不清时,问自己:这个活要持续对话吗?要,就是 Agent;不要,就是工作流(§08)。

零件讲完了。下一章,先把"工具"这个最关键的零件讲透。