# trust-arbor/arbor architecture

> Architecture diagram of the GitHub repository trust-arbor/arbor, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/trust-arbor/arbor
- Repository: https://github.com/trust-arbor/arbor

## Overview

Arbor is an Elixir/OTP platform for persistent, increasingly autonomous AI agents. A user’s chat enters the agent runtime, which maintains session context, invokes an LLM, and dispatches capability-scoped actions; memory and identity support continuity, while trust and security govern action authority. Separate product branches provide pipeline execution, consensus review, and monitoring/self-repair. The README documents these capabilities, but sampled source is partial, so some internal wiring is intentionally not shown.

Main entry points: [`apps/arbor_agent/lib/arbor/agent/executor.ex`](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_agent/lib/arbor/agent/executor.ex) (Action execution), [`apps/arbor_agent/lib/arbor/agent.ex`](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_agent/lib/arbor/agent.ex) (Agent runtime), [`apps/arbor_orchestrator/lib/arbor/orchestrator/handlers/llm_handler.ex`](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_orchestrator/lib/arbor/orchestrator/handlers/llm_handler.ex) (LLM handler), [`apps/arbor_ai/lib/arbor/ai/runtime/provider_router.ex`](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_ai/lib/arbor/ai/runtime/provider_router.ex) (Provider routing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_agent["Agent runtime"]
  node_agent_runtime["Agent runtime<br/>[agent.ex]"]
  node_session["Session manager<br/>[session_manager.ex]"]
  node_execution["Action execution<br/>[executor.ex]"]
  node_orchestration["Task orchestration<br/>[orchestration.ex]"]
end

subgraph group_intelligence["AI and memory"]
  node_llm_handler["LLM handler<br/>[llm_handler.ex]"]
  node_ai_runtime["AI runtime<br/>[runtime.ex]"]
  node_provider_router["Provider routing<br/>[provider_router.ex]"]
  node_memory["Agent memory"]
  node_historian["History queries<br/>[query_engine.ex]"]
end

subgraph group_authority["Trust and security"]
  node_actions["Action catalog<br/>[arbor_actions.ex]"]
  node_trust["Trust policies<br/>[trust.ex]"]
  node_security["Security controls<br/>[security.ex]"]
end

subgraph group_workflows["Workflows and governance"]
  node_pipeline_action["Pipeline actions<br/>[pipeline.ex]"]
  node_pipeline_engine["Pipeline engine<br/>[engine.ex]"]
  node_scheduler["Pipeline scheduler<br/>[pipeline_runner.ex]"]
  node_council["Consensus council<br/>[council.ex]"]
end

subgraph group_operations["Operations"]
  node_monitor["Agent monitoring<br/>[monitor.ex]"]
  node_remediation["Self-remediation<br/>[remediation.ex]"]
end

node_user(("User"))
node_provider(("LLM provider"))
node_event_store[("Authoritative event log")]

node_user -->|"sends request"| node_agent_runtime
node_agent_runtime -->|"manages session"| node_session
node_agent_runtime -->|"coordinates tasks"| node_orchestration
node_orchestration -->|"runs LLM step"| node_llm_handler
node_llm_handler -->|"requests completion"| node_ai_runtime
node_ai_runtime -->|"routes request"| node_provider_router
node_provider_router -->|"calls provider"| node_provider
node_provider -->|"returns response"| node_provider_router
node_session -->|"maintains context"| node_memory
node_historian -->|"reads history"| node_event_store
node_execution -->|"dispatches action"| node_actions
node_execution -->|"checks authority"| node_trust
node_execution -->|"enforces controls"| node_security
node_pipeline_action -->|"runs pipeline"| node_pipeline_engine
node_scheduler -->|"executes attested graph"| node_pipeline_engine
node_council -.->|"requests perspectives"| node_llm_handler
node_monitor -.->|"proposes fixes"| node_remediation

click node_agent_runtime "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_agent/lib/arbor/agent.ex"
click node_session "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_agent/lib/arbor/agent/session_manager.ex"
click node_execution "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_agent/lib/arbor/agent/executor.ex"
click node_orchestration "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_agent/lib/arbor/agent/orchestration.ex"
click node_llm_handler "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_orchestrator/lib/arbor/orchestrator/handlers/llm_handler.ex"
click node_ai_runtime "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_ai/lib/arbor/ai/runtime.ex"
click node_provider_router "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_ai/lib/arbor/ai/runtime/provider_router.ex"
click node_historian "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_historian/lib/arbor/historian/query_engine.ex"
click node_actions "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_actions/lib/arbor_actions.ex"
click node_trust "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_actions/lib/arbor/actions/trust.ex"
click node_security "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_actions/lib/arbor/actions/security.ex"
click node_pipeline_action "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_actions/lib/arbor/actions/pipeline.ex"
click node_pipeline_engine "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_orchestrator/lib/arbor/orchestrator/engine.ex"
click node_scheduler "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_scheduler/lib/arbor/scheduler/workers/pipeline_runner.ex"
click node_council "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_actions/lib/arbor/actions/council.ex"
click node_monitor "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_actions/lib/arbor/actions/monitor.ex"
click node_remediation "https://github.com/trust-arbor/arbor/blob/main/apps/arbor_actions/lib/arbor/actions/remediation.ex"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_agent_runtime,node_session,node_execution,node_orchestration,node_user toneBlue
class node_llm_handler,node_ai_runtime,node_provider_router,node_memory,node_historian,node_event_store toneAmber
class node_actions,node_trust,node_security toneMint
class node_pipeline_action,node_pipeline_engine,node_scheduler,node_council toneRose
class node_monitor,node_remediation,node_provider toneIndigo
```

## Components

### Agent runtime

- [Agent runtime](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_agent/lib/arbor/agent.ex): `apps/arbor_agent/lib/arbor/agent.ex`
- [Session manager](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_agent/lib/arbor/agent/session_manager.ex): `apps/arbor_agent/lib/arbor/agent/session_manager.ex`
- [Action execution](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_agent/lib/arbor/agent/executor.ex): `apps/arbor_agent/lib/arbor/agent/executor.ex`
- [Task orchestration](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_agent/lib/arbor/agent/orchestration.ex): `apps/arbor_agent/lib/arbor/agent/orchestration.ex`

### AI and memory

- [LLM handler](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_orchestrator/lib/arbor/orchestrator/handlers/llm_handler.ex): `apps/arbor_orchestrator/lib/arbor/orchestrator/handlers/llm_handler.ex`
- [AI runtime](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_ai/lib/arbor/ai/runtime.ex): `apps/arbor_ai/lib/arbor/ai/runtime.ex`
- [Provider routing](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_ai/lib/arbor/ai/runtime/provider_router.ex): `apps/arbor_ai/lib/arbor/ai/runtime/provider_router.ex`
- **Agent memory**
- [History queries](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_historian/lib/arbor/historian/query_engine.ex): `apps/arbor_historian/lib/arbor/historian/query_engine.ex`

### Trust and security

- [Action catalog](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_actions/lib/arbor_actions.ex): `apps/arbor_actions/lib/arbor_actions.ex`
- [Trust policies](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_actions/lib/arbor/actions/trust.ex): `apps/arbor_actions/lib/arbor/actions/trust.ex`
- [Security controls](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_actions/lib/arbor/actions/security.ex): `apps/arbor_actions/lib/arbor/actions/security.ex`

### Workflows and governance

- [Pipeline actions](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_actions/lib/arbor/actions/pipeline.ex): `apps/arbor_actions/lib/arbor/actions/pipeline.ex`
- [Pipeline engine](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_orchestrator/lib/arbor/orchestrator/engine.ex): `apps/arbor_orchestrator/lib/arbor/orchestrator/engine.ex`
- [Pipeline scheduler](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_scheduler/lib/arbor/scheduler/workers/pipeline_runner.ex): `apps/arbor_scheduler/lib/arbor/scheduler/workers/pipeline_runner.ex`
- [Consensus council](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_actions/lib/arbor/actions/council.ex): `apps/arbor_actions/lib/arbor/actions/council.ex`

### Operations

- [Agent monitoring](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_actions/lib/arbor/actions/monitor.ex): `apps/arbor_actions/lib/arbor/actions/monitor.ex`
- [Self-remediation](https://github.com/trust-arbor/arbor/blob/main/apps/arbor_actions/lib/arbor/actions/remediation.ex): `apps/arbor_actions/lib/arbor/actions/remediation.ex`

### Other components

- **User**
- **LLM provider**
- **Authoritative event log**

## Connections

- User → Agent runtime: sends request
- Agent runtime → Session manager: manages session
- Agent runtime → Task orchestration: coordinates tasks
- Task orchestration → LLM handler: runs LLM step
- LLM handler → AI runtime: requests completion
- AI runtime → Provider routing: routes request
- Provider routing → LLM provider: calls provider
- LLM provider → Provider routing: returns response
- Session manager → Agent memory: maintains context
- History queries → Authoritative event log: reads history
- Action execution → Action catalog: dispatches action
- Action execution → Trust policies: checks authority
- Action execution → Security controls: enforces controls
- Pipeline actions → Pipeline engine: runs pipeline
- Pipeline scheduler → Pipeline engine: executes attested graph
- Consensus council → LLM handler: requests perspectives
- Agent monitoring → Self-remediation: proposes fixes
