docs(graph): clarify runtime guard wording and nested paths for agent inputs
1 file changed
+8
-2
+8
-2
@@ -309,7 +309,9 @@ resolved strictly (a missing key fails the node before the child starts, with
|
||||
- A value that is exactly one reference (`"{{inner_width}}"`) hands the
|
||||
parent's JSON value through unchanged: numbers stay numbers, lists stay
|
||||
lists, objects stay objects. Scripts in the child see the real type;
|
||||
the child's own templates stringify it the usual way.
|
||||
the child's own templates stringify it the usual way. Nested paths work
|
||||
the same way (`"{{limits.width}}"` hands through `limits.width` with its
|
||||
type intact).
|
||||
- Anything else (`"Repo: {{repo}}"`, `"{{a}}-{{b}}"`) renders to a string.
|
||||
- **`null` is a value, not an absence.** A lone `"{{k}}"` whose parent value
|
||||
is `null` overlays the child's default with `null`. Because `state_updates`
|
||||
@@ -318,7 +320,11 @@ resolved strictly (a missing key fails the node before the child starts, with
|
||||
`x: null`, not its own default.
|
||||
|
||||
**Two things are rejected**, both at load time by the validator and again at
|
||||
runtime for graphs running with `validate_before_run: false`:
|
||||
runtime for graphs running with `validate_before_run: false`. The validator
|
||||
messages below name the node; the runtime guards name the agent instead
|
||||
(`agent '<name>' has no graph.yaml; …` / `agent '<name>': `inputs.initial_prompt`
|
||||
is reserved …`) and arrive wrapped in the usual `at node '<id>': Agent '<name>'
|
||||
failed:` context, so the node is still recoverable from the error chain.
|
||||
|
||||
- `inputs:` on a node whose `agent` has a `config.yaml` but no `graph.yaml`
|
||||
(`agent node '<id>': `inputs:` requires agent '<name>' to be a graph agent
|
||||
|
||||
Reference in new issue
Block a user