Skip to content

Latest commit

 

History

History
214 lines (167 loc) · 8.02 KB

agents.md

File metadata and controls

214 lines (167 loc) · 8.02 KB

🧩 Agents

Twenty-two built-in specialist roles, plus 46 language, UI and task-specific agent blocks. Language packs select worker, tester and reviewer specialists. Scoped packs. No “hold the monorepo in your head” cosplay. 🎭

🧬

Mix brains: cheap local explorer + sharper cloud reviewer in one run — see Providers. Budget diplomacy is a feature.


Roster 📋

ID Tools Output When
coordinator — JSON actions Pre-exec + each wave 🧭
orchestrator — decisions Reserved
context — CONTEXT body Run start 📝
explorer ✅ + find_models / mcp_call file map Deep explore 🔎
docs ✅ + find_models / mcp_call docs map Docs/API queries 📚
architect — design JSON Large/refactor 🏛️
planner — plan JSON Always 📋
splitter — tasks JSON Always ✂️
worker ✅ + find_models / mcp_call status Execute 🛠️
deep ✅ + find_models / mcp_call status Multi-step 🧪
reviewer — approve JSON Critic 🔍
corrector ✅ + find_models / mcp_call status On reject 🔧
tester ✅ + find_models / mcp_call passed + commands Real shell verify (pytest/go/smoke) ✅
placeholder ✅ + find_models / mcp_call status + gaps Fill stubs / flag precise gaps 🩹
escalate — action JSON HITL timeout arbitrator (retry/re-scope/…) ⚖️
memory — bullets Learn 💾
manager — squads + interface contracts Assemble teams and ownership boundaries
triage — assignee + guidance Route rejected work to another available agent
composer — pipeline JSON Assemble a task-specific pipeline (dynamic_pipeline) 🎯
reviewer-strict — approve JSON Sequential second opinion, asked only when reviewer returns no readable verdict; temperature 0 🔍🔍
describer — prose Architect half of the describer→editor pair (architect_editor) 🗣️
editor ✅ + find_models / mcp_call status Editor half: applies a described change, minimal reasoning, strict format ✍️

Output contracts and recovery

Implementation roles return status, summary and files_changed. Testers return passed, executed commands, summary and failures; a read-only verification task does not need an implementation edit. Reviewers return approved, score, summary and issues. These contracts are enforced by schema and delivery gates. Finalization and recovery preserve the active role's contract, including language-specific testers. Failed or unexecuted checks do not become passes because a file was written.

Review and correction retain each team's charter and frozen interface. A fresh agent dispatch can read the files again after a predecessor's repetition guard has fired; repeated calls within that dispatch and task-wide retry budgets remain bounded.

!!! note "🧰 Coding tools" Coding agents share ws_* + git_* plus find_models (auth-gated catalog) and mcp_call (single MCP meta-tool — never one tool per MCP capability).

!!! note "⚖ @escalate" Fired only when a task hits max review retries and the human does not answer the escalate modal / /escalate within escalate_ask_timeout (default 5m) — and only when no human is attached; with a TTY or a Studio client the gate blocks instead of expiring. Override the specialist with escalate_timeout_agent (auto: escalate → reviewer → coordinator).

curl -s localhost:7420/api/agents | jq '.[].id'
# TUI: /agents

Language agent blocks 🌍

The twenty-two above are the roles. A language pack substitutes language-aware agents for some of them: override_worker sets execute.default_role, override_tester sets the test phase's agent, and the pack's pipeline block names the reviewer directly (execute.reviewer:). Those substitutes ship alongside UI, repository-insight and OpenShift specialists as agent blocks (pkg/blocks/bundled/agents/), 46 in total; slmcode blocks list prints the live set.

Pack worker tester reviewer
go go-worker go-tester go-reviewer
python python-worker python-tester python-reviewer
typescript ts-worker ts-tester ts-reviewer
react react-worker react-tester react-reviewer
web web-worker web-tester —
rust rust-worker rust-tester rust-reviewer
java java-worker java-tester java-reviewer
kotlin kotlin-worker kotlin-tester —
dotnet dotnet-worker dotnet-tester dotnet-reviewer
ruby ruby-worker ruby-tester —
php php-worker php-tester —
swift swift-worker swift-tester —
cpp cpp-worker cpp-tester —
(no pack) shell-worker shell-tester —

A pack whose pipeline does not name a reviewer uses the generic reviewer. shell-worker / shell-tester belong to no pack; the generic pipeline picks them up for a shell workspace.

slmcode blocks show agent go-tester    # its prompt, tools, temperature, skills
slmcode blocks apply go --materialize-agents   # copy them into .slmcode/agents/ to edit

Materializing is the supported way to customise one: the copy in .slmcode/agents/ wins over the builtin (see Blocks → Discovery Order).


Custom agents ✨

.slmcode/agents/<id>.yaml or ~/.slmcode/agents/.

# TUI
/agent edit worker model=qwen2.5-coder:14b

# CLI
slmcode agent list
slmcode agent show worker
slmcode agent edit worker model=qwen2.5-coder:14b provider=ollama
slmcode agent clear-llm worker

Fields: skills, model, provider, endpoint, tools, temperature, max_tokens, max_iter, system_prompt.

LLM inheritance: empty model / provider / endpoint means inherit the active stack (global config.yaml). Per-agent pins always win.

agent.model    ?? stack/global.model
agent.provider ?? stack/global.provider
agent.endpoint ?? (agent.provider ? default : global.endpoint)

model_profiles resolve against each agent’s effective model (not only the global one).

Different endpoints → unique backend keys (no accidental shared gateway).

Use anywhere in the pipeline

Custom agents are first-class:

  • Specialist mode — select them in Studio / mode: specialist
  • Board tasks — set role: night-auditor (dropdown lists all /api/agents)
  • Pipeline slots — insert before/after/replace any phase in .slmcode/pipeline.yaml
# .slmcode/pipeline.yaml
slots:
  - id: audit-explore
    agent: night-auditor
    after: explore
    input: |
      Review exploration for risks.
      {{exploration}}

→ Pipeline


Coordinator actions 🧭

{
  "summary": "Auth clear; tests missing",
  "actions": [
    {"type": "promote", "task_id": "T2", "text": "deps met"},
    {"type": "reassign", "task_id": "T3", "role": "deep"},
    {"type": "add_task", "text": "Add regression test", "role": "tester"},
    {"type": "note", "task_id": "T1", "text": "edge case"}
  ],
  "focus_files": ["pkg/foo.go"]
}

Air-traffic control, not pilot. Let workers fly the plane.


Delegating 📬

slmcode task add "Deep refactor auth" --role deep --column ready_to_dev
slmcode task delegate T1 docs

Project instructions 📜

Auto-loaded from:

  • AGENTS.md / AGENT.md
  • CLAUDE.md
  • .cursorrules
  • .slmcode/PROJECT.md

!!! example "✨ Tiny AGENTS.md" markdown # Agents - Tiny, reviewable diffs - No drive-by refactors - Match existing style

→ 🦋 Skills · 🧠 Concepts

☀️ Made with ♥ by UnicoLab