# vectorize-io/self-driving-agents architecture

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

- Interactive diagram: https://gitdiagram.com/vectorize-io/self-driving-agents
- Repository: https://github.com/vectorize-io/self-driving-agents

## Overview

Self-Driving Agents packages reusable agent templates and a CLI that installs them into supported chat runtimes, with Hindsight providing portable memory. The main user journey is to choose a built-in or local/GitHub agent, select a harness, install its template and runtime configuration, then use the agent in conversation. The repository also includes a website for browsing templates and comparing harnesses, plus a Hermes tool plugin. Edges are limited to relationships shown in excerpts or documented in the README; unsampled harness setup details are not expanded.

Main entry points: [`src/cli.ts`](https://github.com/vectorize-io/self-driving-agents/blob/main/src/cli.ts) (Install CLI), [`website/src/lib/harnesses.ts`](https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/lib/harnesses.ts) (Harness runtimes), [`website/src/lib/agents.ts`](https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/lib/agents.ts) (Agent catalog data), [`website/src/app/page.tsx`](https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/app/page.tsx) (Website pages)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_install["Installation"]
  node_cli["Install CLI<br/>[cli.ts]"]
end

subgraph group_agents["Agent Catalog"]
  node_agent_sources["Agent sources"]
  node_departments["Department templates"]
  node_bank_templates["Bank templates<br/>[bank-template.json]"]
  node_skill["Agent skill<br/>[SKILL.md]"]
end

subgraph group_runtime["Runtime Memory"]
  node_harnesses["Harness runtimes<br/>[harnesses.ts]"]
  node_hindsight[("Hindsight memory")]
  node_hermes_plugin["Hermes tools<br/>[__init__.py]"]
end

subgraph group_site["Catalog Website"]
  node_website["Website pages<br/>[page.tsx]"]
  node_agent_index["Agent browsing<br/>[page.tsx]"]
  node_agent_details["Agent details<br/>[page.tsx]"]
  node_agent_data["Agent catalog data<br/>[agents.ts]"]
  node_harness_pages["Harness guides<br/>[page.tsx]"]
  node_harness_details["Harness details<br/>[page.tsx]"]
  node_concept["Memory concept<br/>[page.tsx]"]
  node_create["Agent creation guide<br/>[page.tsx]"]
end

node_user(("Agent user"))

node_user -->|"runs install"| node_cli
node_cli -->|"resolves source"| node_agent_sources
node_agent_sources -->|"includes templates"| node_departments
node_departments -.->|"defines bank"| node_bank_templates
node_cli -->|"configures harness"| node_harnesses
node_cli -->|"imports bank"| node_hindsight
node_cli -.->|"installs skill"| node_skill
node_hermes_plugin -.->|"calls API"| node_hindsight
node_website -->|"loads agents"| node_agent_data
node_agent_index -->|"loads and flattens"| node_agent_data
node_agent_details -->|"finds agent"| node_agent_data
node_website -->|"lists harnesses"| node_harnesses
node_harness_pages -->|"lists harnesses"| node_harnesses
node_harness_details -->|"loads details"| node_harnesses

click node_cli "https://github.com/vectorize-io/self-driving-agents/blob/main/src/cli.ts"
click node_departments "https://github.com/vectorize-io/self-driving-agents/tree/main/engineering"
click node_bank_templates "https://github.com/vectorize-io/self-driving-agents/blob/main/engineering/bank-template.json"
click node_skill "https://github.com/vectorize-io/self-driving-agents/blob/main/src/skill/SKILL.md"
click node_harnesses "https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/lib/harnesses.ts"
click node_hermes_plugin "https://github.com/vectorize-io/self-driving-agents/blob/main/hermes-plugin/__init__.py"
click node_website "https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/app/page.tsx"
click node_agent_index "https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/app/agents/page.tsx"
click node_agent_details "https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/app/agents/%5B...slug%5D/page.tsx"
click node_agent_data "https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/lib/agents.ts"
click node_harness_pages "https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/app/harnesses/page.tsx"
click node_harness_details "https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/app/harnesses/%5Bslug%5D/page.tsx"
click node_concept "https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/app/concept/page.tsx"
click node_create "https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/app/create/page.tsx"

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_cli,node_user toneBlue
class node_agent_sources,node_departments,node_bank_templates,node_skill toneAmber
class node_harnesses,node_hindsight,node_hermes_plugin toneMint
class node_website,node_agent_index,node_agent_details,node_agent_data,node_harness_pages,node_harness_details,node_concept,node_create toneRose
```

## Components

### Installation

- [Install CLI](https://github.com/vectorize-io/self-driving-agents/blob/main/src/cli.ts): `src/cli.ts`

### Agent Catalog

- **Agent sources**
- [Department templates](https://github.com/vectorize-io/self-driving-agents/tree/main/engineering): `engineering`
- [Bank templates](https://github.com/vectorize-io/self-driving-agents/blob/main/engineering/bank-template.json): `engineering/bank-template.json`
- [Agent skill](https://github.com/vectorize-io/self-driving-agents/blob/main/src/skill/SKILL.md): `src/skill/SKILL.md`

### Runtime Memory

- [Harness runtimes](https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/lib/harnesses.ts): `website/src/lib/harnesses.ts`
- **Hindsight memory**
- [Hermes tools](https://github.com/vectorize-io/self-driving-agents/blob/main/hermes-plugin/__init__.py): `hermes-plugin/__init__.py`

### Catalog Website

- [Website pages](https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/app/page.tsx): `website/src/app/page.tsx`
- [Agent browsing](https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/app/agents/page.tsx): `website/src/app/agents/page.tsx`
- [Agent details](https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/app/agents/%5B...slug%5D/page.tsx): `website/src/app/agents/[...slug]/page.tsx`
- [Agent catalog data](https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/lib/agents.ts): `website/src/lib/agents.ts`
- [Harness guides](https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/app/harnesses/page.tsx): `website/src/app/harnesses/page.tsx`
- [Harness details](https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/app/harnesses/%5Bslug%5D/page.tsx): `website/src/app/harnesses/[slug]/page.tsx`
- [Memory concept](https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/app/concept/page.tsx): `website/src/app/concept/page.tsx`
- [Agent creation guide](https://github.com/vectorize-io/self-driving-agents/blob/main/website/src/app/create/page.tsx): `website/src/app/create/page.tsx`

### Other components

- **Agent user**

## Connections

- Agent user → Install CLI: runs install (evidence: `README.md`)
- Install CLI → Agent sources: resolves source (evidence: `README.md`)
- Agent sources → Department templates: includes templates (evidence: `README.md`)
- Department templates → Bank templates: defines bank
- Install CLI → Harness runtimes: configures harness (evidence: `README.md`)
- Install CLI → Hindsight memory: imports bank (evidence: `src/cli.ts`)
- Install CLI → Agent skill: installs skill
- Hermes tools → Hindsight memory: calls API
- Website pages → Agent catalog data: loads agents (evidence: `website/src/app/page.tsx`)
- Agent browsing → Agent catalog data: loads and flattens (evidence: `website/src/app/agents/page.tsx`)
- Agent details → Agent catalog data: finds agent (evidence: `website/src/app/agents/[...slug]/page.tsx`)
- Website pages → Harness runtimes: lists harnesses (evidence: `website/src/app/page.tsx`)
- Harness guides → Harness runtimes: lists harnesses (evidence: `website/src/app/harnesses/page.tsx`)
- Harness details → Harness runtimes: loads details (evidence: `website/src/app/harnesses/[slug]/page.tsx`)
