| New workflow from existing kinds | One file in config/agents/workflows/. Restart |
| Change a prompt, schema, rule, threshold or approval policy | The matching YAML file. Restart |
| Change or add a model | config/agents/models.yaml (license must be in allowed_licenses). Rerun evals |
| New LLM endpoint | settings.llm.providers in config/{env}.yaml. A new provider type needs an impl LlmProvider in crates/llm |
| New connector instance | One file in config/agents/connectors/ |
| New connector type | impl IntegrationConnector in crates/integrations and one match arm in engine::adapters |
| New behaviour | One module in app/src/kinds/ and one line in KindRegistry::builtin |
| New document parser | settings.documents.parsers entry. A new parser type needs an impl DocumentParser |
| MCP tools | A connector YAML with kind: mcp; each MCP tool becomes an action |
| Per-customer behaviour | One file in config/agents/tenants/ |
| Scheduled job | A Loco task in app/src/tasks/ and an entry under scheduler.jobs in config/{env}.yaml |
| Background work | A Loco worker in app/src/workers/, registered in connect_workers |
| Swap the workflow engine | Rewrite app/src/engine/compiler.rs and the thin Task adapter in each kind. The YAML definitions are engine-neutral. Candidates: adk-graph (Apache-2.0), Temporal (MIT) |
| New frontend surface | Any AG-UI client against the same /agui/{workflow} endpoint |
| Multi-agent | AG-UI 1.0 subagent events added to agui::Event, and a flow.fanout kind built on graph-flow's fan-out task |