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 的工作间和大脑。