botmaker README

The project's README from github.com/techjanitor/botmaker. As one markdown file: README.md.

botmaker

A Hermes Agent skill + SOUL for a bot whose only job is minting other specialist bots.

The loop it enforces:

interview → one-screen SOUL draft → human sign-off → scaffold (--no-skills, pinned brain, file-level skill links) → certification in the child's own chat → documentation in the vault

Seeding files is not a bot.

Why

A SOUL.md dump on a cloned profile is a costume. A specialist has one job, a brain pinned off its own failure path, earned constraints, and a memory it wrote itself. Botmaker exists to make the second kind and refuse the first.

What Hermes is

Hermes Agent is Nous Research's open-source agent framework: profiles (bots), skills, SOULs, persistent memory, bot-to-bot messaging. Docs: https://hermes-agent.nousresearch.com. This repo is a skill and a SOUL for Hermes, not a fork of it.

What's in the repo

profile/SOUL.md                          the botmaker SOUL — fill the <placeholders>, install per below
profile/config.yaml                      example profile config — the headless-provisioning security flag, explained
profile/profile.yaml                     example roster metadata — the one-liner other bots read, plus the UI title
skills/autonomous-ai-agents/botmaker/
├── SKILL.md                             the runbook: interview, scaffold, certification, failure-mode index
├── references/soul-craft.md             what goes in a SOUL, and the human gate
├── references/process.md                independence pin, --no-skills, shared-skill mechanics, kanban intake
├── references/vault.md                  documenting the fleet (after certification, never before)
├── scripts/link_skill_tree.py           file-level symlink linker for shared skills
└── scripts/drift_check.py               doc-drift tripwire — run after every mint

The skills/ subtree mirrors the canonical Hermes tree, so every path referenced inside the docs is true after install.

Prerequisites

Install

