Roadmap¶
glia follows one principle when adding features: a new primitive must not add hidden control flow. If a feature can't be made inspectable, it doesn't ship.
v0.1 — thesis proven (this release)¶
- Transparent agent loop (
run/run_events) with a full event stream - Tools from typed functions (
@tool) +ToolRegistry - Provider boundary +
ClaudeLLM(Anthropic) andEchoLLM(offline) - Serialisable
Trajectory; checkpoint/resume (durable execution) - Context engineering:
SummarizingCompactor,TrimmingCompactor - Guardrails (input/output validators)
- Structured outputs (provider-agnostic, via forced tool call)
- Subagents (any agent → a tool)
- Evals-as-tests harness
- Zero-dependency core,
py.typed, green CI, runnable offline examples
v0.8 — a real GUI — shipped¶
- [x] Redesigned desktop shell: conversation sidebar with persistent history
- [x] Markdown + code rendering, theme toggle, glass-box drawer, prompt chips
v0.7 — observability & polish — shipped¶
- [x] OpenTelemetry span exporter driven off the event stream
- [x] Redesigned desktop shell UI + an animated README hero
- [ ] A local trace viewer for saved trajectories
v0.6 — record & replay — shipped¶
- [x] Record/replay cassettes (
RecordingLLM/ReplayLLM/use_cassette)
v0.5 — reach & rigor — shipped¶
- [x]
OpenAILLMprovider (OpenAI-compatible; streaming + tools) - [x] Interactive approval UI in the desktop shell (approve/deny from the window)
- [x] MCP tool bridge (
glia.integrations.mcp,[mcp]extra) - [x] mypy as a CI gate; coverage restored to ~95%; README hero image
v0.4 — local models — shipped¶
- [x]
OllamaLLMprovider (stdlib HTTP, streaming + tools) for local open models - [x] Ollama mode in the desktop shell (Qwen, DeepSeek, Llama, …)
- [x] A second hosted provider (OpenAI) — shipped in v0.5
v0.3 — the desktop shell — shipped¶
- [x]
glia-shellgraphical chat app with a live glass-box event panel - [x] Pure-stdlib local server; native window via pywebview + browser fallback
- [x] Offline demo mode + optional Anthropic key; downloadable per-OS binaries
- [ ] Interactive approval UI in the shell (approve/deny tools from the window)
v0.2 — ergonomics & throughput — shipped¶
- [x] Streaming token output through the event stream (
ModelDeltaevents) - [x] Parallel tool execution (
asyncio.gather) with preserved event ordering - [x] Human-in-the-loop tool approval as a first-class, inspectable gate (pulled forward from v0.4)
- [ ] Retry/backoff policy as an explicit, inspectable wrapper (not hidden magic)
- [ ]
RunResultniceties: per-tool timings, cost summary helpers
v0.3 — interop¶
- [ ] MCP tool bridge: expose MCP servers as glia tools, and glia tools as MCP
- [ ] OpenTelemetry span exporter driven off the event stream
- [ ] Prompt-caching hints on the Claude adapter (stable-prefix breakpoints)
v0.4 — reliability¶
- [ ] Pluggable persistence backends for checkpoints (file, sqlite, redis)
- [ ] Deterministic replay: re-run a saved trajectory against a recorded provider
- [x] Human-in-the-loop tool approval as a first-class, inspectable gate (shipped in v0.2)
Later¶
- [ ] TypeScript port once the Python core stabilises (same glass-box contract)
- [ ] A tiny local trace viewer that renders a
Trajectoryas a timeline
Non-goals (on purpose)¶
- A graph/DSL orchestration engine — use LangGraph.
- A hosted runtime/sandbox — use the Claude Agent SDK / Managed Agents.
- A role-play "crew" abstraction — use CrewAI.
- Anything that requires the core to grow a heavy dependency.