Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

M0 — Trace contract (chatty-trace)

Linear: AGE-5 · Crate: chatty-trace · Promotion: pending

No single paper — this is the contract layer every optimizer reflects on.

Why it exists

AFlow, GEPA, ACE, and DGM all optimize against traces, not final answers alone. Chatty already ships a ReAct loop, ATIF v1.6 export, and token budgeting. M0 adds:

  1. Per-module attribution — which prompt produced each step (GEPA credit assignment)
  2. ATIF round-trip — Deserialize path so reflection reads trajectories back in
  3. FeedbackFn — scalar + natural-language feedback per module (GEPA’s µ_f)

Chatty mapping

Paper conceptChatty locationStatus
Trajectory (thought, action, observation)*chatty-trace::TrajectoryReserved — human writes
Action::Language (ReAct’s  = A ∪ L)chatty-trace::ActionReserved
Per-step ModuleIdExtension over AtifStepTo build
ATIF exportchatty-core exporters (Serialize-only today)Round-trip in M0
Trace retentionRecorder trait, no-op in releaseTo build
Train vs validation rolloutsRolloutBudget over token_budget/To build

Capture attaches to the existing loop via rig-agent hooks + rig-tap — no hand-rolled agent loop.

Eval protocol

Stage A: HotpotQA run produces a Trajectory that round-trips; two seeded runs on a warm cache are byte-identical.

Stage B: Harbor runs consume exported ATIF; attribution must survive export/import.

Production landing

MechanismLikely promotion
No-op Recorder in releaseDefault
Full step retentionSetting (TrainingSettingsModel.atif_auto_export already exists)
FeedbackFn implementationsOffline / optimizer only

Reserved symbols (human only)

Trajectory, Step, Action, Outcome, FeedbackFn — see RESERVED.md.

Depends on

Further reading