The Problem
Simple agents can do one thing at a time. But real tasks are complex:- “Search the web, summarize results, and tweet the highlights”
- “Check my calendar, find a free slot, and schedule a meeting”
- “Analyze this data, generate a chart, and email it to the team”
How It Works
When the LLM returns multiple actions, ElizaOS creates an ActionPlan:Accessing Previous Results
In your action handler, access results from previous steps:Accessing Plan State
The current action plan is available instate.data.actionPlan:
Error Handling in Plans
When a step fails, the plan continues by default. Handle failures gracefully:Retrieving Results After Execution
After message processing, retrieve action results programmatically:Designing Actions for Chaining
When building actions that work well in chains:Return structured data
Include a
data field in results for downstream actions to consume programmatically.Be idempotent
Actions may be retried. Avoid side effects that can’t be repeated safely.
Check prerequisites
Verify required previous results exist before proceeding.
Fail gracefully
Return
success: false with a clear error message rather than throwing.Example: Data Pipeline
ActionResult Type
Next Steps
Actions Reference
Complete action handler API
State Management
How state flows through the runtime
Background Tasks
Long-running actions with task workers
Streaming
Stream action outputs in real-time

