Update docs for new CLI commands, fast mode, and subagent defaults

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Bryan Helmkamp 2026-03-29 15:02:48 -04:00
parent 5c0a491de8
commit 4d62c784ee
5 changed files with 77 additions and 5 deletions

View file

@ -1 +1 @@
45ff3da4e05c7c67c909d7b860c7764b34e6a342
1afa8419b53670f95c5d6a041cfd373c4a8c9371

View file

@ -31,7 +31,7 @@ Creates a new sub-agent session and starts it working on the given task.
| `task` | string | yes | The task description for the sub-agent |
| `working_dir` | string | no | Working directory for the sub-agent |
| `model` | string | no | Model to use for the sub-agent |
| `max_turns` | integer | no | Maximum number of turns (default: 50) |
| `max_turns` | integer | no | Maximum number of turns (default: unlimited) |
Returns the `agent_id` string used to reference this sub-agent in subsequent calls.
@ -104,7 +104,7 @@ When a sub-agent fails, the error is captured and returned to the parent via the
Specific failure modes:
- **Sub-agent hits `max_turns`** — The sub-agent stops naturally and returns its last output as a successful result. The parent sees a normal completion with the final assistant message.
- **Sub-agent hits `max_turns`** — The sub-agent stops naturally and returns its last output as a successful result. The parent sees a normal completion with the final assistant message. By default, there is no turn limit — sub-agents run until they complete their task or hit the context window.
- **Sub-agent panics or errors** — The error is captured and returned through `wait` as a failure result. The parent can inspect the error and decide what to do.
- **`spawn_agent` fails** (e.g. depth limit exceeded) — The error is returned immediately as a tool result. The parent can adjust its approach without waiting.
@ -133,5 +133,7 @@ Sub-agents are most useful when:
- **Context management** -- offload work to a sub-agent when the parent's context window is getting full
<Note>
Sub-agents have a default turn limit of 50. For larger tasks, pass a higher `max_turns` when spawning. The parent agent is blocked during a `wait` call, so spawn sub-agents before starting the wait to maximize concurrency.
Sub-agents run with no turn limit by default — they continue until the task is complete or the context window is exhausted. Pass `max_turns` when spawning to cap execution for predictable cost control. The parent agent is blocked during a `wait` call, so spawn sub-agents before starting the wait to maximize concurrency.
</Note>
All active sub-agents are automatically cleaned up when the parent session closes — you don't need to explicitly `close_agent` on every sub-agent.

View file

@ -117,6 +117,57 @@ fabro resume <RUN_ID> --detach
| `<RUN_ID>` | Run ID or unambiguous prefix |
| `-d, --detach` | Run in the background and print the run ID |
## `fabro wait`
Block until a workflow run reaches a terminal state and exit with a code reflecting the outcome — analogous to `docker wait`. Exits 0 on success, 1 on failure or dead.
```bash
fabro wait <RUN>
fabro wait abc123 --timeout 300
fabro wait my-workflow --json
```
| Argument / Flag | Description |
|---|---|
| `<RUN>` | Run ID prefix or workflow name (most recent run) |
| `--timeout <SECONDS>` | Maximum time to wait in seconds |
| `--interval <MS>` | Poll interval in milliseconds (default: 1000) |
| `--json` | Output the conclusion as JSON |
## `fabro create`
Allocate a run directory and persist a run spec without starting execution. Pair with `fabro start` and `fabro attach` for composable automation.
```bash
fabro create <WORKFLOW> --goal "Implement feature X"
```
Accepts the same arguments and flags as [`fabro run`](#fabro-run).
## `fabro start`
Start a previously created run by spawning the detached engine process.
```bash
fabro start <RUN>
```
| Argument | Description |
|---|---|
| `<RUN>` | Run ID prefix or workflow name |
## `fabro attach`
Attach to a running or finished workflow run. Tails progress with live rendering and handles human-in-the-loop interactions (interviews, steering).
```bash
fabro attach <RUN>
```
| Argument | Description |
|---|---|
| `<RUN>` | Run ID prefix or workflow name |
## `fabro ps`
List workflow runs. By default, shows only active (running) runs — similar to `docker ps`. Use `-a` to include completed runs.
@ -275,6 +326,7 @@ fabro model test -m claude-sonnet-4-5
|---|---|
| `-p, --provider <PROVIDER>` | Filter by provider |
| `-m, --model <MODEL>` | Test a specific model |
| `--deep` | Run a multi-turn tool-use test that validates the full agent loop (tool calls, reasoning round-trips) instead of a single-turn completion |
---
@ -819,6 +871,22 @@ fabro secret rm ANTHROPIC_API_KEY
---
## `fabro store dump`
Export the contents of a run's store-backed state to a directory for debugging and inspection.
```bash
fabro store dump <RUN>
fabro store dump abc123 -o ./debug-output
```
| Argument / Flag | Description |
|---|---|
| `<RUN>` | Run ID prefix or workflow name |
| `-o, --output <DIR>` | Output directory (must not exist or be empty) |
---
## `fabro docs`
Open the Fabro documentation website in your default browser.

View file

@ -76,7 +76,7 @@ rankdir=LR
| `goal` | String | Workflow objective — guides agent behavior and retrospectives |
| `rankdir` | Identifier | Layout direction: `LR` (left-to-right) or `TB` (top-to-bottom) |
| `model_stylesheet` | String | CSS-like rules for model assignment (see [Model Stylesheets](/workflows/stylesheets)) |
| `default_max_retries` | Integer | Default retry count for all nodes (default: 3) |
| `default_max_retries` | Integer | Default retry count for all nodes (default: 0) |
| `retry_target` | String | Default node ID to jump to on retry |
| `fallback_retry_target` | String | Fallback retry target if primary target fails |
| `default_fidelity` | String | Default [fidelity level](/execution/context) for all nodes |
@ -262,6 +262,7 @@ OrExpr ::= AndExpr ('||' AndExpr)*
AndExpr ::= UnaryExpr ('&&' UnaryExpr)*
UnaryExpr ::= '!' UnaryExpr | Clause
Clause ::= Key Op Value | Key (bare key = truthy check)
Value ::= BareWord | '"' QuotedString '"'
Op ::= '=' | '!=' | '>' | '<' | '>=' | '<='
| 'contains' | 'matches'
```

View file

@ -67,6 +67,7 @@ Stylesheets support four properties:
| `model` | Model ID or alias | `claude-sonnet-4-5`, `opus`, `gemini-pro` |
| `provider` | Provider name (optional — auto-inferred from the model catalog when omitted) | `anthropic`, `openai`, `gemini` |
| `reasoning_effort` | Reasoning effort level | `low`, `medium`, `high` |
| `speed` | Output speed mode. `fast` enables Anthropic's fast mode for up to 2.5x faster output at higher cost. | `fast` |
| `backend` | Agent execution backend — `api` (default) runs Fabro's own tool loop, `cli` delegates to an external CLI tool. See [Backends](/core-concepts/agents#backends). | `cli`, `api` |
See [Models](/core-concepts/models) for the full list of model IDs and aliases.