Platform architecture
All five AgentStateLabs products are built on a single substrate: AgentStateGraph. Every decision, plan, task, policy, and memory entry is a commit in the graph — content-addressed, branchable, blameable.
Layered architecture
Section titled “Layered architecture”┌─────────────────────────────────────────────────────────────┐│ Your agents ││ (Claude Code, Cursor, custom MCP client, CI pipeline, …) │└────────────────┬──────────────┬──────────────┬─────────────┘ │ │ │ ┌───────┴──────┐ ┌───┴──────┐ ┌───┴──────────┐ │ CTXone │ │ ASD │ │ Crucible │ │ (memory + │ │ (code + │ │ (testing + │ │ plans) │ │ audit) │ │ validation) │ └───────┬──────┘ └───┬──────┘ └───┬──────────┘ │ │ │ ┌───────┴──────────────┴──────────────┴──────────┐ │ AgentStateRouter │ │ (execution optimization engine) │ └───────────────────────┬──────────────────────────┘ │ ┌───────────────────────┴──────────────────────────┐ │ AgentStateGraph │ │ (content-addressed, branchable, blameable │ │ state primitive — the substrate for all tools) │ └────────────────────────────────────────────────────┘Data flow
Section titled “Data flow”Memory and plans (CTXone)
Section titled “Memory and plans (CTXone)”- Agent calls
remember→ CTXone commits a memory node to the graph - Agent calls
recall→ CTXone retrieves token-budgeted results from the graph - Agent calls
plan_create→ plan node written to graph; tasks assigned to agents - Session ends → summary commit written; next agent starts with full context
Code intelligence (ASD)
Section titled “Code intelligence (ASD)”asd index/reindex→ tree-sitter parse → symbol nodes written to.asd/v1/- Agent calls
prepare_change→ ASD reads call graph, ledger, thinking entries, effects - Agent calls
ledger_append→ decision commit written; hash-chained, survives renames - Agent calls
think_speculate→ hypothesis stored per-symbol in.asd/v1/
Routing (AgentStateRouter)
Section titled “Routing (AgentStateRouter)”- Task description arrives at the suggester endpoint
- Router reads policy, task history, and agent performance records from the graph
- Router commits a routing decision with intent, confidence, and reasoning
- Caller routes to the suggested model/agent
Validation (Crucible)
Section titled “Validation (Crucible)”- Scenario defined with starting state, policy, success criteria
- Agents run against scenario; each decision is a graph commit on its own branch
- Judge agent reads all branches, scores each run
- Entire run is sealed into a tamper-evident epoch
Shared primitives
Section titled “Shared primitives”Because everything is AgentStateGraph, all five products share:
| Primitive | Who uses it |
|---|---|
| Branches | CTXone (per-task), Crucible (per-agent-run), ASD (speculation), ASG native |
| Plans & tasks | CTXone, Crucible, Router |
| Policy | All five — same Cedar/Rego/WASM evaluator |
| Epochs | Crucible (audit bundles), ASG (tamper-evident export) |
| Taint | CTXone, ASG native |
| MCP | All five expose an MCP server |
Deployment topologies
Section titled “Deployment topologies”Single-agent development
Section titled “Single-agent development”One developer, one repo. CTXone Hub on localhost. ASD indexing one or more repos. No Router or Crucible — overkill for a solo workflow.
Team deployment
Section titled “Team deployment”CTXone Hub with team-level memory graph. ASD connected to the shared hub. Router routing between local and cloud models. Crucible for validating agent changes before merge.
Enterprise
Section titled “Enterprise”Postgres-backed AgentStateGraph for multi-tenant isolation. Namespaced workspaces per team. Policy enforced at the graph layer. Epochs exported to compliance storage on a schedule.