docs: Improved wording and grammar on some graph agent docs
1 file changed
+20
-20
+20
-20
@@ -159,7 +159,7 @@ nodes:
|
|||||||
`0` when the list is discovered mid-run or the loop needs `approval`/`input`
|
`0` when the list is discovered mid-run or the loop needs `approval`/`input`
|
||||||
gates (disallowed inside branches). With the cap off, a non-converging loop
|
gates (disallowed inside branches). With the cap off, a non-converging loop
|
||||||
is stopped only by `settings.timeout`, an enclosing agent node's `timeout`,
|
is stopped only by `settings.timeout`, an enclosing agent node's `timeout`,
|
||||||
or Ctrl-C (which aborts the run promptly from anywhere, see
|
or Ctrl-C (which aborts the run from anywhere, see
|
||||||
[Abort and cancellation](#abort-and-cancellation)); if you also set
|
[Abort and cancellation](#abort-and-cancellation)); if you also set
|
||||||
`timeout: 0`, nothing but Ctrl-C bounds the run before completion. The
|
`timeout: 0`, nothing but Ctrl-C bounds the run before completion. The
|
||||||
validator warns on the explicit `0`. The `0 = no bound`
|
validator warns on the explicit `0`. The `0 = no bound`
|
||||||
@@ -180,15 +180,15 @@ nodes:
|
|||||||
pair it with a sane `max_loop_iterations`. **Bounds compose outward-in:**
|
pair it with a sane `max_loop_iterations`. **Bounds compose outward-in:**
|
||||||
if this graph is run by another graph's `agent` node, that node's
|
if this graph is run by another graph's `agent` node, that node's
|
||||||
`timeout` (default 300) still applies and will drop this graph regardless
|
`timeout` (default 300) still applies and will drop this graph regardless
|
||||||
of its own settings; set `timeout: 0` there too. Conversely a parent's
|
of its own settings; set `timeout: 0` there too. Conversely, a parent's
|
||||||
`timeout: 0` does not lift a child's non-zero `settings.timeout`; the
|
`timeout: 0` does not lift a child's non-zero `settings.timeout`; the
|
||||||
child's own executor enforces it. A root graph run directly is bounded
|
child's own executor enforces it. A root graph run directly is bounded
|
||||||
only by its own `settings.timeout`. An unbounded run ends only on
|
only by its own `settings.timeout`. An unbounded run ends only on
|
||||||
completion, error, an enclosing bound, or Ctrl-C. Ctrl-C aborts the run
|
completion, error, an enclosing bound, or Ctrl-C. Ctrl-C aborts the run:
|
||||||
promptly: the graph flags abort, an in-flight model call is interrupted, a
|
the graph flags abort, an in-flight model call is interrupted, a
|
||||||
running tool is killed within ~100 ms, in-flight branches and map items are
|
running tool is killed within ~100 ms, in-flight branches and map items are
|
||||||
cancelled, and the run fails with `Graph … aborted before super-step` or
|
cancelled, and the run fails with `Graph ... aborted before super-step` or
|
||||||
`Graph … aborted during super-step` (either means "aborted"; see
|
`Graph ... aborted during super-step` (either means "aborted"; see
|
||||||
[Abort and cancellation](#abort-and-cancellation)).
|
[Abort and cancellation](#abort-and-cancellation)).
|
||||||
The 300s agent default was a de-facto safety net for a wedged
|
The 300s agent default was a de-facto safety net for a wedged
|
||||||
child; `timeout: 0` is the explicit opt-out of that net.
|
child; `timeout: 0` is the explicit opt-out of that net.
|
||||||
@@ -220,7 +220,7 @@ super-steps. Ctrl-C (or the enclosing turn being aborted) sets the run's
|
|||||||
abort flag; the frontier join reacts to it exactly like a graph timeout:
|
abort flag; the frontier join reacts to it exactly like a graph timeout:
|
||||||
every in-flight branch task is cancelled, and the run fails with
|
every in-flight branch task is cancelled, and the run fails with
|
||||||
`Graph '<name>' aborted during super-step with frontier [...]` (or, if the
|
`Graph '<name>' aborted during super-step with frontier [...]` (or, if the
|
||||||
abort and the join land in the same tick, `… aborted before super-step …`
|
abort and the join land in the same tick, `... aborted before super-step ...`
|
||||||
one iteration later; either means "aborted"). What "cancelled" means per
|
one iteration later; either means "aborted"). What "cancelled" means per
|
||||||
node type:
|
node type:
|
||||||
|
|
||||||
@@ -241,7 +241,7 @@ node type:
|
|||||||
- **Teammates:** a cancelled branch or item still retires its identity, so
|
- **Teammates:** a cancelled branch or item still retires its identity, so
|
||||||
peers see it as finished.
|
peers see it as finished.
|
||||||
|
|
||||||
Headless runs (`coyote --agent … "prompt"`) end with the `Graph … aborted`
|
Headless runs (`coyote --agent ... "prompt"`) end with the `Graph ... aborted`
|
||||||
error (exit status 1) instead of dying on the signal (130). `approval` and
|
error (exit status 1) instead of dying on the signal (130). `approval` and
|
||||||
`input` prompts run in raw mode: a Ctrl-C there is a key event that fails
|
`input` prompts run in raw mode: a Ctrl-C there is a key event that fails
|
||||||
the node, not a SIGINT.
|
the node, not a SIGINT.
|
||||||
@@ -753,7 +753,7 @@ converges on an external signal, not on a turn count. Rules:
|
|||||||
interrupted), during a tool (the tool is killed within ~100 ms and reports
|
interrupted), during a tool (the tool is killed within ~100 ms and reports
|
||||||
`Tool call '<name>' aborted`), or between turns (the turn-top check fires
|
`Tool call '<name>' aborted`), or between turns (the turn-top check fires
|
||||||
before the next call). The node fails with `llm node aborted` and the run
|
before the next call). The node fails with `llm node aborted` and the run
|
||||||
ends with `Graph … aborted` before any `fallback:` route gets to run. See
|
ends with `Graph ... aborted` before any `fallback:` route gets to run. See
|
||||||
[Abort and cancellation](#abort-and-cancellation).
|
[Abort and cancellation](#abort-and-cancellation).
|
||||||
|
|
||||||
**For long-lived watchers, prefer a graph-level self-loop:** an `llm` check
|
**For long-lived watchers, prefer a graph-level self-loop:** an `llm` check
|
||||||
@@ -1536,16 +1536,16 @@ reducers:
|
|||||||
|
|
||||||
### Built-in reducers
|
### Built-in reducers
|
||||||
|
|
||||||
| Reducer | Semantics | Required types |
|
| Reducer | Semantics | Required types |
|
||||||
|-------------|---------------------------------------------------------------------------|-----------------------------------------|
|
|-------------|----------------------------------------------------------------------------------------------------|-----------------------------------------|
|
||||||
| `append` | Push each branch's value onto an array (creates `[v1]` from nothing, then appends `v2`, `v3`, …) | Any value type |
|
| `append` | Push each branch's value onto an array (creates `[v1]` from nothing, then appends `v2`, `v3`, ...) | Any value type |
|
||||||
| `extend` | Concatenate arrays (`[a, b] + [c, d] = [a, b, c, d]`) | Both sides must be Array |
|
| `extend` | Concatenate arrays (`[a, b] + [c, d] = [a, b, c, d]`) | Both sides must be Array |
|
||||||
| `concat` | Join strings with `\n` separator | Both sides must be String |
|
| `concat` | Join strings with `\n` separator | Both sides must be String |
|
||||||
| `sum` | Numeric addition | Both sides must be Number |
|
| `sum` | Numeric addition | Both sides must be Number |
|
||||||
| `max` | Numeric max | Both sides must be Number |
|
| `max` | Numeric max | Both sides must be Number |
|
||||||
| `min` | Numeric min | Both sides must be Number |
|
| `min` | Numeric min | Both sides must be Number |
|
||||||
| `merge` | Object union (incoming wins on key collision) | Both sides must be Object |
|
| `merge` | Object union (incoming wins on key collision) | Both sides must be Object |
|
||||||
| `overwrite` | Last write wins (explicit opt-in to non-deterministic behavior) | Any value type |
|
| `overwrite` | Last write wins (explicit opt-in to non-deterministic behavior) | Any value type |
|
||||||
|
|
||||||
Integer typing is preserved through numeric reducers when possible;
|
Integer typing is preserved through numeric reducers when possible;
|
||||||
e.g. `sum` of `5` and `7` stays `Number::i64(12)`, not `Number::f64(12.0)`.
|
e.g. `sum` of `5` and `7` stays `Number::i64(12)`, not `Number::f64(12.0)`.
|
||||||
@@ -1699,7 +1699,7 @@ branches need to be designed so they don't depend on sibling writes.
|
|||||||
In a TTY:
|
In a TTY:
|
||||||
|
|
||||||
- Each parallel branch gets its own labeled spinner (e.g. `[fetch_web]
|
- Each parallel branch gets its own labeled spinner (e.g. `[fetch_web]
|
||||||
running… 2.3s`), drawn side-by-side via
|
running... 2.3s`), drawn side-by-side via
|
||||||
[indicatif](https://docs.rs/indicatif/).
|
[indicatif](https://docs.rs/indicatif/).
|
||||||
- When a branch completes successfully, its spinner finalizes to
|
- When a branch completes successfully, its spinner finalizes to
|
||||||
`✓ done (2.3s)`. On failure: `✗ failed (2.3s) — <error excerpt>`.
|
`✓ done (2.3s)`. On failure: `✗ failed (2.3s) — <error excerpt>`.
|
||||||
|
|||||||
Reference in new issue
Block a user