Agent Smith has taken over your terminal: he recursively breaks down tasks and mercilessly executes them with Claude Code CLI/Opencode/openclaw until your project is "assimilated." Red pill or blue pill? On GitHub, only cloning his code matters.
SaferSkills independently audited agent-smith (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
实现递归自相似多智能体系统的 Skill。每个智能体(史密斯)拥有独立的工作空间,通过目录隔离协议达成无冲突的并行任务分解与执行。
Agent Smith 是一个递归自相似的多智能体协作框架。每个智能体(史密斯)遵循相同的协议,在自己的工作空间内独立运行,通过父子间的 inbox/outbox 通信完成复杂任务的分解与汇总。
在以下场景触发本 Skill:
在以下场景请勿触发本 Skill:
以下限制由史密斯协议强制执行。修改这些值需要同时更新 SKILL.md 和 smith.md。
| 限制 | 值 |
|---|---|
| 最大递归深度 | 3(Level 0 根节点 → 最大 Level 3) |
| 每层最大子代理数 | 5 |
| Level ≥ 3 行为 | 禁止分解,必须直接执行 |
史密斯 (Smith) 是自相似的智能体单元,每个史密斯拥有唯一 ID 和层级,能够执行任务、分解任务、创建子史密斯并汇总结果。所有史密斯遵循相同的协议,形成递归结构。
所有史密斯均受上述 Hard Constraints 约束。
无冲突协议 通过严格的目录隔离实现并行安全:每个史密斯只能写入自己的 private/ 和 outbox/,只能读取自己 inbox/ 中父史密斯分配的任务。父史密斯拥有创建子目录和写入子史密斯 inbox 的专属权限。
.agent-smith/
├── smiths/
│ ├── smith-root/ # 根史密斯
│ │ ├── smith.md # 史密斯定义(只读)
│ │ ├── inbox/ # 任务队列(外部/父写入,自己读取)
│ │ ├── private/ # 私有工作区
│ │ ├── outbox/ # 结果输出
│ │ │ └── result.md
│ │ └── children/ # 子史密斯目录
│ │ └── smith-001/
│ │ ├── smith.md
│ │ ├── inbox/ # 父写入,子读取
│ │ ├── private/
│ │ ├── outbox/
│ │ └── children/
└── results/
└── final.md # 最终结果当用户请求初始化 Agent Smith 时,执行以下步骤:
1. 创建目录结构
创建根史密斯环境:
.agent-smith/smiths/smith-root/inbox/ —— 任务队列.agent-smith/smiths/smith-root/private/ —— 私有工作区.agent-smith/smiths/smith-root/outbox/ —— 结果输出.agent-smith/smiths/smith-root/children/ —— 子史密斯容器.agent-smith/results/ —— 最终结果2. 读取 `smith.md` 模板
从 smith.md 读取史密斯定义模板。
3. 替换占位符
替换模板中的变量:
{SMITH_ID} → smith-root{PARENT_ID} → none{LEVEL} → 04. 写入根史密斯定义
将替换后的内容写入 .agent-smith/smiths/smith-root/smith.md。
5. 创建任务文件
基于 templates/task.md.template 创建根任务文件 .agent-smith/smiths/smith-root/inbox/task-root.md。
替换模板占位符:
{TITLE} → 任务标题{TASK_ID} → root{SMITH_ID} → smith-root{PARENT_TASK_ID} → none{TIMESTAMP} → 当前时间{LEVEL} → 0{DESCRIPTION} → 任务描述{CONTEXT} → 相关上下文{EXPECTED_OUTPUT} → 期望输出6. 生成启动指南
在 .agent-smith/smiths/smith-root/private/START_HERE.md 生成启动指南,包含:
当父史密斯需要创建子史密斯时,执行以下步骤:
前置检查(强制)
创建任何子史密斯之前,必须确认:
1. 确定新史密斯 ID
按序号递增生成 ID,如 smith-001、smith-002。
2. 创建子目录
在父史密斯的 children/ 下创建 {smith-id}/ 目录结构:
inbox/ —— 父写入任务,子读取private/ —— 私有工作区outbox/ —— 结果输出children/ —— 子史密斯容器3. 读取模板并替换
读取 smith.md 模板,替换占位符:
{SMITH_ID} → 新 ID(如 smith-001){PARENT_ID} → 当前史密斯 ID{LEVEL} → 当前层级 + 14. 写入子史密斯定义
将替换后的内容写入子目录的 smith.md。
5. 生成子任务文件
基于 templates/task.md.template 在子史密斯的 inbox/ 下创建任务文件 task-{SMITH_ID}.md。
替换模板占位符:
{TITLE} → 子任务标题{TASK_ID} → 子史密斯 ID(如 smith-001){SMITH_ID} → 子史密斯 ID{PARENT_TASK_ID} → 父任务 ID{TIMESTAMP} → 当前时间{LEVEL} → 当前层级 + 1{DESCRIPTION} → 子任务描述{CONTEXT} → 父上下文{EXPECTED_OUTPUT} → 期望输出确保任务文件只写入该子史密斯的 inbox/,不得写入任何其他史密斯的目录。
6. 生成子史密斯启动指南
在子史密斯的 private/START_HERE.md 生成启动指南,包含:
inbox/ 中的任务outbox/result.md → 结束inbox/ 中创建任务文件 → 等待子结果 → 汇总 → 写入 outbox/result.md → 结束根史密斯(Level 0)在完成自身 outbox/result.md 后,还有一项额外职责:
outbox/result.md 复制或汇总到 .agent-smith/results/final.md该文件作为用户获取多智能体会话完整输出的统一入口。
允许写入:
private/ —— 草稿、思考、临时文件outbox/result.md —— 最终结果children/ —— 创建子史密斯目录(父权限)children/ 下子史密斯的 inbox/ —— 创建子任务(父权限)禁止写入:
private/ 或 outbox/inbox/(只能写自己创建的子史密斯的 inbox)遇到以下任何情况时,禁止继续分解,应直接执行:
症状: 为简单任务创建子史密斯,子任务只需几分钟即可完成。 修复: 若任务少于 3 个主要步骤或预计 15 分钟内可完成,直接执行。分解带来的协调开销会超过收益。
症状: 在 Level 3 或更深层级仍试图创建子史密斯。 修复: 硬限制为 Level 3。当层级 ≥ 3 时,必须直接执行。若任务仍过大,应优化任务定义而非违反协议。
症状: 在自己子代理的 inbox/ 以外创建任务文件,或修改其他史密斯的 private/ 或 outbox/。 修复: 重新阅读 写约束协议。只允许写入:自己的 private/、自己的 outbox/、自己的 children/、自己子代理的 inbox/。
症状: 两个同层子史密斯使用相同 ID(例如同一父节点下有两个 smith-001)。 修复: 每个父节点使用严格递增序号(smith-001、smith-002...)。创建目录前验证无冲突。
将此目录复制到 Claude Code skills 目录:
# 从仓库根目录执行
cp -r agent-smith/agent-smith ~/.claude/skills/agent-smith~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.