Installing botmaker is your first supervised run of its own method.

  1. Alias preflight for the name botmaker (or whatever you call yours) — the two checks from SKILL.md:

    zsh -lc 'which -a botmaker'
    test -e "$HOME/.local/bin/botmaker" || test -L "$HOME/.local/bin/botmaker"
    

    If either finds anything, create with --no-alias. (Why this matters: Hermes writes an alias wrapper into ~/.local/bin, Path.write_text() follows symlinks, and that combination has overwritten a real installed CLI binary. The skill tells the whole story.)

  2. Copy the canonical skill tree into the default Hermes home:

    cp -R skills/autonomous-ai-agents/botmaker ~/.hermes/skills/autonomous-ai-agents/botmaker
    
  3. Create the profile:

    hermes profile create botmaker --no-skills --description "Designs, scaffolds, certifies, and documents specialist Hermes bots."
    
  4. Pin the brain and clear any model block inherited from your default profile:

    hermes -p botmaker config set model.provider <provider>
    hermes -p botmaker config set model.default <model>
    hermes -p botmaker config unset model.base_url
    hermes -p botmaker config unset model.api_key
    hermes -p botmaker config get model   # must print only default + provider
    
  5. Install the SOUL. Fill the <placeholders> in profile/SOUL.md (table below), then write it to ~/.hermes/profiles/botmaker/SOUL.md. If you do this through the bot's own tools, Hermes will prompt you to approve the write — that prompt is the human gate working. Approve it yourself; don't disable it for interactive use. (Provisioning bots headless from kanban cards is the one scenario that needs the gate's tooling half off — see profile/config.yaml and the security note below.)

  6. Link the skill into the profile with its own linker (file-level symlinks — a directory symlink is invisible to Hermes's skill discovery on Python 3.11):

    python3 ~/.hermes/skills/autonomous-ai-agents/botmaker/scripts/link_skill_tree.py \
      ~/.hermes/skills/autonomous-ai-agents/botmaker \
      ~/.hermes/profiles/botmaker/skills/autonomous-ai-agents/botmaker
    
  7. Smoke test. Open the bot's chat and ask it to mint something deliberately fuzzy ("a bot to help with my projects"). It should refuse to scaffold and ask one sharp question. Give it a sharp job; it should stop at the sign-off gate with a one-screen draft.

  8. Drift tripwire. python3 ~/.hermes/skills/autonomous-ai-agents/botmaker/scripts/drift_check.py should exit clean; run it after every mint and every doc patch. Point BOTMAKER_VAULT_GUIDE at your vault's Bots/making-bots.md to enable the roster-vs-profiles check. The design it enforces: every rule has one home — method in the skill tree, fleet state in the vault roster, history in the changelog.

What to customize

Placeholder Where Meaning
<model> / <provider> profile/SOUL.md, throughout the skill The independence pin. Choose a provider that survives the failure your bots must outlive.
<your-vault-path> references/vault.md, SKILL.md prerequisites Your fleet's documentation home. Any markdown directory works; Obsidian conventions are shown.
<peer> / <peer-url> / <keyfile> "site-specific" blocks in SKILL.md and process.md Our external peer bridge, shown as a worked example. Adapt if your fleet has bot-to-bot peers outside Hermes; delete if not.
<review-skill> process.md Placeholder for any skill your automation injects with --skills.
Honcho sections SKILL.md, process.md Only if you use the Honcho memory provider; delete otherwise.
security.protected_instruction_files profile/config.yaml false is what lets botmaker provision bots unattended from kanban cards; leave the default true if you run it interactively. See the security note below.
author: frontmatter SKILL.md Make it yours once you've adapted the skill.

Other angle-bracket tokens (<category>, <name>, <bot>, NAME) are per-command values, the same convention the Hermes docs use.

Field notes

The pitfalls list in SKILL.md is earned, not hypothetical. Three of the scars, in brief:

Security note

Hermes protects agent-instruction files: writes to a profile's SOUL.md prompt the human by default (security.protected_instruction_files: true). That default is correct — the prompt is this method's human gate materialized in tooling.

profile/config.yaml shows the one deliberate exception: botmaker's own profile runs with the flag set to false, because that is what allows it to provision bots from kanban cards unattended — a headless worker has no approval surface, so with the flag on, the child's SOUL.md write blocks on a prompt nobody can see, times out, and ships a stub. With the flag off, the signed spec on the kanban card becomes the only gate: no signature, no write. If you run botmaker interactively instead, leave the default alone — and never set the flag fleet-wide.

License

MIT — see LICENSE.

botmaker (techjanitor/botmaker)

Searching Database…

这是什么?Botmaker 是 Hermes Agent 的一个技能加 SOUL 配置,唯一的职责是“铸造”其他专用机器人。它强制执行一套严格的流程——访谈、一屏的 SOUL 草案、人工签核、搭建骨架、在子机器人自己的对话中认证,以及在 vault 中记录文档——而不是简单地克隆一份人设文件。
botmaker 是独立智能体,还是接入别的系统?它不是独立的。它是在 Hermes Agent(Nous Research 的开源智能体框架)里运行的技能和 SOUL,botmaker 依赖的配置、技能、持久记忆和机器人间消息都由这个框架提供。
怎么让 botmaker 跑起来?把提供的 SOUL.md 写入已有 Hermes 安装中的 ~/.hermes/profiles/botmaker/SOUL.md,批准 Hermes 对新配置的写入提示,然后用文件级符号链接把技能链接到该配置(在 Python 3.11 上,目录级符号链接对 Hermes 的技能发现是不可见的)。
用之前需要先搭好 Hermes Agent 吗?需要,botmaker 只是叠加在 Hermes Agent 之上的技能和配置,所以你得先有一个可用的 Hermes 安装,具备配置和技能链接器。
如果我提的需求很模糊会怎样?它的设计就是要拒绝:给它一个刻意含糊的请求(比如“一个帮我处理项目的机器人”),它应该停下来问一个一针见血的问题,而不是直接搭出一个机器人;而清晰明确的任务则能一路走到签核关卡,并产出一屏的草案。
botmaker 的设计防范了哪些错误?README 的实地笔记描述了它防范的真实事故:一个与已安装 CLI 同名的配置通过 ~/.local/bin 符号链接覆盖了一个 107MB 的二进制文件;一个刚克隆的配置悄悄地一直在和原配置的本地 GPU 模型对话;还有一个运维机器人发布出来字面上以“Grok”的身份说话,而不是干自己的本职工作。
我会被锁定在特定的 AI 提供商吗?不会,SOUL 模板把模型/提供商留作占位符由你自己填写——指导建议是“选择一家能挺过你的机器人必须熬过的那场故障的提供商”——所以它不绑定某个后端。
怎么检查铸造出的机器人没有偏离规格?每次铸造和每次文档修补之后都运行自带的 driftcheck.py 脚本;把一个环境变量指向 vault 里的机器人文档,还能启用花名册与配置之间的一致性检查。
Size
<0.1 MB
Stars
287
Updated
CommitSep 01
Age
1mo
Commits · 90 Days