Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 23 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,29 @@ Intent -> Context -> Action -> Observation -> Verification -> Compaction

Everything else is an extension of that loop.

### What's new in 3.5

- **Programmable Workflow facade** — `AgentSession::workflow()` returns a
cheaply-clonable `Workflow` that pre-wires the session's executor (inheriting
the same governance as model-driven delegation), persistence store, per-step
event stream, and a session-derived stable root id. Its verbs `agent` /
`parallel` / `phase` / `pipeline` each delegate to one combinator; `phase` is a
named resume boundary that emits `WorkflowEvent` milestones. Control flow lives
in the host language — `await` a verb, inspect the outcomes, decide what runs
next. See [Programmable Orchestration](#programmable-orchestration) below.
- **`execute_loop` + `LoopDecision`** — a bounded loop-until-dry combinator with
a **mandatory `max_iterations` hard cap**, so an LLM-driven loop can never run
away (the predicate is the soft condition; the cap is the hard one).
- **Shared `WorkflowBudget`** — aggregates token spend from every step into one
shared ledger (a soft, workflow-wide cost cap) installed through the existing
`BudgetGuard` seam. From the SDK it rides in as an optional argument on
`parallel`: `session.parallel(specs, budgetTokens?)` returns `{ outcomes,
budget }` (Node) / a dict (Python); without a budget it returns the plain
outcomes array, unchanged.
- **Safety fix** — the parallel write fast path now passes the full
`ToolSafetyGate` (permission policy + skill restrictions), closing a bypass
where batched writes in one turn could run ungated.

### What's new in 3.4

- **Programmable orchestration** — a deterministic, code-expressed
Expand All @@ -48,16 +71,6 @@ Everything else is an extension of that loop.
`session.parallel` / `pipeline` / `parallelResumable` (Node) and
`parallel` / `pipeline` / `parallel_resumable` (Python). See
[Programmable Orchestration](#programmable-orchestration) below.
- **Workflow facade, loop & shared budget** — `AgentSession::workflow()` returns
a cheaply-clonable `Workflow` that pre-wires the session's executor (inheriting
the same governance as model-driven delegation), persistence store, per-step
event stream, and a session-derived stable root id. Its verbs `agent` /
`parallel` / `phase` / `pipeline` each delegate to one combinator; `phase` is a
named resume boundary that emits `WorkflowEvent` milestones. `execute_loop` /
`LoopDecision` add a bounded loop-until-dry (with a mandatory `max_iterations`
guard). `WorkflowBudget` aggregates token spend from every step into one shared
ledger — a soft, workflow-wide cost cap installed through the existing
`BudgetGuard` seam.

### What's new in 3.3

Expand Down
Loading