Architecture
rho is organized as a layered workspace where dependencies flow downward only.
┌─────────────────────────────────────────────────┐
│ rho (binary) │ ← Headless JSON-RPC 2.0 agent
├─────────────────────────────────────────────────┤
│ rho-ext rho-tools │ ← Extensions / Built-in tools
├─────────────────────────────────────────────────┤
│ rho-memory rho-highlight │ ← Siblings of rho-tools
├─────────────────────────────────────────────────┤
│ rho-core │ ← Agent kernel (loop, types, traits, data model)
├─────────────────────────────────────────────────┤
│ rho-ai │ ← Unified LLM provider abstraction
└─────────────────────────────────────────────────┘
rho-ai is the lowest layer; it depends only on external libraries. rho-core depends on rho-ai for the LlmService trait. Every other crate eventually depends on rho-core.
rho-ext, rho-tools, rho-memory, and rho-highlight are all siblings sitting directly on rho-core. rho-tools additionally depends on rho-memory and rho-highlight; the others each depend only on rho-core.
See also: