Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

iii Capability Bus

Thilke runs iii as the live capability bus for agent-adjacent services. It provides a discoverable worker/function/trigger surface for agents, dashboards, and bridge services while preserving durable sources of truth elsewhere.

Source of truth boundaries

  • thilke-agentd is the durable ADK-Rust run authority.
  • Gitea is authoritative for issues, branches, pull requests, and review status.
  • Jujutsu/Git manifests are authoritative for recoverable code changes.
  • Pathway/SQLite graph memory is authoritative for graph and memory state.
  • Multica is a display and ingress adapter, not the source of truth.
  • iii composes capabilities through named functions and traceable invocations.

Deployed services

ServiceEndpointPurpose
thilke-iii.service127.0.0.1:3111, 127.0.0.1:49134iii engine, HTTP surface, worker websocket
thilke-iii-worker.servicews://127.0.0.1:49134Registers Thilke functions
thilke-multica-bridge.service127.0.0.1:8093Routes eligible Multica events through iii

The engine is installed from thilke/agent and configured at /etc/thilke-agentd/iii-config.yaml.

Durability posture

The engine no longer runs with --use-default-config. It uses source-controlled config with file-backed adapters mounted at /var/lib/thilke-agent/iii.

Current adapters:

  • iii-state: kv, file_based, /data/state_store
  • iii-stream: kv, file_based, /data/stream_store
  • iii-queue: builtin, file_based, /data/queue_store
  • iii-cron: kv, file_based, /data/cron_store
  • iii-observability: memory exporter for local traces, metrics, and logs

Anonymous iii telemetry is disabled with III_TELEMETRY_ENABLED=false. The engine runs with III_ENV=production.

If iii becomes multi-host, replace file-backed adapters with Redis/RabbitMQ per upstream iii guidance.

Registered Thilke functions

  • thilke.agent.health: checks thilke-agentd health.
  • thilke.graph.search: calls Pathway GraphRAG search.
  • thilke.multica.agent_map: exposes Multica-to-Thilke agent role mapping.
  • thilke.agent.plan_issue: runs thilke-agentd plan-issue into durable run mirrors.

Multica event path

sequenceDiagram
    participant M as Multica UI/API
    participant B as thilke-multica-bridge
    participant I as iii engine
    participant W as thilke-iii-worker
    participant A as thilke-agentd
    participant G as Gitea

    M->>B: issue status/update event
    B->>B: resolve role and Gitea target
    B->>I: trigger thilke.agent.plan_issue
    I->>W: invoke function
    W->>A: thilke-agentd plan-issue
    A->>G: read issue context
    A->>A: write durable run mirror and proposed actions
    W-->>I: run result
    I-->>B: processed via iii

The path remains approval-gated. plan-issue creates context and proposed actions but performs no repository writes. Writes require explicit action approval and execute-approved.

Smoke validation

From /home/thilke/src/agent on the host:

scripts/smoke/iii-multica-process-next.sh

Expected output:

bridge_iii_enabled ws://127.0.0.1:49134
III_MULTICA_PROCESS_NEXT_OK <run-id>

Operations

Check services:

systemctl is-active thilke-iii thilke-iii-worker thilke-multica-bridge thilke-agentd

Inspect logs:

docker logs --tail 120 thilke-iii
journalctl -u thilke-iii-worker -n 120 --no-pager

Reinstall from source:

cd /home/thilke/src/agent
scripts/install-iii-services.sh