SDK Overview
The Waxell SDK provides intent-only definitions for building AI agents. It defines what your agent does, not how it executes.
Core Principle
The SDK deliberately separates intent from execution:
# SDK: Defines WHAT the agent does (intent)
from waxell_sdk import agent, workflow, decision
@agent(name="my-agent")
class MyAgent:
@workflow
def process(self, ctx):
result = ctx.call(self.decide)
return result
# Runtime: Handles HOW it executes
from waxell_runtime import RuntimeConfig
config = RuntimeConfig.get()
Key Abstractions
| Concept | Decorator | Purpose |
|---|---|---|
| Agent | @agent | Top-level container for capabilities |
| Workflow | @workflow | Multi-step execution flow |
| Decision | @decision | LLM-powered decision point |
| Tool | @tool | External system integration |
| Capability | @capability | Reusable behavior bundle |
Dependency Rules
The SDK has strict import boundaries:
- MUST NOT import runtime, controlplane, Django, or perform I/O
- MAY depend on: stdlib, typing, pydantic, attrs, dataclasses
This ensures your agent definitions remain pure and testable.
Next Steps
- @agent Decorator - Define agent containers
- @workflow Decorator - Build multi-step flows
- @decision Decorator - Add LLM decision points