The agent loop
Each agent turn follows the same cycle:- Send — Fabro sends the conversation history (system prompt, prior messages, tool results) to the LLM
- Receive — The model responds with text, tool calls, or both
- Execute — Fabro executes any tool calls in the sandbox and appends the results to the conversation
- Repeat — If the model made tool calls, go back to step 1. If it responded with only text, the agent is done.
Backends
Every agent node uses a backend that determines how Fabro interacts with the LLM. There are two options:API backend (default)
Fabro manages the agent loop directly — it calls the LLM provider’s API, executes built-in tools in the sandbox, and tracks file changes via tool call events. This is the default and supports the full feature set:- Session caching via
fidelity="full"+thread_id - Sub-agents
- Provider failover
- All built-in tools and MCP integrations
CLI backend
Fabro delegates execution to an external coding assistant CLI. The CLI tool manages its own tool loop internally — Fabro sends the prompt, waits for the CLI to finish, and tracks file changes viagit diff before and after execution.
The CLI is selected automatically based on the node’s provider:
| Provider | CLI tool |
|---|---|
| Anthropic | claude |
| OpenAI | codex |
| Gemini | gemini |
backend="cli" or via a model stylesheet:
Comparison
| Capability | API backend | CLI backend |
|---|---|---|
| Tools | Fabro built-in tools + MCP | CLI’s own tool set |
| Session caching | Supported (fidelity + thread_id) | Not supported |
| Sub-agents | Supported | Not supported |
| Provider failover | Supported | Not supported |
| File tracking | Tool call events | git diff before/after |
When to use the CLI backend
- CLI-specific tools — leverage tool implementations built into a specific CLI (e.g. Claude Code’s computer use, Codex’s sandboxed execution)
- CLI-only models — use models that are only available through a CLI tool, not via API
- Existing workflows — integrate a CLI tool you already depend on without rewriting its configuration
Tools
Agents have access to a set of built-in tools for interacting with the codebase and environment:| Tool | Description |
|---|---|
shell | Run shell commands (bash) |
read_file | Read file contents with optional offset and limit |
write_file | Create or overwrite a file |
edit_file | Make targeted edits to an existing file |
grep | Search file contents with regex patterns |
glob | Find files by name pattern |
web_search | Search the web |
web_fetch | Fetch and summarize a URL |
Prompts
The agent’s behavior is shaped by its prompt — the task instructions set in theprompt attribute of the workflow node. Prompts can be inline strings or references to external Markdown files: