Engine-feature demo — this guide teaches a single mechanism: fidelity attributes (
full,summary,none) controlling how much prior context each node carries. For the canonical attractor shape used in real work, start with Tutorial 00: The Convergence Loop.
Self-contained -- the goal is baked into the .dot, so no --param is needed.
From the attractor repo root:
DOT="$PWD/examples/pipelines/07-fidelity-modes.dot"
mkdir -p /tmp/attractor-demo && cd /tmp/attractor-demo
attractor run "$DOT" --cwd .See README.md in this folder for the run pattern and why the $DOT capture + cd + --cwd . are needed (box-node process-cwd alignment + dot-path resolution).
- Fidelity attribute on nodes: Each node explicitly sets how much prior context to carry
- Fidelity attribute on edges: The edge from
integration_test -> final_reviewoverrides the node's fidelity thread_idfor session reuse:implement_authandimplement_rate_limitsharethread_id="api-impl", meaning they reuse the same LLM session underfullfidelity- All fidelity modes: truncate, full, compact (graph default), summary:medium, summary:high
- Fidelity resolution precedence: edge fidelity (highest) > node fidelity > graph
default_fidelity> system default ("compact")
start -> architect -> implement_auth -> implement_rate_limit -> implement_logging -> integration_test -> final_review -> done
(truncate) (full, thread (full, thread (summary:medium) (compact, from (edge overrides
="api-impl") ="api-impl") graph default) to summary:high)
| Node | Node Fidelity | Edge Fidelity | Graph Default | Resolved | Session |
|---|---|---|---|---|---|
architect |
truncate |
-- | compact |
truncate | Fresh (goal + run ID only) |
implement_auth |
full |
-- | compact |
full | Reused (thread "api-impl") |
implement_rate_limit |
full |
-- | compact |
full | Reused (thread "api-impl") |
implement_logging |
summary:medium |
-- | compact |
summary:medium | Fresh (~1500 token summary) |
integration_test |
(none) | -- | compact |
compact | Fresh (bullet-point summary) |
final_review |
compact |
summary:high |
compact |
summary:high | Fresh (~3000 token summary) |
Key: Edge fidelity on integration_test -> final_review overrides final_review's own fidelity="compact".
| Mode | Content |
|---|---|
truncate |
"Goal: Build a REST API...\nRun ID: ..." |
full |
Full conversation history preserved in LLM session |
compact |
Bullet-point list: completed stages, outcomes, context.* values |
summary:medium |
Stage outcomes with notes, active context.* values (~1500 tokens) |
summary:high |
Detailed outcomes with failures, context updates (~3000 tokens) |
implement_auth and implement_rate_limit both use thread_id="api-impl" with fidelity="full":
implement_authstarts a new LLM session with key "api-impl"implement_rate_limitreuses that same session -- it sees the full conversation fromimplement_auth- This is powerful for multi-step implementations where each step builds on the previous one's context
steps:
- agent: attractor:pipeline-runner
instruction: "Run the fidelity modes pipeline"
context:
pipeline_path: "examples/pipelines/07-fidelity-modes.dot"architect/prompt.mdshould have minimal preamble (truncate mode)implement_authandimplement_rate_limitshould share a session threadimplement_logging/prompt.mdshould have a medium-detail summary preambleintegration_test/prompt.mdshould have a compact bullet-point preamblefinal_review/prompt.mdshould have a high-detail summary (edge override worked)- Checkpoint resume: if the pipeline resumes from checkpoint,
fullfidelity degrades tosummary:highfor the first resumed node (session state can't be serialized)