How shareai-lab/kode-agent-sdk works
KODE SDK is a resumable, event-driven AI-agent framework. A caller sends work to an Agent, which interacts with a model provider, dispatches tools under permission controls, and emits events; context and checkpoint data can be persisted for recovery. AgentPool, Room, and Scheduler support multi-agent coordination. The README documents provider, persistence, sandbox, MCP, and Skills capabilities; some links to those subsystems are documented rather than verified in sampled implementation. The supplied excerpts are partial, so uncertain internal wiring is omitted.
Main entry points: agent.ts Agent · provider.ts Model provider API · store.ts Store interface · tool-runner.ts Tool runner
Components 26
Agent runtime
- Agent
src/core/agent.ts - Permission manager
src/core/agent/permission-manager.ts - Event bus
src/core/events.ts
Tool execution
- Tool runner
src/core/agent/tool-runner.ts - Tool registry
src/tools/registry.ts - Built-in tools
src/tools/builtin.ts - MCP tools
src/tools/mcp.ts - Sandbox interface
src/infra/sandbox.ts - E2B sandbox
src/infra/e2b/e2b-sandbox.ts - OpenSandbox
src/infra/opensandbox/opensandbox-sandbox.ts
Model providers
- Model provider API
src/infra/provider.ts - Anthropic provider
src/infra/providers/anthropic.ts - OpenAI provider
src/infra/providers/openai.ts - Gemini provider
src/infra/providers/gemini.ts
Persistence and context
- Context manager
src/core/context-manager.ts - Store interface
src/infra/store.ts - JSON store
src/infra/store/json-store.ts - SQLite store
src/infra/db/sqlite/sqlite-store.ts - PostgreSQL store
src/infra/db/postgres/postgres-store.ts
Collaboration and extensions
- Agent pool
src/core/pool.ts - Agent room
src/core/room.ts - Scheduler
src/core/scheduler.ts - Skills system
src/core/skills/index.ts
Other components
- Application caller
- Model service
- Remote sandbox service
Connections 27
- Application caller → Agent: sends work
- Agent → Model provider API: requests completion
- Model provider API → Anthropic provider: selects provider
- Model provider API → OpenAI provider: selects provider
- Model provider API → Gemini provider: selects provider
- Anthropic provider → Model service: calls model
- OpenAI provider → Model service: calls model
- Gemini provider → Model service: calls model
- Agent → Permission manager: checks access
- Agent → Tool runner: dispatches tools
- Tool runner → Tool registry: resolves tools
- Tool registry → Built-in tools: provides tools
- Tool registry → MCP tools: provides integrations
- Tool runner → Sandbox interface: executes in
- Sandbox interface → E2B sandbox: selects backend
- Sandbox interface → OpenSandbox: selects backend
- E2B sandbox → Remote sandbox service: runs remotely
- OpenSandbox → Remote sandbox service: runs remotely
- Agent → Event bus: publishes events
- Agent → Context manager: manages context
- Context manager → Store interface: saves history
- Store interface → JSON store: uses backend
- Store interface → SQLite store: uses backend
- Store interface → PostgreSQL store: uses backend
- Agent pool → Agent: manages agents
- Agent room → Agent: coordinates agents
- Scheduler → Agent: schedules work