用 Harness 元技能自动设计智能体团队
你还在手动定义每个 Agent 的 system prompt?每次新场景都要重写角色和技能?Harness 这个今天刚涨 6662 stars 的项目告诉你:用元技能让 AI 自己生成 AI 团队,才是未来的做法。
我在之前的文章里提到过,单点技能(Skill)是 AI 完成任务的原子能力。但当你需要同时处理多个关联任务时(比如客服系统里的分类-解答-升级),手动编排 agent 团队就成了瓶颈。Harness 正是解决这个问题的元技能——它设计领域专属 agent 团队,定义专业 agent,并生成它们使用的子技能。
本文不重复项目 README,而是从实战角度分析:为什么元技能有效,怎么写自己的 Harness,以及如何把它嵌入工作流。
1. 这个 Skill 解决什么具体问题
假设你需要为一个电商网站搭建自动化客服 AI:需要分类 agent(判断售后/售前/投诉)、解答 agent(查知识库回复)、升级 agent(转人工)。传统做法是手动写三个 system prompt,定义它们的角色、知识边界和对话规范。一旦场景变化(比如新增退款流程),你得分别改三个 prompt。
Harness 解决的正是动态编排成本。它作为一个 meta-skill,接收你的业务描述,自动输出一组 agent 定义和相应技能 prompt。你只需要告诉 Harness:“我要一个客服系统,包括分类、回答、升级三个 agent”,它就能生成结构完整的技能集合。
我的看法: 手动定义 agent 在原型阶段可行,生产级多 agent 系统需要版本管理和弹性伸缩。Harness 把 agent 团队当成代码产物,天生可复用、可测试、可版本控制。这不是锦上添花,而是 scaling 的必选项。
2. 触发条件和适用场景
什么时候你应该考虑 Harness 而不是手写 agent?
- 多 agent 协作:超过 2 个 agent 且它们有依赖关系(比如 A 的输出是 B 的输入)。
- 业务域频繁变化:产品策略每周调整,你需要快速更新 agent 行为。
- 非技术用户维护:让运营人员通过自然语言描述需求,自动生成 agent 技能。
- 技能共享:同一个 agent 团队要部署到不同项目(如同时支持网页和 App 客服)。
Harness 的触发条件很宽:只要你的目标是“为某个领域创建一组专业 agent”,就可以把它作为一个 step 嵌入自动化流程。例如,CI/CD 中当业务规则配置文件更新时,自动触发 Harness 生成新的 agent 技能。
3. 完整 Skill 结构(SKILL.md 示例)
Harness 本身可以封装成一个 Skill,遵循我们之前讲过的标准结构。下面是我根据项目思路设计的 SKILL.md,可直接用于 AI 工作流(比如 Claude 或 GPT Actions)。
# SKILL: Agent-Team-Designer
## 目的
根据用户描述的业务领域,自动生成一组 agent 角色定义和对应技能 prompt。
## 输入
- domain: 业务领域名称(如 "电商客服")
- agent_count: 期望 agent 数量(可选)
- context: 业务规则或约束(可选)
## 输出
- agents.json: agent 列表,每个包含 role, goal, backstory
- skills/: 每个 agent 对应的技能文件索引
## 规则
1. 每个 agent 必须有明确的职责边界,避免重叠
2. 生成的技能 prompt 使用统一的模板(见 ./templates/)
3. 遵循 DRY 原则,共享知识库通过 reference 链接
## 示例调用
{
"domain": "电商客服",
"agent_count": 3,
"context": "支持退款、换货、物流查询,退款金额上限 500 元自动处理,超过转人工"
}
## 依赖
- knowledge_base: 领域标准流程
- template_engine: 用于渲染技能 prompt
这个结构让 AI 在接收到任务时,能马上理解自己是一个元技能生产者。实际项目中,你可以把 SKILL.md 存储在 skills/agent-team-designer/SKILL.md,然后让 AI 读取该文件并执行。
4. 实际案例演示:电商客服团队生成
差 Prompt vs 好 Prompt
差 Prompt(典型新手写法)
帮我设计一个客服 AI 团队,需要分类、解答、升级三个 agent。给出他们的 system prompt。
结果:AI 可能会给出三段文字,但缺少输入输出格式、错误处理、协作协议。生成的 prompt 不可直接用,需大量修改。
好 Prompt(基于 Harness 思路)
你是一个 Agent-Team-Designer 元技能。
用户输入:
{
"domain": "电商客服",
"agent_count": 3,
"context": "退款上限 500 元自动通过,超过自动升级人工;换货需校验库存;物流查 7 天内记录"
}
请按以下步骤输出:
1. 为每个 agent 定义 role, goal, backstory(符合 domain)
2. 为每个 agent 生成对应的技能 prompt,**必须使用统一的 JSON 结构**(包含 input_schema, output_schema, fallback 行为)
3. 生成一个 orchestration 配置,描述 agent 之间的调用顺序和数据传递 keys
对比效果:差 prompt 得到长篇作文,好 prompt 得到可机读的结构化产出,可直接落入文件系统或数据库。
背后的原理
好 prompt 之所以有效,是因为它明确定义了输出格式和过程约束:
- 统一 JSON 结构保证所有技能可被同一解析器处理
- input/output schema 让 agent 间数据流转清晰,减少幻觉
- orchestration 配置显式表达依赖图,避免死循环
Harness 的核心思想是把“设计 agent”变成结构化数据生成问题,而不是自然语言作文。这符合 prompt engineering 的克劳德定律:给 AI 越明确的输出格式,结果越稳定。
5. 复用和组合技巧
单次使用 Harness 只获得一组 agent 定义。真正价值在于二次、三次复用。
技巧 1:模板固化
生成的 agents.json 和 skills 目录可以作为项目模板存储在 GitHub 仓库。下次同领域直接用,不必重新生成。你可以编写脚本:每当 Harness 输出变化,自动创建 PR 更新模板。
技巧 2:组合其他元技能
Harness 可以和“测试用例生成元技能”组合:先由 Harness 设计 agent 团队,再由测试元技能为每个 agent 生成测试案例,最后通过自动化测试 runner 验证 agent 行为。这相当于多层级元技能流水线。
技巧 3:动态更新
在业务规则变更时,只需更新 context 字段重新调用 Harness,然后 diff 新旧 agents.json,得到变更摘要。CI 系统可据此自动重载对应 agent 的 system prompt,无需重启服务。
下面是一个可直接使用的 Prompt 模板,你可以在任何支持 system prompt 的 AI 工具中跑起来:
你是一个 Agent-Team-Designer 元技能。
当你收到包含 domain, agent_count, context 的 JSON 后,按以下 schema 输出:
{
"agents": [{
"name": "string",
"role": "string",
"goal": "string",
"backstory": "string",
"skills": [{
"name": "string",
"prompt": "string(包含明确的输入/输出格式约束)",
"error_handling": "string"
}]
}],
"orchestration": {
"flow": ["agent1 -> agent2", "agent2 -> agent3"],
"shared_data": ["order_id", "user_message"]
}
}
请严格使用 JSON 输出,不要额外解释。
6. 变体与扩展
变体 A:单层元技能(简化版)
如果不需要多 agent 协作,只需为一个角色生成多个技能。修改 prompt:不再生成 orchestration,只输出单一 agent 的技能列表。适用于如“为数据分析师生成 SQL 查询和可视化技能”。
变体 B:带约束验证的元技能
在 Harness 内部加入校验步骤:检查生成的 agent 角色是否覆盖 domain 所有核心场景。例如生成客服团队后,校验是否有退款、换货、物流三个功能点。如果缺失,要求重新生成。这个逻辑可以通过写入 SKILL.md 中的 validation_rules 字段实现。
变体 C:逆向工程现有 agent 团队
输入一组已有的 agent prompt,让 Harness 输出领域描述和缺失的 agent 推荐。适合团队反思现有设计。
Harness 项目的出现不是偶然——它反映了 AI 工程化的一个趋势:从“写 prompt”到“设计 prompt 的生成器”。你不需要再纠结每个 agent 的措辞,而应该聚焦在业务规则和 agent 关系上。把元技能当作你的杠杆,一次定义,到处生成。
去尝试构建你自己的 Agent-Team-Designer 元技能吧,它比你想象中简单,而且效果立竿见影。