Soma agent design

Soma runs coding agents locally. A Rust engine owns conversations, model requests, tools, and collaboration; a browser workspace presents their progress.

Follow a task

User task → Project main → Direct answer
                 │  ↑
   create_thread │  │ worker report
                 ↓  │
                Worker → Model ↔ Local tools

Main coordinates work and delegates substantial tasks to independent workers. Workers can delegate subtasks to child agents. Conversations have separate histories while agents in the same project share files.

Read the design

QuestionGuide
Who owns execution and state?Architecture
How does a task become an answer?Execution loop
What does the model see?Model context
How do tools become local actions?Tools and permissions
How do agents cooperate?Multi-agent collaboration
How are models selected?Model providers

Projects, conversations, and delivery state live in memory. Provider definitions are saved on the server. The guide describes the current implementation; architecture decisions record its rationale and history.