You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Demonstrates timer agents and validate → fix graph loops (v1)
Who uses it
Persona
What they do
Finance ops
Reviews results in dashboard (v2: approve exceptions via HITL)
Engineering
Builds agent, connects client data sources via MCP/tools
Investor / client
Observes hourly run and dashboard during demo
Architecture (v1 — as shipped)
graph TD
subgraph trigger [1. Trigger]
T1[Hourly timer]
end
subgraph ingest [2. Ingest]
I1[Fetch API data]
I2[Read CSV / ledger]
I1 --> I3[Aggregate raw inputs]
I2 --> I3
end
subgraph ai [3. AI processing]
I3 --> P1[LLM extract + normalize]
P1 --> P2[Structured records]
end
subgraph validate [4. Validate and fix loop]
P2 --> V1{Reconciliation OK?}
V1 -->|No| V2[Correct transactions step]
V2 --> V1
end
subgraph output [5. Output]
V1 -->|Yes| O1[Store verified results]
O1 --> O2[Report + dashboard SSE]
end
T1 --> I1
T1 --> I2
Loading
v1 note:pause_nodes = [] — no human approval gate in this template yet. Auto-correction uses the graph loop (validate_transactions → correct_transactions → validate_transactions), not dashboard HITL. For human review patterns see agreement_analysis or log_monitor.
Platform features used in v1:
Timer entry — AsyncEntryPointSpec (same family as log_monitor --daemon)
Graph loop — conditional edges on validation_passed
Overview
Build the flagship Hourly Tracking / reconciliation agent for finance teams.
Every hour the agent:
This is the primary demo for investors and the first workflow sold to clients.
Status: v1 shipped via PR #9 (merged). Template:
examples/templates/hourly_tracking/Related: #10 Docs / auto-correction
Ticket metadata
Why this matters
Who uses it
Architecture (v1 — as shipped)
graph TD subgraph trigger [1. Trigger] T1[Hourly timer] end subgraph ingest [2. Ingest] I1[Fetch API data] I2[Read CSV / ledger] I1 --> I3[Aggregate raw inputs] I2 --> I3 end subgraph ai [3. AI processing] I3 --> P1[LLM extract + normalize] P1 --> P2[Structured records] end subgraph validate [4. Validate and fix loop] P2 --> V1{Reconciliation OK?} V1 -->|No| V2[Correct transactions step] V2 --> V1 end subgraph output [5. Output] V1 -->|Yes| O1[Store verified results] O1 --> O2[Report + dashboard SSE] end T1 --> I1 T1 --> I2Platform features used in v1:
AsyncEntryPointSpec(same family aslog_monitor --daemon)validation_passedoutput_keysinside steps (see [P0][Phase 1][Docs] Goal vs node criteria, audit auto-correction, improvement gaps #10)v2 (not in v1):
pause_nodeswhen exception needs approver in dashboardEngineering deliverables
Agent scaffold — done (PR #9)
examples/templates/hourly_tracking/agent.py— Goal with success criterianodes/— fetch, process, validate, correct, storeedges/— validate → fix loop on failure; success → storeData & tools — partial
tools.pywith mock/validation helperslib/schemas.pyValidation — done
correct_transactionswith discrepancy contextloop_config.max_iterations)Human-in-the-loop — v2 / not shipped
pause_nodeson exceptions that need human sign-offinject_input)Ops & demo — done
--daemonpatternengine validate examples/templates/hourly_trackingReference templates
log_monitoragreement_analysisDefinition of done
v1 (closed)
engine validate)AsyncEntryPointSpec)v2 (follow-up — open work)
Out of scope (v1)