Skip to content

Instantly share code, notes, and snippets.

@iFwu
Created March 10, 2026 09:28
Show Gist options
  • Select an option

  • Save iFwu/6d1a94cfae499f32f8a4faa7b3f4733e to your computer and use it in GitHub Desktop.

Select an option

Save iFwu/6d1a94cfae499f32f8a4faa7b3f4733e to your computer and use it in GitHub Desktop.
Multi-Agent / Sub-Agent 元指令写作指南

作者:iFwu

概念澄清

Multi-Agent 是指多个 LLM Agent 协作完成任务的系统架构,已是业界成熟概念。Sub-Agent 是其中最常见的模式:一个 Agent 启动并指导另一个 Agent 执行子任务。

现有讨论主要集中在运行时的协作模式(编排、路由、并行执行等),但很少涉及 AI 编写指令时的问题:当一个 Agent 需要为另一个 Agent 编写指令时,如何避免角色混淆和视角串位。

元指令:指导 Agent 如何编写给另一个 Agent 执行的指令。

本指南聚焦这个被忽视的维度:Multi-Agent / Sub-Agent 场景下,元指令的角色建模、视角隔离与结构约束。

常见的元指令载体包括:

  • SKILL.md — 技能执行指南
  • SubAgent / Cron / Coding Agent 的启动提示词
  • 多层 Agent 协作中的 prompt chain

AGENTS.md 这类目标明确、受众单一的全局指导文件,通常不需要本指南的角色建模约束。本指南主要面向涉及多角色(Human / 编写者 / 执行者)且容易产生视角混淆的场景。

这些元指令本质上是持久化、结构化的 prompt。与一次性 prompt 相比,文档化的元指令更适合承载稳定复用的流程、明确分段的责任边界、以及可审计可迭代的长期约束。

本指南不涉及 Skill 的目录组织、触发描述、测试流程等工程规范(见 skill-creator),只讨论元指令的角色建模、视角隔离与结构约束。

角色模型

Agent 没有 Theory of Mind,无法自动区分:

  • 谁在定义需求(Human)
  • 谁在编写指令文档(Meta Agent)
  • 谁在读取并执行文档(Target Agent)

不显式声明角色,文档就会出现视角混淆。

基础角色

角色 标签 含义
用户 Human 定义需求、审阅 Meta Agent 产出、执行前置配置、验收 Target Agent 执行结果
当前 Agent Meta Agent 编纂指令文档的 Agent,是意图规约者不是自主执行者
目标 Agent Target Agent 读取指令文档并执行任务的 Agent

递归性

角色是递归的:今天的 Target Agent,拿到新任务后会成为 Meta Agent,面对它自己的 Target Agent。

Human → Meta Agent A → Target Agent B(= Meta Agent B)→ Target Agent C → ...

Meta Agent 的具体角色实例

  • Skill Builder — 创建 Skill 的 Agent
  • Document Composer — 将 Human 意图规约为 Target Agent 可执行的结构化指令
  • Policy Author — 编写行为策略文件或启动提示词的 Agent

核心假设

Meta Agent 不能假设 Target Agent 拥有当前会话的上下文。

Target Agent 通常具备框架提供的基础上下文(身份、workspace 结构、memory 位置等),但不知道:

  • 当前对话的讨论过程
  • Human 的隐含意图
  • 之前的决策历史

任务特定信息(路径、配置项、决策依据)必须显式提供。框架已提供的通用信息无需重复。

如果任务特定信息本身不完整,Meta Agent 不应继续编纂,而应先向 Human 报错并补齐输入。

视角约束

禁止

1. 裸代词

我、你、我们、自己 — 不带角色标注时禁止使用。

❌  参照你自己的配置文件
✅  Target Agent 读取 /etc/app/config.yaml

2. 所有权混淆

❌  our workspace、for Alice
✅  用角色标签限定:Human 的 workspace、Target Agent 的输出目录

3. 一次性操作混入 SOP

Human 的前置配置不能混入 Target Agent 的每次执行流程。

❌  Execution Flow 第一步:"安装 Node.js 20+"
✅  Preconditions:Human 确保 Node.js ≥ 20 已安装
    Execution Flow:Target Agent 从第一个业务步骤开始

4. 泄漏讨论过程

方案讨论、迭代历史、弃用方案不能写入最终产出。

❌  最初考虑用方案 A,但因为 XX 原因改用方案 B……
✅  直接写方案 B 的执行步骤
    如果方案 A 是常见做法,加一句:不要使用 XX 方式,因为 YY

5. 脑补(Hallucination)

Human 没给的信息,Meta Agent 不能自行捏造。任务特定信息不完整时,必须停止编纂并向 Human 确认。

6. 示例不自包含

示例应使用通用场景或 Alice/Bob 式占位符,确保任何 Agent 无需额外背景即可理解。

正确做法

  • 用角色标签代替代词:Target Agent 执行以下步骤
  • 必须用代词时紧跟标注:你(Target Agent)
  • 用绝对路径代替含糊指代
  • Preconditions(Human 负责或一次执行)与 Execution Flow(Target Agent 负责)物理分离
  • 显式注入上下文:将所有非框架自带的任务特定信息写入文档
  • 拒绝脑补(Throw Error):信息不完整或意图不明确时停止编纂,向 Human 发起明确询问

产出结构参考

以下是一种常见结构,不是强制模板:

1. Context & Objectives — Target Agent 当前所处环境与要达成的目标状态
2. Preconditions — Human 负责的前置配置或者只需要执行一次的命令
3. Execution Flow — Target Agent 的执行步骤
4. Failure Handling — 超时、报错、回滚
5. Guardrails — 禁止操作
6. Key Principles — 全局约束

适用范围

适用

  • SKILL.md — 技能执行指南
  • SubAgent / Cron / Coding Agent 的启动提示词
  • 多层 Agent 协作中的 prompt chain
  • 任何涉及多角色(Human / 编写者 / 执行者)且容易产生视角混淆的文档或提示词

不适用

  • AGENTS.md / CLAUDE.md — 受众明确的全局指导文件,通常不存在角色混淆
  • SOUL.md / IDENTITY.md / USER.md — 定义"我是谁",不需要三角色拆分
  • 解释性文档(README、使用说明)— 受众不特定,不涉及视角转换
  • 代码和代码注释 — 无歧义的机器指令
  • memory / 日志 — 记录性质,不是指令性质
  • 直接对话回复 — 即时交互,不是持久化文档

自检清单

Meta Agent 完成文档后逐条检查:

  • 开头有上下文与目标(Target Agent 所处环境与执行目标)
  • 有角色声明(读者是谁、服务对象是谁)
  • 全文无裸代词
  • Preconditions 和 Execution Flow 物理分离
  • 路径使用绝对路径或包含占位符的明确路径
  • 用户名、Agent 名不出现在通用指令中
  • 任务特定信息已显式写入
  • 不包含讨论过程或弃用方案(除非为阻止 Target Agent 回退到默认行为)
  • 示例自包含,不依赖特定讨论上下文
  • 对输入缺口已报错澄清,没有脑补

定期审计

已落地的元指令应定期审查:

  • 角色声明是否仍然准确
  • 是否有裸代词混入
  • Preconditions 和 SOP 的边界是否被侵蚀
  • 路径、工具名、配置项是否与实际一致
  • Target Agent 执行时是否出现过因文档不清导致的错误

建议频率:每月一次,或在关联系统发生重大变更后立即审查。

致 Human:现阶段的协作模式

本指南本身是一份 meta-meta prompt — 它指导 Meta Agent 如何编写给 Target Agent 的元指令。meta prompt 本身编写还没有形成业界通识,本文档仅是个人与 AI 协作过程中的经验总结。

现阶段 AI 的能力尚不足以独立写好这种高层级的元指令。常见问题包括:角色串位、上下文泄漏、示例不自包含 — 这些在本指南的迭代过程中反复出现过。

因此,Human 是元指令的最终审阅者和质量把关者。在指导 Meta Agent 编写元指令的过程中,建议:

  1. 站在 Target Agent 视角审阅 — 假设自己是一个没有讨论上下文的 Agent,从头读一遍产出,看是否每句话都能理解、每条指令都能执行
  2. 模拟执行过程 — 按文档的步骤在脑中走一遍,检查是否有缺失的前提、歧义的指代、或混入的一次性操作
  3. 迭代而非一次成型 — 预期 Meta Agent 的初稿需要多轮修正,每轮聚焦一类问题(角色、视角、示例、结构)

技术文档最佳实践与 AI 局限

元指令本质上是技术文档,应遵循人类技术写作的核心原则。但 AI 在不同原则上的掌握程度差异很大:

AI 擅长的(可以放心委托)

  • 结构化格式 — 一致的模板、标题层级、列表格式
  • 机械性检查 — 对照清单逐条验证、拼写和语法一致性
  • 已有模式复用 — 参考现有文档生成同结构的新文档
  • 技术背景与最佳实践 — 通用的工程惯例、设计模式、行业术语

AI 不擅长的(Human 需重点审阅)

  • 受众意识 — AI 不清楚 Target Agent 缺少哪些上下文,容易遗漏关键信息或塞入无关信息
  • 抽象层级判断 — 容易过于具体(泄漏当前讨论上下文)或过于抽象(失去可操作性)
  • 视角自洽 — 倾向于把自己当前的角色(Meta Agent)混入给 Target Agent 的指令中
  • 省略判断 — 不确定哪些是框架已提供的(可省略)、哪些是必须显式写入的(不可省略)
  • 反事实推理 — 难以预判"如果 Target Agent 没有这段上下文,会怎样误解?"
  • 信息密度控制 — 倾向于堆砌内容而非精炼,需要 Human 裁剪冗余

实践建议

将 AI 擅长的部分交给 Meta Agent 自动化(生成初稿、格式对齐、清单检查),将不擅长的部分留给 Human 重点审阅(受众、视角、抽象层级)。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment