Pattern 1: Pass tools to an SDK agent
Use this when the agent needs judgment but the external calls should stay explicit and reviewable.Pattern 2: Pass a skill / plugin / MCP config to a CLI agent
Use this when your CLI agent already supports external integrations and Smithers should only orchestrate the task.Pattern 3: Run an external CLI in a task
Use this when the step is deterministic and you do not need the model involved.Choosing between them
| If you need | Prefer |
|---|---|
| AI judgment over a small integration surface | Pattern 1 (SDK agent with narrow tools) |
| Existing CLI ecosystem support (skills, plugins, MCP) | Pattern 2 (CLI agent) |
| Deterministic sync or publish steps | Pattern 3 (compute task) |