Skip to main content

Configuration

HindClaw uses a two-level config system: plugin-level defaults in openclaw.json and per-agent overrides in bank config files.

openclaw.json (plugin config)          banks/agent-1.json5 (bank config)
├── Daemon (global only) ├── Server-side (agent-only)
│ apiPort, embedVersion │ retain_mission, entity_labels
│ embedPackagePath, daemonIdleTimeout│ dispositions, directives
│ │
├── Defaults (overridable per-agent) ├── Infrastructure overrides
│ hindsightApiUrl, hindsightApiToken │ hindsightApiUrl, hindsightApiToken
│ llmProvider, llmModel │
│ autoRecall, autoRetain, ... ├── Behavioral overrides
│ │ recallBudget, retainTags, llmModel
├── bootstrap: true|false │
│ ├── Multi-bank: recallFrom [...]
└── Agent mapping ├── Session start: sessionStartModels
agents: { id: { bankConfig } } └── Reflect: reflectOnRecall

Resolution: plugin defaults -> bank config file (shallow merge, bank file wins).

Plugin Config Reference

OptionDefaultPer-agentDescription
hindsightApiUrl-yesHindsight API URL
hindsightApiToken-yesBearer token for API auth
apiPort9077noPort for local daemon
embedVersion"latest"nohindsight-embed version
embedPackagePath-noLocal hindsight-embed path (development)
daemonIdleTimeout0noDaemon idle timeout in seconds (0 = never)
dynamicBankIdtrueyesDerive bank ID from context
dynamicBankGranularity["agent","channel","user"]yesFields for bank ID derivation
bankIdPrefix-yesPrefix for derived bank IDs
autoRecalltrueyesInject memories before each turn
autoRetaintrueyesRetain conversations after each turn
recallBudget"mid"yesRecall effort: low, mid, high
recallMaxTokens1024yesMax tokens injected per turn
recallTypes["world","experience"]yesMemory types to recall
retainRoles["user","assistant"]yesRoles captured for retention
retainEveryNTurns1yesRetain every Nth turn
llmProviderautoyesLLM provider for extraction
llmModelprovider defaultyesModel name
bootstrapfalsenoAuto-apply bank configs on first run
agents{}noPer-agent bank config registration

Multi-Server Support

Per-agent infrastructure overrides enable connecting different agents to different Hindsight servers:

Gateway
├── agent-1 (private) -> hindsightApiUrl: "https://hindsight.home.local"
├── agent-2 (private) -> hindsightApiUrl: "https://hindsight.home.local"
├── agent-3 (company) -> hindsightApiUrl: "https://hindsight.office.local"
├── agent-4 (company) -> hindsightApiUrl: "https://hindsight.office.local"
└── agent-5 (local) -> no hindsightApiUrl (local daemon)

Remote Hindsight Server

To use a remote/shared Hindsight server instead of the local daemon:

{
"hindsightApiUrl": "https://hindsight.office.local",
"hindsightApiToken": "your-api-token"
}

Cross-Agent Recall

An agent can recall from multiple banks using recallFrom in its bank config:

{
"recallFrom": ["agent-1", "agent-2", "agent-3"],
"recallBudget": "high",
"recallMaxTokens": 2048
}

When access control is active, permissions are checked independently for each target bank. If the user has recall: false on a target bank, that bank is skipped entirely.