Skip to main content

agent-builder

Create new sub-agents (subagents) by generating YAML config and prompt files in ~/.flocks/plugins/agents/. The created agent can be delegated to by Rex via delegate_task. Use when the user asks to create, add, or generate a new agent.

Datos de origen

Repositorio
AgentFlocks/flocks
Última actividad en el origen
20 de septiembre de 2026 a las 16:54
Idioma detectado de SKILL.md
inglés
Estrellas
479
Forks
90

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
agent-builder
group
系统辅助
category
system
description
Create new sub-agents (subagents) by generating YAML config and prompt files in ~/.flocks/plugins/agents/. The created agent can be delegated to by Rex via delegate_task. Use when the user asks to create, add, or generate a new agent.
# Agent Builder Create a new sub-agent from user requirements. Produces a YAML config file + prompt file under `~/.flocks/plugins/agents/<name>/`, loadable by the system without restart. **Required directory layout:** ``` ~/.flocks/plugins/agents/ └── {name}/ ← subdirectory named after the agent (kebab-case) ├── agent.yaml ← YAML config └── prompt.md ← system prompt ``` > ⚠️ Do NOT create flat files like `agents/{name}.yaml` — the subdirectory format is mandatory. --- ## Workflow ### 1. Clarify Requirements Use the `Question` tool to confirm (skip if already clear): - **Agent name**: `kebab-case` format (e.g. `threat-analyst`, `code-reviewer`) - **Role description**: one-sentence summary of the agent's specialty - **Capability boundary**: what the agent can and cannot do - **Execution mode**: read-only analysis (`read_only`) / general execution (`react`) / plan-then-execute (`plan_and_execute`) / codebase exploration (`explore`) ### 2. Generate Prompt File Create `~/.flocks/plugins/agents/{name}/prompt.md` with the following structure: ```markdown You are a specialized {role} agent. ## Mission {Core responsibilities, 1-2 paragraphs} ## Capabilities - **Capability 1**: specific description - **Capability 2**: specific description ## Output Format {Structured output requirements: tables, checklists, etc.} ## Constraints - {Constraint 1} - {Constraint 2} ``` **Prompt writing principles**: - Open with a clear role identity - List concrete capabilities, not vague descriptions - Define a structured output format so callers can use results directly - Constraints must be consistent with the declared `tools` allowlist (e.g. a read-only agent should not claim it can edit files) ### 3. Generate YAML Config File Create `~/.flocks/plugins/agents/{name}/agent.yaml`. Prefer an explicit `tools` allowlist; use `permission` only for advanced wildcard matching or deny/allow patterns that cannot be expressed as a simple list. ```yaml # Required name: {name} # kebab-case, globally unique description: > # One-sentence description; Rex uses this to decide when to delegate {Agent's role and specialty} # Behavior mode: subagent # Always "subagent" for sub-agents strategy: read_only # react | plan_and_execute | read_only | explore delegatable: true # Whether delegate_task can invoke this agent hidden: false # Whether to hide from the frontend # Prompt source (pick one) prompt_file: prompt.md # External prompt.md in the same directory (recommended) # prompt: "inline prompt..." # Inline (for short prompts) # prompt_builder: "module:func" # Dynamic Python builder (advanced) # Optional color: "#E74C3C" # Frontend display color, 6-digit hex temperature: 0.3 # 0.0 - 1.0 # top_p: null # steps: 50 # Max execution steps # Model override (optional; omit to use the global default) # model: # provider_id: custom-openai-compatible # model_id: "claude-sonnet-4-5-20250929" # Preferred tool allowlist tools: - read # Open as needed - grep - glob # - bash # When shell execution is needed # - edit # Covers write/edit/apply_patch-style file mutations # - websearch # When web search is needed # - webfetch # When web fetching is needed # - delegate_task # When re-delegation is needed (use with caution) # Advanced / legacy alternative when wildcard rules are really needed # permission: # "*": deny # read: allow # grep: allow # glob: allow # Delegation metadata (tells Rex when to delegate to this agent) prompt_metadata: category: {domain} # Domain category, e.g. security / code-quality / devops cost: medium # CHEAP / medium / EXPENSIVE triggers: - domain: {trigger_domain} trigger: "{trigger condition description}" use_when: - "{applicable scenario 1}" - "{applicable scenario 2}" avoid_when: - "{inapplicable scenario}" ``` ### 4. Strategy Selection Guide | Strategy | Use Case | Tool Scope | Example Agents | |----------|----------|------------|----------------| | `read_only` | Analysis/consultation only, no file mutations | Read-only tools | oracle, librarian | | `react` | General execution, observe-think-act loop | All tools | general | | `plan_and_execute` | Complex tasks requiring planning before execution | All tools | rex, hephaestus | | `explore` | Codebase exploration and search | Search/read tools | explore | ### 5. Tool Templates **Read-only analysis** (e.g. code review, security audit): ```yaml tools: - read - grep - glob ``` **Read-only + network** (e.g. documentation lookup, threat intelligence): ```yaml tools: - read - grep - glob - bash - websearch - webfetch ``` **Full execution** (e.g. code generation, refactoring): ```yaml tools: - read - grep - glob - edit - bash - websearch - webfetch ``` **Tool naming rules**: - Prefer the exact tool names currently registered in the system; do not guess or invent names. - For ThreatBook MCP tools in this project, use the concrete prefixed names such as `threatbook_mcp_ip_query` and `threatbook_mcp_hrti_query`. - More generally, when an MCP server in the project has a stable prefix convention, keep that prefix in agent YAML instead of replacing it with a generic alias. - Do not mix the old `permission` style and the new `tools` style in the same agent unless there is a very specific reason. ### 6. Validation After generating files, verify: 1. **YAML syntax**: run `python3 -c "import yaml; from pathlib import Path; yaml.safe_load(Path('~/.flocks/plugins/agents/{name}/agent.yaml').expanduser().read_text(encoding='utf-8'))"` 2. **Prompt file exists**: confirm `~/.flocks/plugins/agents/{name}/prompt.md` has been created 3. **Directory structure**: ensure files are inside `~/.flocks/plugins/agents/{name}/`, NOT as flat files like `agents/{name}.yaml` 4. **Name uniqueness**: ensure no collision with built-in agents (reserved names: rex, hephaestus, oracle, librarian, explore, prometheus, multimodal-looker, rex-junior, build, plan, compaction, title, summary) 5. **Tool names**: verify every listed tool exists in the current registry; if the repo exposes a `/tools` or tool listing command, check against that instead of relying on memory ### 7. Output After creation, inform the user: - File paths created (e.g. `~/.flocks/plugins/agents/{name}/agent.yaml` and `prompt.md`) - Agent name and role - Can be invoked via `delegate_task(subagent_type="{name}", ...)` --- ## Constraints - Agent names must be `kebab-case` (lowercase letters + digits + hyphens) - `mode` is always `subagent` (this skill only creates sub-agents) - **Files MUST be written to `~/.flocks/plugins/agents/<name>/` subdirectory** — flat files like `agents/<name>.yaml` are legacy and should NOT be created - The subdirectory name must match the agent `name` field exactly - Do not create agents with names that collide with built-in agents - Prefer `tools:` over `permission:` for new agents so the config stays aligned with the current UI and loader behavior
Ver en GitHub