Files
Dirigent/docs/INTEGRATION.md

2.4 KiB

Dirigent Integration (No-touch Template)

This guide does not change your current OpenClaw config automatically. It only generates a JSON snippet you can review.

Generate config snippet

node scripts/render-openclaw-config.mjs \
  /absolute/path/to/Dirigent/plugin \
  openai \
  dirigent-no-reply-v1 \
  561921120408698910

Arguments:

  1. plugin path
  2. provider alias
  3. model name
  4. bypass user ids (comma-separated, optional)

Output

The script prints JSON for:

  • plugins.load.paths
  • plugins.entries.dirigent.config

You can merge this snippet manually into your openclaw.json.

Installer script

node ./scripts/install.mjs --install
# optional port override
node ./scripts/install.mjs --install --no-reply-port 8787
# or wrapper
./scripts/install-dirigent-openclaw.sh --install

Uninstall:

node ./scripts/install.mjs --uninstall
# or wrapper
./scripts/install-dirigent-openclaw.sh --uninstall

Environment overrides:

  • PLUGIN_PATH
  • NO_REPLY_PROVIDER_ID
  • NO_REPLY_MODEL_ID
  • NO_REPLY_BASE_URL
  • NO_REPLY_API_KEY
  • LIST_MODE (human-list or agent-list)
  • HUMAN_LIST_JSON
  • AGENT_LIST_JSON
  • CHANNEL_POLICIES_FILE (standalone channel policy file path)
  • CHANNEL_POLICIES_JSON (only used to initialize file when missing)
  • END_SYMBOLS_JSON
  • MULTI_MESSAGE_START_MARKER
  • MULTI_MESSAGE_END_MARKER
  • MULTI_MESSAGE_PROMPT_MARKER

The script:

  • writes via openclaw config set ... --json
  • installs plugin + no-reply-api into ~/.openclaw/plugins
  • updates plugins.entries.dirigent and models.providers.<no-reply-provider>
  • supports --no-reply-port (also written into plugins.entries.dirigent.config.noReplyPort)
  • does not maintain install/uninstall record files

Policy state semantics:

  • channel policy file is loaded once into memory on startup
  • runtime decisions use in-memory state
  • use dirigent_policy tool to update state (memory first, then file persist)
  • manual file edits do not auto-apply until next restart

Notes

  • Keep no-reply API bound to loopback/private network.
  • If you use API auth, set AUTH_TOKEN and align provider apiKey usage.
  • Multi-message mode markers default to ↗️ / ↙️ / ⤵️ when no overrides are supplied.
  • Shuffle mode is not configured globally in the current implementation; it is a per-channel runtime toggle controlled with /dirigent turn-shuffling, /dirigent turn-shuffling on, and /dirigent turn-shuffling off.