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

§06 技能与子智能体:让 Agent 既专业又会分工

Skills 操作手册 vs Subagents 同事,何时用哪个

📑 本章目录

06.1 一个人干所有活,会累

上个月我做客服 Agent,把查库存、写工单全塞一个 prompt。它开始胡说。我才懂要分工。

Agent 也一样。一个客服 Agent,又要查库存、又要写工单、又要判断情绪,全塞一个 prompt,它会乱。

Flue 给两种解法:技能让它变专业,子智能体让它会分工。

06.2 技能(Skills):可复用的"操作手册"

技能是 Agent Skills 规范:一批指令和参考文件,Agent 按需加载。它不执行代码,只指导怎么干。

// 用 skill 导入属性加载 SKILL.md
import review from '../skills/review/SKILL.md' with { type: 'skill' };
import triage from '../skills/triage/SKILL.md' with { type: 'skill' };

export default createAgent(() => ({
  model: 'anthropic/claude-sonnet-4-6',
  skills: [review, triage],  // 两个技能随时可用
}));

技能也能放在沙箱里,Agent 自己发现:<cwd>/.agents/skills/review/

注意:技能目录别放密钥。

Flue 打包技能时会拒绝常见敏感文件。凭证走 env,别塞进 SKILL.md。

06.3 子智能体(Subagents):会分工的同事

子智能体是一个"专家档案",父 Agent 能把活派给它。

// src/agents/policy-assistant.ts
import { createAgent, defineAgentProfile } from '@flue/runtime';
import { local } from '@flue/runtime/node';

// 定义一个专家:政策检索员
const policyResearcher = defineAgentProfile({
  name: 'policy_researcher',
  description: 'Finds relevant policy text and quotes it.',
  instructions: 'Read the policy workspace and return quoted passages.',
});

export default createAgent(() => ({
  model: 'anthropic/claude-sonnet-4-6',
  instructions: 'Delegate source lookup to policy_researcher first.',
  sandbox: local(),
  cwd: '/srv/company-policies',
  subagents: [policyResearcher],  // 挂上专家
}));

子智能体在独立的子会话里干活,不污染父 Agent 的对话历史。

06.4 技能 vs 子智能体

维度 技能(Skill) 子智能体(Subagent) 标叔的结论
本质是 指令/手册 另一个 Agent 轻的用技能
是否执行代码 是,有自己的会话 重的派子体
适合 复用流程、规范 委派研究、分类 看是否独立
调用方式 模型自动或 session.skill() 模型自动或 session.task() 都不用手动

标叔的经验:先技能,后子智能体。

我一开始啥都用子智能体,结果开销大、调试难。能写成"操作手册"的,用技能更轻。真要独立研究的,才派子智能体。

分工讲完。下一章讲"沙箱"和"模型"——Agent 的工作间和大脑。