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

Paper → experiment → product pipeline

When to read this: You need the end-to-end story of how SOTA agentic papers land in Chatty — what gets experimented on, what the human reviewer decides, and what becomes production code vs a user setting vs nothing.

This is the organizing frame for research documentation. Individual papers, crate promises, and ADRs hang off it.

The flow

flowchart LR
  Papers[SOTA papers] --> StageA[Stage A<br/>in-repo fidelity]
  StageA --> StageB[Stage B<br/>Harbor benchmarks]
  StageB --> Human[Human evaluation<br/>paired stats + ablations]
  Human -->|reject| Archive[Document why not]
  Human -->|setting| Setting[User-configurable<br/>opt-in feature]
  Human -->|default| Default[Ship as default<br/>when dominating]

  StageA --> Crates[Research crates<br/>trace / playbook / flow / optimize]
  Setting --> Core[chatty-core settings<br/>+ shipping crates]
  Default --> Core

Rule: papers inform the design; experiments decide what ships. Reproducing a paper is necessary but not sufficient — cross-module results (AGE-21) and product constraints (AGE-26) filter what becomes Chatty.

Two experiment stages

StageWherePurposeWho interprets results
Stage Achatty2 research cratesFidelity to each paper’s mechanism; trace contracts; in-process optimizersThe human reviewer (owner:human / owner:pair on reserved symbols)
Stage Bharbor-chatty (Harbor)Containerized coding/env benchmarks (HumanEval, Polyglot, AppWorld, …)The human reviewer — agents build harness plumbing only

Stage A answers “did we implement the idea correctly?” Stage B answers “does it help on tasks users care about?” Neither stage auto-promotes to production.

See Harbor pivot for why Stage B lives outside this repo.

Three promotion outcomes

Every paper mechanism ends in exactly one bucket after experimentation:

OutcomeMeaningExample (illustrative — decided by experiment)
RejectedMechanism stays in research/optimizer tooling only; not exposed in the appCoT-SC hybrid backoff as a user-facing strategy if ReAct + tools already wins for Chatty’s workloads
SettingAvailable but off by default; user picks per task/model/conversationworkflow_enabled + active_workflow_id (AFlow IR); ACE playbook scope; optimizer-launched preamble variants
DefaultBecomes the normal path when evidence shows clear dominanceReAct loop itself (already ships in chatty-core); ATIF export when trace retention is explicitly enabled

Dominance bar for defaults: sustained gain on Stage B (or representative in-app tasks), acceptable cost/latency, and no regression on the production bar (AGE-26). A paper win on HotpotQA alone does not automatically become a Chatty default.

Settings surface: persisted models in chatty-core settings (ModelConfig, future FlowSettingsModel, playbook storage — see product gate issues below). Optimizer output (preamble, playbook bullets, workflow IR) lands through an apply policy the human reviewer must choose (AGE-45).

Paper → crate → product landing

ModulePaperPrimary crate(s)Ships in app?Production landing siteTypical promotion
M1ReAct (ICLR 2023)chatty-core loop + chatty-traceLoop: yes; strategy variants: eval-onlyExisting agent loop; per-step attribution in traceLoop = default; Act/CoT/CoT-SC hybrids = setting or eval-only
M2AFlow (ICLR 2025)chatty-flow (runtime IR) + chatty-optimize (MCTS)IR interpreter: yes; search: build-time onlySub-agent composition via saved workflowSearch = offline; winning topology = setting (FlowSettingsModel)
M3GEPA (ICLR 2026)chatty-optimizeNo (on-demand / CI)ModelConfig.preambleOptimized preamble = setting per model; apply via review/export (AGE-45)
M4ACE (ICLR 2026)chatty-playbookYesMemory / [SKILL] store backingPlaybook merge/refine in runtime; grow bounds = production concern; scope = setting (AGE-47)
—Trace / ATIF contractchatty-traceYes (recorder opt-in)ATIF export + reflection inputFull retention = setting; no-op recorder = default in release
M5DGMagenticloop (separate repo)NoNever against chatty2 itselfStays research — see RESERVED.md

Linear project: Self-improving chatty2.

Inference path vs offline tooling

flowchart TB
  subgraph request [Request path — must stay fast]
    UI[GPUI / TUI] --> Core[chatty-core]
    Core --> Trace[chatty-trace Recorder]
    Core --> Playbook[chatty-playbook]
    Core --> Flow[chatty-flow interpreter]
  end

  subgraph offline [Offline — never blocks chat]
    Opt[chatty-optimize<br/>GEPA / AFlow search]
    Harbor[harbor-chatty Stage B]
    Opt --> Artifacts[preamble / playbook / workflow IR]
    Artifacts -.->|apply policy| Core
  end

  Trace --> Opt
  Playbook --> Opt
  Flow --> Opt
  Core --> Harbor

Shipping crates (chatty-core, chatty-trace, chatty-playbook, chatty-flow) are held to the production bar (AGE-26). Build-time crates (chatty-optimize) are held to correct, not latency-safe.

What the human reviewer owns vs what agents build

Human reviewerAgents
Reserved type definitions in RESERVED.md (~200 lines containing the idea)Everything around them (~2000 lines): wiring, tests, loaders, CI
Running and interpreting cross-module experiments (AGE-21)Harness plumbing for those experiments
Answering gate:product-decision and gate:reflection issuesImplementing decided policy
Choosing reject / setting / default per mechanismDocumenting the decision in ADRs
Posting benchmark numbers before agents may cite themBuilding cost sheets and paired-stats tooling

Agents must not implement reserved symbols, close gate issues, or predict benchmark outcomes.

Open product gates (block promotion UX)

These human product decisions define how optimized artifacts reach users:

IssueQuestion
AGE-44Where users start optimizer runs (GPUI vs chatty-tui --optimize vs CI)
AGE-45Auto-apply vs review-and-approve vs export-only for optimized artifacts
AGE-46Dataset bundling in the product binary
AGE-47Playbook scope: global vs per-model vs per-conversation

Project: Chatty agentic product integration.

Documentation layers for this pipeline

Rigorous docs mirror the pipeline — each layer answers a different question:

LayerQuestionLocationStatus
PipelineWhy does research exist and how does it become product?This pageActive
App bridgeWhich app components map to which research modules?app-research-bridge.mdBuilt
ArchitectureWhat runs where at runtime?system-overview.md, component-map.mdBuilt
Paper fidelityWhat did the paper actually claim?research/modules/Built (M0–M4)
Crate promisesWhat does each shipping crate guarantee?Each crate’s README.md (chatty-trace, chatty-playbook, chatty-flow)Built
ADRsWhy this fork (Harbor, AppWorld, cost model)?docs/research/*.mdPartial
Promotion recordWhat shipped, as what, with what evidence?Recorded by the human reviewer per verdict (archived template)No verdicts yet
Settings mapWhich settings map to which mechanisms?settings-integration-map.mdBuilt (gates open)
Experiment protocolHow to run Stage A/B rigorously?experiment-protocol.mdBuilt
ReferenceWhat can I configure today?Generated tools/CLI/env pagesPartial

Completed doc layers

  1. Per-paper module pages — modules/
  2. Settings integration map — settings-integration-map.md
  3. Experiment protocol — experiment-protocol.md

Still open

  1. Link checker CI (DOC-50)
  2. README → /user/ migration (DOC-15, human review)