Update architectural evolution

This commit is contained in:
Ollie Agent 2026-08-16 20:10:19 +02:00
parent 2e3680e33a
commit a0c161ba9b
1 changed files with 22 additions and 0 deletions

View File

@ -43,6 +43,28 @@ The result is a single Go module with direct boundaries:
└→ toolsrv → sandbox/bypass
```
## 8. Toolsrv became an explicit service boundary
Tool execution was separated from `olliesrv` into `toolsrv`, a dedicated 9P service. The agent-side `ToolsrvConn` authenticates over 9P, scopes tool state per agent, and invokes local or background processes through the toolsrv namespace. The registry, metadata discovery, command resolution, sandbox, bypass approval, process lifecycle, and cancellation now belong to toolsrv rather than the agent core.
This boundary also supports remote execution. A remote session transfers the configured runtime data, starts toolsrv on the target host, and reaches it through an SSH-forwarded Unix socket. The agent loop, prompts, history, and model calls remain local.
## 9. The filesystem implementation was extracted into virtfs
The Ollie namespace and toolsrv namespace are now built with the shared `virtfs` Go library. `FsNodeDecl` constructors, closure-based handlers, dynamic `Each` bindings, aliases, and `BuildTree` keep namespace declaration separate from 9P transport. The filesystem remains the public interface, while virtfs supplies the reusable in-memory tree implementation.
## 10. Prompt assembly was simplified
Prompt construction was reduced to a named preamble assembled when an agent runtime is built. The runtime combines system, environment, agent, and tools sections, while `userPrompts` are prepended per turn. Tool metadata supplies both the model schema and the rendered tool documentation, removing duplicate tool-description paths and obsolete prompt-layer indirection.
## 11. Configuration moved into backend profiles
Backend selection, credentials, endpoints, models, and compaction models are now configured in `backends.conf`. The legacy backend and provider environment variables were removed. Environment variables remain for runtime concerns such as XDG paths, logging, process identity, and session context, but they are no longer the backend configuration interface.
## 12. Architecture became an integration map
The documentation was reorganized around explicit boundaries: 9P, the agent core, prompting, tool authoring, toolsrv, remote execution, and virtfs. Common framework features such as MCP clients, embedded tool frameworks, workflow engines, task graphs, frontend control planes, and competing memory stores are intentionally not built into Ollie. They integrate through tools, sessions, 9P files, and ordinary processes. OptMem and task systems such as Beads are examples of this composition model.
## Current lesson
Ollie keeps one small runtime and makes capabilities composable through files and external executables. The architecture has changed repeatedly, but the durable principles are now clear: 9P is the integration contract, tools are replaceable processes, state is observable through files, and orchestration should be built from the same primitives as a single agent.