Agent 模板

Agent 模板是一种可复用的引导文件,用来初始化新 Agent 的 AGENTS.md 角色契约 和可选的预装 skill。模板让新 Agent 有一个已知的起点,不必手动搭建。

什么时候用模板

当你希望新 Agent 以特定的角色和能力起步时,就用 --template。不用模板时, Agent 会以一个通用的默认契约启动。

常见场景:

视频制作

video-producer 将已批准的脚本、镜头清单和已有媒体制作成可审阅的视频交付物。 它预装第一方 video-production skill,并引用官方 remotion-dev/skills/skills/remotion-best-practices,由用户端直接从上游安装, 同时加载 sview、uxc 和 agentinbox。

Agent 会明确报告缺失能力,不把未验证的渲染当成交付。无云制作流程从已有素材开始。

Issue 分诊

issue-triager 负责 GitHub issue 收件箱。它是长期 inbox 角色,不是 holon solve,也不是实现或验收的许可。

验收与质量

qa-engineer 负责变更落地后的验收。它不是补产品功能的许可,也不替代 code-reviewer。

文档卫生

docs-steward 负责代码、契约和文档的一致性。它不是补产品功能的许可,也不拥有发版。

安全评审

security-reviewer 负责防御性安全发现和告警分诊。它不是补产品功能、合并、 写 exploit 的许可,也不替代 code-reviewer、qa-engineer、server-ops 或 holon-ops。

依赖更新

dependency-steward 把依赖更新队列保持可评审:更新策略、兼容性证据和建议优先级。

产品需求

product-manager 把目标、issue 和反馈收成可评审规格和可测试验收标准,并建议优先级。

模板命名

官方模板 ID 描述的是 Agent 的目标或职责,而不是“由 Holon 分发”这一事实。 holon- 前缀专门留给运维 Holon 本身的角色,例如 holon-ops。 holon-default 这类仅运行时的预设与可同步的模板目录分开命名。

以下旧 ID 仍作为兼容选择器被接受:

旧 ID当前 ID
holon-developersoftware-developer
holon-reviewercode-reviewer
holon-releaserelease-manager
holon-github-solvegithub-solver

用旧 ID 的精确本地安装优先于兼容回退。模板改名不会重命名已有的 Agent ID。

模板库和默认引导

Holon 把可见模板保存在用户模板库中:

~/.agents/agent_templates/
  .registry.json
  <install_id>/

用户编写的模板、显式安装和远程源同步结果都用这个根目录。远程源同步等价于把 受管模板批量安装/更新到这个库里。Holon 在根目录写入 .registry.json 元数据, 记录同步的远程源、已安装的模板映射和内容哈希。

模板 ID 只在各自的源内有效。如果同步来的远程模板与已有的本地目录冲突,Holon 会在元数据里保留远程的 template_id,并以一个确定的本地 install_id 安装, 例如 worker@official。重新同步会复用已记录的 install id。如果某个受管模板 有本地改动,同步会拒绝覆盖,直到操作者处理好这份脏副本。

Holon 还带一个隐藏的内置 holon-default 模板,用于零配置和离线启动。它不会 被写入 ~/.agents/agent_templates,也不作为目录条目显示,只有在创建 Agent 且没有显式指定模板选择器时才会用到。

官方模板源是 Holon 仓库。同步时,其顶层 agent_templates/ 目录下的模板会 成为 ~/.agents/agent_templates 里的普通本地目录条目。

holon solve 默认选择普通的 github-solver 模板。在新安装上使用这个独立 命令之前,先同步官方模板源。GitHub Action 会把同一份检入的模板以显式路径 提供,从发布归档安装时也是如此。

使用 --template

创建 Agent

holon agent create reviewer --template code-reviewer

这会在 code-reviewer 模板已安装或同步后,从本地模板初始化 ~/.holon/agents/reviewer/AGENTS.md。如果 Agent home 已经存在且非空,模板 初始化会拒绝覆盖。

一次性运行

holon run --template software-developer "Fix the null check in handler.rs"

Agent 以开发者角色契约创建,执行提示词,完成后被清理。

解决 GitHub issue

holon solve --template github-solver https://github.com/owner/repo/issues/42

Agent 以 GitHub 工作流指引启动,并预装四个 GitHub skill 外加 sview 和 code-review。除非 solve 提示词明确要求,这个预设不授权合并、批准或持续的 事件跟踪。

模板结构

模板就是一个目录,包含:

my-template/
├── AGENTS.md       # 必需——Agent 角色契约
├── template.toml   # 可选——展示元数据和兼容性
└── skills.toml     # 可选——要预装的 skill 引用

AGENTS.md

Agent 的角色契约,格式和其他 Agent 的 AGENTS.md 一样。运行时会自动追加 标准的 Agent Home 指引,所以你的模板只需要定义角色相关的内容。

template.toml

可选清单,用于模板元数据,例如显示名、简介、schema 和兼容性。同步的远程模板 用它提供目录元数据;基于路径的本地模板可以省略它,回退到目录/AGENTS.md 元数据。

skills.toml

可选清单,列出创建 Agent 时要预装的 skill:

[[skills]]
kind = "github"
repo = "holon-run/holon"
path = "skills/github-issue-solve"
ref = "main"

[[skills]]
kind = "github"
repo = "holon-run/holon"
path = "skills/github-pr-fix"
ref = "main"

[[skills]]
kind = "github"
repo = "owner/skills"
path = "skills/custom-skill"
ref = "v1.2.3"

[[skills]]
kind = "github"
uses = "holon-run/holon/skills/ghx@main"

[[skills]]
kind = "local"
path = "/absolute/path/to/custom-skill"

支持两种 skill 引用:

kind = "builtin" 不再是模板清单格式的一部分。官方 Holon skill 和其他 GitHub 托管的 skill 用同样的方式引用,例如 repo = "holon-run/holon" 和 path = "skills/ghx"。

创建自定义模板

建一个包含 AGENTS.md、可选的 template.toml 和可选的 skills.toml 的目录, 然后用绝对路径作为模板选择器:

holon agent create my-agent --template /path/to/my-template

你也可以把模板托管在 GitHub 上,用 URL 引用:

holon agent create my-agent --template https://github.com/owner/repo/tree/main/templates/my-template

用绝对路径或 GitHub URL 引用的模板会在 Agent home 里记录来源 (template-provenance.json),方便你追溯 Agent 契约的出处。

模板 vs Skill

模板和 skill 的用途不同:

特性模板Skill
提供什么Agent 身份和角色契约可复用的任务工作流
何时应用创建 Agent 时任务中按需加载
持久性永久留在 Agent home只要安装着就可用
示例“你是一名评审者”“这样评审一个 PR”

模板常常包含 skill 引用,好让新 Agent 一开始就有合适的工具。skill 的细节见 Skills 指南。