Quick Start
How It Works
| Component | Responsibility | Location |
|---|---|---|
| Agent | Model, system prompt, tool definitions | Remote provider |
| Environment | Runtime container, packages, networking | Remote provider |
| Session | Running instance of agent-in-environment | Remote provider |
| Runtime | Protocol implementation, API client | Local (your code) |
Protocol Methods
Agent Management
| Method | Purpose | Returns |
|---|---|---|
create_agent(config) | Deploy agent definition | agent_id: str |
retrieve_agent(agent_id) | Get agent metadata | Dict[str, Any] |
list_agents(**filters) | List all agents | List[Dict[str, Any]] |
archive_agent(agent_id) | Mark agent inactive | None |
Environment Management
| Method | Purpose | Returns |
|---|---|---|
create_environment(config) | Provision sandbox | environment_id: str |
retrieve_environment(env_id) | Get environment metadata | Dict[str, Any] |
list_environments(**filters) | List all environments | List[Dict[str, Any]] |
archive_environment(env_id) | Mark environment inactive | None |
delete_environment(env_id) | Destroy environment | None |
Session Management
| Method | Purpose | Returns |
|---|---|---|
create_session(agent_id, env_id) | Start agent session | session_id: str |
retrieve_session(session_id) | Get session status | Dict[str, Any] |
list_sessions(**filters) | List all sessions | List[Dict[str, Any]] |
archive_session(session_id) | Mark session inactive | None |
delete_session(session_id) | Delete session data | None |
Event Handling
| Method | Purpose | Returns |
|---|---|---|
send_event(session_id, event) | Send message to session | None |
stream_events(session_id) | Stream responses | AsyncIterator[Dict[str, Any]] |
interrupt(session_id) | Stop current processing | None |
Common Patterns
Multi-Turn Conversation
Agent Version Pinning
Session Cleanup
Best Practices
Resource Management
Resource Management
Create agents and environments once, reuse across sessions:
Error Handling
Error Handling
Handle network failures and provider errors gracefully:
Event Processing
Event Processing
Handle different event types appropriately:
Performance Optimization
Performance Optimization
- Reuse agent/environment definitions across sessions
- Use appropriate session cleanup (archive vs delete)
- Pin agent versions for consistent behavior
- Filter list operations to reduce API calls
Related
Sandboxed Agent
Local agent loop with optional tool sandboxing
Managed Agent Lifecycle
Complete CRUD operations for agents, environments, sessions

