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:
parent
37bd0f9899
commit
ecbc93f3b4
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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 |
|
||||
|
|
|
|||
|
|
@ -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`.
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue