docs: update architecture for current 9P/D-Bus topology

- Remove references to non-existent 9P paths (t/idx, sk/idx, m/, etc)
- Update system overview diagram to show KDE/Web frontends over D-Bus
- Show embedded D-Bus adapter in olliesrv and ollied alternative
- Update tool/skill discovery references to use env vars
- Update agent config example to current format
This commit is contained in:
Ollie Agent 2026-07-19 17:38:19 +02:00
parent 37bd0f9899
commit ecbc93f3b4
5 changed files with 38 additions and 40 deletions

View File

@ -34,25 +34,31 @@ ollie/
## System Overview
```
┌─────────────────────────────────────────────────────────────────┐
│ Frontends │
│ s/sh (terminal) │ acme │ ellie (Emacs) │ Web UI (Preact)│
└────────┬──────────┴────┬───┴────────┬─────────┴───────┬─────────┘
│ 9P direct │ 9P direct │ 9P direct │ HTTP
│ │ │ ▼
│ │ │ ┌─────────────┐
│ │ │ │ ollie-httpgw│
│ │ │ └──────┬──────┘
▼ ▼ ▼ │ 9P
┌────────────────────────────────────────────────────────▼────────┐
│ olliesrv (9P server) │
│ ┌──────────┐ ┌──────────┐ ┌──────┐ ┌────┐ ┌────┐ ┌────┐ │
│ │ Sessions │ │ Memory │ │Skills│ │Tmp │ │ Tr │ │ ...│ │
│ │ s/ │ │ m/ │ │ sk/ │ │tmp/│ │tr/ │ │ │ │
│ └────┬─────┘ └──────────┘ └──────┘ └────┘ └────┘ └────┘ │
└───────┼─────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────────────┐
│ Frontends │
│ s/sh (terminal) │ acme │ ellie (Emacs) │ KDE GUI/plasmoid │ Web UI │
└───────┬──────────┴───┬──┴───────┬───────┴────────┬─────────┴──────┬──────┘
│ 9P │ 9P │ 9P │ D-Bus │ D-Bus
│ │ │ ▼ ▼
│ │ │ ┌──────────────────────────────────┐
│ │ │ │ org.ollie.SessionManager (D-Bus)│
│ │ │ └──────────────┬───────────────────┘
▼ ▼ ▼ │ embedded adapter
┌───────────────────────────────────────────────────────▼───────────────────┐
│ olliesrv (9P server + D-Bus adapter) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Sessions │ │ backends │ │ models │ │
│ │ s/ │ │ (file) │ │ (file) │ │
│ └────┬─────┘ └──────────┘ └──────────┘ │
└───────┼───────────────────────────────────────────────────────────────────┘
│ per-session
▼
Alternative: ollied (pure D-Bus daemon, no 9P — for dbus-only deployments)
┌───────────────────────────────────────────────────────────────────────────┐
│ ollied (org.ollie.SessionManager) │
│ Pure D-Bus session manager; same interface, no filesystem. │
└───────────────────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────────┐
│ agent.Core (per session) │
│ ┌─────────────┐ ┌──────────────┐ ┌────────────────────────┐ │
@ -208,15 +214,7 @@ Agent configs declare prompts as a JSON array of shell commands. Each command is
| `s/{id}/state` | Current state (idle/thinking/calling) |
| `s/{id}/statewait` | Blocking read until state changes |
| `s/{id}/plan` | Session-scoped markdown checklist |
| `s/{id}/t/` | Tool scripts visible to this session |
| `m/` | Persistent memory files |
| `sk/` | Domain skill files |
| `a/` | Agent definitions (JSON) |
| `p/` | Prompt templates |
| `u/` | Utility scripts |
| `x/` | System plugins and exec helpers |
| `tr/` | Saved transcripts |
| `tmp/` | Temporary storage |
### Per-Agent 9P Principals
@ -381,15 +379,16 @@ Agent configs are JSON files in `~/.config/ollie/agents/`:
```json
{
"prompt": [
"$OLLIE/x/prime SYSTEM_PROMPT",
"$OLLIE/x/prime tools-file",
"$OLLIE/x/prime tools-reasoning"
"$OLLIE_CFG_PATH/scripts/x/prime SYSTEM_PROMPT",
"$OLLIE_CFG_PATH/scripts/x/prime session",
"$OLLIE_CFG_PATH/scripts/x/prime agent-coding",
"$OLLIE_CFG_PATH/scripts/x/prime tools-file",
"$OLLIE_CFG_PATH/scripts/x/prime tools-reasoning"
],
"hooks": {
"agentSpawn": ["$OLLIE/x/elevate start"],
"turnError": ["$OLLIE/x/freeloader"]
"agentSpawn": ["$OLLIE_CFG_PATH/scripts/x/elevate-adapter-start"],
"turnError": ["$OLLIE_CFG_PATH/scripts/x/freeloader $OLLIE_SESSION_ID"]
},
"trustedTools": ["escalate"],
"maxTokens": 8192,
"temperature": 0.7,
"maxSteps": 50

View File

@ -30,11 +30,10 @@ Global namespaces are shared across all sessions:
| Path | Purpose |
|------|---------|
| `/s/{id}/t/{name}` | Tool scripts (read/write) |
| `/s/{id}/t/idx` | Synthesized tool index (descriptions + args) |
| `/a/{name}.json` | Agent configs (supports `mv`, `cp`, `rm`) |
| `/sk/{name}` | Skill files |
| `/p/{name}` | Prompt templates |
| `/s/idx` | Session index (id, state, cwd, backend, model) |
| `/s/{id}/prompt` | Submit a prompt to a peer session |
| `/s/{id}/plan` | Shared session-scoped checklist |
| `/s/{id}/chat` | Full chat history (searchable) |
## Spawning Agents

View File

@ -20,7 +20,7 @@ The `x/elevate` plugin is a concrete example: it replaced an MCP server that ran
| MCP feature | ollie equivalent |
|---|---|
| `tools/list` (structured discovery) | `s/{id}/t/idx` (plain text index) + skills |
| `tools/list` (structured discovery) | `ls $OLLIE_TOOLS_PATH/` + `grep` for descriptions |
| `tools/call` (invoke a tool) | `execute_code {tool: "name"}` |
| JSON-RPC framing | stdin/stdout/exit code |
| Subprocess lifecycle management | The sandbox manages process lifecycle |

View File

@ -12,7 +12,7 @@
**Radical transparency** — The rendered system prompt for any session is readable at `s/{id}/systemprompt` — the prompt the agent is actually running with, not a reconstruction. The prompt parts that compose it live in `p/`; the agent can read its own instructions but cannot modify them.
**Discoverability** — `ls s/{id}/` shows every control surface. `cat s/{id}/t/idx` and `cat sk/idx` list available tools and skills. `cat help` explains the rest.
**Discoverability** — `ls s/{id}/` shows every control surface. Tools live at `$OLLIE_TOOLS_PATH`, skills at `$OLLIE_SKILLS_PATH`. `cat help` explains the rest.
**Composability** — `execute_code` stages chain the same way Unix pipes chain programs. Sessions chain by reading `s/{id}/chat` and writing to another session's `prompt` or `fifo.in`.

View File

@ -456,7 +456,7 @@ filesystem layout, an agent can decompose the work, create the named sessions, w
the coordination script to a temp file, and execute it — all in a single turn.
The architecture documents (`ARCHITECTURE.md`, `USAGE.md`) and tool descriptions
(available via `s/{id}/t/idx`) are the agent's reference. No additional scaffolding is needed.
(available via `$OLLIE_TOOLS_PATH`) are the agent's reference. No additional scaffolding is needed.
## Store federation