Overview

AgentSmithy is a single Go binary that reads a declarative YAML config file (
.agentsmithy.yaml) and serves a fully functional AI agent over the transport of your choice.
Why does it exist?
Plenty of tools let you build a single agent from YAML. AgentSmithy's differentiator is complex multi-agent flows declared entirely in config: sequential pipelines, parallel fan-outs, and bounded refinement loops, with sub-agents that can themselves be agents, tools, or remote A2A endpoints; no glue code required.
It is the agent counterpart to
mcpsmithy, and slots into
smithy-cli as the runtime
behind smithy agent ....
How it works
- Author a
.agentsmithy.yamldescribing one agent: its model(s), tools, system prompt, and how it should be served. - Run
agentsmithy validateto catch errors before you start. - Run
agentsmithy serveto expose the agent over a transport; e.g--transport=stdioto talk to it directly from a terminal.
AgentSmithy serves one root agent per process. That root may be a
single autonomous agent or an orchestrator (sequential, parallel,
loop) coordinating sub-agents inside the same process. To run
multiple independent agents alongside each other (and alongside MCP
servers), compose them at the stack level via
smithy-cli.