AGENT SKILL

agent-builder

Scaffold a new specialised agent and wire it into the harness. Use when the user says "create an agent", "add a specialist", "build a new agent", or wants to extend the harness for a new domain. Covers tool composition, skill authoring, MCP server wiring, permissions, and coordinator registration.

License 许可
MIT
所属仓库
blouargant/omnis
最近更新
2026-11-10
Stars
★ 0
Forks
0

01 前言 Front Matter

name
agent-builder
description
Scaffold a new specialised agent and wire it into the harness. Use when the user says "create an agent", "add a specialist", "build a new agent", or wants to extend the harness for a new domain. Covers tool composition, skill authoring, MCP server wiring, permissions, and coordinator registration.
compatibility
Designed for the omnis harness (github.com/blouargant/omnis).

03 SKILL.md 正文

Agent Builder

Every specialisation in the harness is a combination of: tools + skills + MCP servers + permissions + a focused system instruction.

Nothing is hand-rolled from scratch — compose from existing packages and encode domain knowledge as skills.

Step 1 — Interview

Before writing any files, gather answers to these four questions:

  • [ ] Domain & goal. One sentence: what does this agent do?
  • [ ] Required capabilities. Which existing tools are needed (fs, Bash, bg, todo, tasks, worktree, teammate)? Any new MCP servers?
  • [ ] Inputs / outputs. What does the caller hand the agent, and what shape should the response take?
  • [ ] Safety envelope. Which actions must always be denied? Which require explicit user approval?

Step 2 — Create the skill file

If the domain procedure is repeatable, encode it first as a skill — skills are the primary unit of specialisation.

  1. Create skills/<name>/SKILL.md with proper frontmatter (name, description, optional compatibility).
  2. Write the body as step-by-step instructions. Add a ## Gotchas section for non-obvious domain facts the agent would get wrong without guidance.
  3. Keep SKILL.md under 500 lines. Move detailed reference material to skills/<name>/references/ and tell the agent exactly when to load each file.

Step 3 — Wire tools and configuration

  1. Compose tools from existing packages — do not hand-roll new tools unless the capability genuinely does not exist.
  2. Add or extend config/permissions.json for any new tool surface introduced by this agent.
  3. If new MCP servers are required, add them to config/mcp_config.json.

Step 4 — Register with the coordinator

If the agent should be callable from the lead coordinator:

  1. Register it via agenttool.New in the root main.go multi-loader.
  2. Give it a short, keyword-rich description — the coordinator uses this to decide when to delegate.

Step 5 — Observability (optional)

Subscribe a domain-specific event handler via events.Bus to emit structured events for monitoring and replay.

Deliverable

Produce the following and nothing more:

  1. skills/<name>/SKILL.md — the skill file.
  2. Diffs for config/permissions.json and config/mcp_config.json if changed.
  3. Diff for root main.go coordinator registration if the agent is to be reachable.
  4. One sample prompt that exercises the new agent end to end.

Gotchas

  • Do not create examples/<name>/main.go. Example binaries require a Go compiler and have no utility outside of a development environment; production deployments use the pre-built coordinator binary.
  • Do not hand-roll tools that duplicate existing packages (fs, todo, tasks, worktree, bg, mailbox). Check core/tools/ and internal/ before writing new code.
  • config/permissions.json is enforced at runtime — omitting an allow rule means the tool call falls through to the ask tier (prompts the user, or is denied non-interactively), not a compile error.
  • Skills are loaded by name matching the directory name exactly. A mismatch causes silent non-activation.

04 同仓库更多 Skills

blouargant
blouargant/omnis

skill-creator

Create or update a skill playbook (SKILL.md) for the agent. Use when the user wants to create a new skill, add a skill, define a new agent capability, update an existing skill, edit a skill, refine a skill playbook, or specialise the agent for a new domain.

Skill与智能体开发
★ 0
blouargant
blouargant/omnis

review

Review a body of work (source code, configuration, documents, infra manifests, …) for correctness, clarity, and obvious risks. Use this skill whenever the user asks for a review, audit or critique.

★ 0
blouargant
blouargant/omnis

pdf

Fallback PDF text extractor using pdftotext (poppler). Use ONLY when the preferred `liteparse` skill is unavailable or for a quick plain-text dump of a simple text PDF — for the best PDF parsing (scanned, multi-column, layout-heavy, or non-PDF formats) prefer the `liteparse` skill.

文档处理
★ 0
blouargant
blouargant/omnis

pandoc

This skill should be used when converting documents between formats (Markdown, DOCX, PDF, HTML, LaTeX, etc.) using pandoc. Use for format conversion, document generation, and preparing markdown for Google Docs or other word processors.

文档处理Skill与智能体开发
★ 0
blouargant
blouargant/omnis

liteparse

Preferred local parser for extracting text from PDFs, images, and scanned/layout-heavy documents (OCR, screenshots, complex PDFs) — far better than pdftotext. Use this FIRST for any PDF, image, or OCR text-extraction or conversion task. NOTE for Office documents (DOCX, PPTX, XLSX, ODT) — for plain text extraction prefer the `pandoc` skill, which needs no LibreOffice; only use LiteParse for Office docs when you need its layout/OCR/screenshot output. The `pdf` skill (pdftotext) is only a fallback for when LiteParse cannot be installed.

行政与办公人员文档处理演示文稿
★ 0
blouargant
blouargant/omnis

linux-admin

Safely make a change to a Linux workstation — install/remove packages, manage systemd services and timers, edit and validate configuration files, manage users/permissions and networking. Detect the distro and package manager, determine whether the target is package-managed or hand-maintained, preview or simulate every change, back up configs before editing, and prefer the package manager and drop-in overrides so the host stays consistent and secure. Use whenever a change to the local Linux host is required (install, remove, enable, disable, start, stop, edit a config, add a user, change permissions or networking).

★ 0