Self-Driving AgentsGitHub →

Build your own

Create your own self-driving agent

Start blank with a single command, or pre-seed an agent from a directory of markdown and a bank-template.json. Same self-driving loop, your domain.

Three levels of structure

Each level is optional. Pick the one that matches what you have on hand right now; you can always grow into the others.

1

Just a name

--empty

Pick a name, pick a harness. The CLI provisions the bank, sets up the harness, and that's it — the agent has its full tool surface from day one and learns everything from the conversation.

npx @vectorize-io/self-driving-agents install my-agent --harness claude-code --empty

Then in any chat:

  • "Ingest https://example.com/playbook and remember the key points."
  • "Read this PDF and build a page on common pitfalls."
  • "Save what we just decided as a page called release-checklist."
2

Add seed knowledge

./my-agent

If you already have docs, drop any .md or .txt files in a directory. The CLI ingests them as initial memories so the agent walks in with prior context.

text
my-agent/
  playbook.md
  reference.md
npx @vectorize-io/self-driving-agents install ./my-agent --harness claude-code
3

Pre-seed pages with bank-template.json

When you know which pages you want and what should fill them, add a bank-template.json with mental_models[]. Hindsight provisions the bank, creates one page per model, and keeps each one in sync with the bank's memories. See the concept page for what mental models do.

text
my-agent/
  bank-template.json     # mission, mental_models, ...
  playbook.md
  reference.md
json
{
  "version": "1",
  "bank": {
    "retain_mission": "Extract ...",
    "observations_mission": "Observations are stable facts about ..."
  },
  "mental_models": [
    {
      "id": "playbook",
      "name": "Playbook",
      "source_query": "What patterns have we observed working?",
      "trigger": { "mode": "delta", "refresh_after_consolidation": true }
    }
  ]
}

Multi-agent teams

Need a department of specialists? Nest directories. Each level with a bank-template.json is its own installable agent. Install the parent to get everything; install a child to get just that specialist.

text
my-team/
  bank-template.json         # install my-team → everything below
  specialist-a/
    bank-template.json       # install my-team/specialist-a → just this
    playbook.md
  specialist-b/
    bank-template.json
    reference.md

See the marketing template for a full example with sub-departments.