AgenTopology

Skills

Define reusable skill packages with descriptions, scripts, and domain knowledge

Skills

The skills block defines reusable capability packages that agents can use. Skills bundle a description, scripts, and domain knowledge into a named unit that can be shared across agents.

Basic Syntax

skills {
  code-review {
    description: "Performs thorough code reviews with style and correctness checks"
    scripts: ["scripts/lint.sh", "scripts/test.sh"]
    domains: [coding-standards, architecture]
  }
}

Field Reference

FieldTypeRequiredDescription
descriptionstringYesWhat this skill does
scriptslistNoShell scripts associated with this skill
domainslistNoMemory domains this skill draws knowledge from

Defining Skills

Each skill has a name and a set of capabilities:

skills {
  frontend-dev {
    description: "Builds React components with TypeScript and Tailwind CSS"
    scripts: ["scripts/component-gen.sh"]
    domains: [frontend, design-system]
  }

  api-design {
    description: "Designs RESTful APIs following OpenAPI conventions"
    domains: [api-spec, backend]
  }

  deployment {
    description: "Deploys applications to AWS using CDK"
    scripts: ["scripts/deploy.sh", "scripts/rollback.sh"]
    domains: [infrastructure]
  }
}

Agent Skill References

Agents reference skills with the skills field:

agent frontend-engineer {
  model: sonnet
  skills: [frontend-dev]
  tools: [Read, Write, Bash]
}

agent fullstack-dev {
  model: opus
  skills: [frontend-dev, api-design, deployment]
  tools: [Read, Write, Bash]
}

When an agent has a skill, it gains access to that skill's description (as context), scripts (as executable tools), and domain knowledge (from the referenced memory domains).

Full Example

topology dev-team : [supervisor] {
  memory {
    domains {
      frontend {
        path: "memory/frontend"
        routing: "React, components, UI"
      }
      backend {
        path: "memory/backend"
        routing: "API, database, server"
      }
    }
  }

  skills {
    ui-dev {
      description: "Builds and tests React components"
      scripts: ["scripts/test-ui.sh"]
      domains: [frontend]
    }

    api-dev {
      description: "Builds and tests API endpoints"
      scripts: ["scripts/test-api.sh"]
      domains: [backend]
    }
  }

  agent lead {
    model: opus
    role: "Technical lead who delegates and reviews"
    skills: [ui-dev, api-dev]
  }

  agent frontend {
    model: sonnet
    skills: [ui-dev]
    tools: [Read, Write, Bash]
  }

  agent backend {
    model: sonnet
    skills: [api-dev]
    tools: [Read, Write, Bash]
  }
}

Tips

  • Skills are a way to package expertise. Think of them as roles or specializations.
  • The domains field links skills to memory domains, so agents with a skill automatically get relevant context.
  • Scripts referenced in skills must exist at the specified paths relative to the topology file.
  • Skills can be shared across agents — define once, reference many times.

On this page