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
Copy file name to clipboardExpand all lines: README.md
+59-17Lines changed: 59 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,18 +54,40 @@ Most agent frameworks begin with an agent loop. OpenRath begins with **Session**
54
54
55
55
OpenRath is designed for this: many agents collaborating across many branchable sessions, while still tracing every role, workspace, memory write, and final output.
Runs and checkpoints, effect reconciliation, tenant-scoped Agent Server APIs,
61
-
and governed Provider/Tool/Sandbox/Memory adapters. The HTTP contract is
62
-
currently **Beta**; v1 JSONL imports are historical and cannot resume an active
63
-
Run.
57
+
## OpenRath v2.0.0: Built for Production
58
+
59
+
The defining change in OpenRath v2.0.0 is that OpenRath moves beyond a
60
+
composable Python framework and becomes a durable runtime designed for
61
+
production deployment. The existing Session-first Python API remains intact;
62
+
the release adds a production execution and operations layer around it.
63
+
64
+
| Production concern | What OpenRath provides |
65
+
| --- | --- |
66
+
| Durable execution | Explicit `@step` / `@router` boundaries compile into immutable execution plans. Runs, Events, and Checkpoints survive process and worker restarts. |
67
+
| Resilient workers | Leases, fencing, retries, cancellation, deadlines, and resumable queues prevent stale workers from silently committing new state. |
68
+
| Controlled side effects | An Effect Ledger records outcomes and idempotency keys. Ambiguous non-idempotent effects stop in `NEEDS_REVIEW` instead of being replayed blindly. |
69
+
| Human decisions | Durable Interrupts pause a Run for approval or input and resume it without rebuilding hidden loop state. |
70
+
| Security and tenancy | Agent Server tokens carry explicit action grants; tenant/project scope, policy checks, secret references, trust labels, and audit remain separate boundaries. |
71
+
| Production operations | PostgreSQL is the durable source of truth, Redis can accelerate signaling, S3-compatible storage holds artifacts, and health, migration, telemetry, container, and Kubernetes references are included. |
72
+
73
+
```text
74
+
@step / @router
75
+
|
76
+
v
77
+
ExecutionPlan -> Run -> Event -> Checkpoint
78
+
| |
79
+
| +-> Interrupt / Effect Ledger
80
+
|
81
+
+-> PostgreSQL durable state
82
+
+-> optional Redis signals
83
+
+-> S3-compatible artifacts
84
+
|
85
+
v
86
+
Agent Server HTTP + SSE
87
+
```
64
88
65
-
Embedded mode is intended for a trusted process. Agent Server mode is the
66
-
strict durable profile: tokens need explicit action grants, object access is
67
-
tenant/project scoped, and synchronous steps cannot declare a preemptive
68
-
timeout. Use an async step or isolated executor for enforceable deadlines.
89
+
Embedded mode remains useful inside a trusted process. Agent Server mode is the
90
+
strict production profile:
69
91
70
92
```python
71
93
runtime = LocalRuntime(
@@ -76,12 +98,28 @@ runtime = LocalRuntime(
76
98
server = AgentServer(store, runtime, auth=auth, audit_sink=audit)
77
99
```
78
100
79
-
Production PostgreSQL schema migration is a separate operation:
80
-
`openrath-migrate` followed by `openrath-migrate --check`. Runtime identities
0 commit comments