0.8.0
Trace file capture through the workflow journal.AgentClientStep now propagates trace file paths from the underlying agent model into the workflow’s StepTransition and journal events. This closes the gap between “the agent ran” and “here’s exactly what the agent did” — every tool call, token count, and thinking block is preserved in a JSONL trace file, and the path to that file is recorded in the workflow journal.
AgentClientStep trace wiring
When the backingAgentClient implementation returns a trace path via executeForResult(), AgentClientStep writes it to AgentContext.TRACE_PATH and the executor propagates it through to StepTransition.tracePath():
What changed
AgentClient.executeForResult()— new default method returningExecutionResult(text, tracePath). Backward compatible: lambdas still work, trace path is null.AgentClientStep— callsexecuteForResult(), writesTRACE_PATHto context viaupdateContext()StepTransitionandWorkflowStepEvent— carry optionaltracePathfieldJdbcTraceRecorder— newtrace_pathcolumn instep_transitionstableAgentContext.TRACE_PATH— new well-known context keyAgentContext.Builder.without()— remove a key from context (used internally to clear per-step trace paths)ClaudeStepjavadoc — now recommendsAgentClientStepfor experiments needing trace capture
0.7.0
Managed Agents as a step runtime. The newManagedAgentStep delegates workflow steps to Anthropic’s Managed Agents API. The workflow graph stays in charge — but specific steps can run in Anthropic’s cloud sandbox with full tool access (bash, file I/O, web search).
This proves the core thesis: workflow is portable, execution substrate is pluggable. The same workflow definition can run steps locally, via Temporal, or in Anthropic’s hosted infrastructure — swap a single step, zero changes to the graph.
ManagedAgentStep
Reference a pre-created agent and environment:- Uses the official
com.anthropic:anthropic-javaSDK directly — no wrapper layer - Follows the
A2AStepimmutable pattern: factory methods, copier methods forname()/timeout(),SessionRunnerfunctional interface for testability - One session per
execute()call — agents are reused, sessions are ephemeral - Stream-first SSE pattern: opens the event stream before sending the user message, collects
agentMessagetext blocks, breaks onsessionStatusIdleorsessionStatusTerminated
ManagedAgentStep):
Step runtime landscape
With 0.7.0, Agent Workflow supports five step runtimes:| Step | Runtime | Use case |
|---|---|---|
Steps.of(fn) | Local JVM | Deterministic logic, API calls |
ChatClientStep | Spring AI | Single LLM call, structured output |
ClaudeStep | Claude CLI | Quick scripts (no trace capture) |
AgentClientStep | agent-client | Full agent loop with trace capture |
A2AStep | A2A protocol | Remote agent delegation |
ManagedAgentStep | Anthropic cloud | Hosted agent with sandbox |