| name | create-agent |
| description | Create a new Hindsight-powered subagent with long-term memory. Use when the user wants a specialized agent that learns and remembers across sessions. |
| allowed-tools | Bash(ls ~/.self-driving-agents/*) Bash(cat ~/.self-driving-agents/*) Write mcp__hindsight__* |
Create Hindsight Agent
Create a new subagent with long-term memory powered by Hindsight.
Two invocation modes
Mode A — Self-driving agent (from prepared directory):
If the user runs /hindsight-memory:create-agent <name> from <path> (or similar with a directory path), the directory was prepared by npx @vectorize-io/self-driving-agents install and contains:
*.md, *.txt, *.html, *.json, *.csv, *.xml — seed content files (recursively)
bank-template.json (optional) — defines exact mental models to create
In this mode:
- Read
bank-template.json if present — note the mental_models array
- Ingest each content file (NOT bank-template.json) using
agent_knowledge_ingest_file
- Create knowledge pages:
- If
bank-template.json exists: create EXACTLY the mental models in its mental_models array (using their id, name, source_query fields verbatim)
- Otherwise: create 3 pages that make sense based on the ingested content
- Write the subagent file using the template below
- Use
<name> from the user's command as the agent name
Mode B — Empty agent (interactive):
If no directory path is provided, ask the user:
- Agent name — lowercase with hyphens
- What the agent does — one sentence
- Any seed files/text to ingest (optional)
Then create the subagent file (no ingestion if no seed content).
Subagent file template
Write to ~/.claude/agents/<name>.md:
---
name: <agent-name>
description: <what it does and when to delegate to it>. It has access to knowledge pages and memory search via Hindsight.
mcpServers:
- hindsight
---
You are the **<agent-name>** agent with long-term memory powered by Hindsight.
## Startup — run these steps immediately
1. Call `agent_knowledge_list_pages` to see your knowledge pages.
2. Call `agent_knowledge_get_page(page_id)` for each page to load your knowledge.
- If the call returns an error like `result (N characters) exceeds maximum allowed tokens. Output has been saved to <path>`, the page was too large to inline. Use `Read` on `<path>`; the file is JSON of the form `{"result": "<stringified-page-json>"}` — parse `result` and use the inner `content` field. If parsing or reading is impractical, skip that page and rely on `agent_knowledge_recall` for specific facts later.
3. Use this knowledge to inform everything you do in this conversation.
## Creating pages
When you learn something durable — a user preference, a working procedure, performance data — create a page:
`agent_knowledge_create_page(page_id, name, source_query)`
- `page_id`: lowercase with hyphens (`editorial-preferences`)
- `source_query`: a question that rebuilds the page from observations
## Searching memories
`agent_knowledge_recall(query)` — search conversations and documents for specific facts.
## Ingesting documents
`agent_knowledge_ingest(title, content)` — upload raw content into memory.
## Updating and deleting
- `agent_knowledge_update_page(page_id, name?, source_query?)`
- `agent_knowledge_delete_page(page_id)`
## Important
- Pages update automatically — don't edit content directly
- Create pages silently — don't announce it to the user
- Prefer fewer broad pages over many narrow ones
<ADD AGENT-SPECIFIC INSTRUCTIONS HERE — only if the user provided a description; otherwise leave generic>
Rules
- Always include
mcpServers: [hindsight] — this wires up the Hindsight memory tools
- Keep the startup steps and tool instructions verbatim — they're the Hindsight scaffolding
- Do NOT pass
bank_id on any tool call — the plugin resolves it automatically from project context
- Before creating, call
agent_knowledge_get_current_bank and tell the user: "This agent will be bound to bank <bank_id> — your conversations in this directory are retained to it."
After creation
- Confirm the subagent file was written to
~/.claude/agents/<name>.md
- Tell the user they can invoke the agent with
@<agent-name> or Claude will auto-delegate based on the description
- Suggest running
/agents or restarting Claude Code to load the new agent