Files
Dirigent/README.md

61 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# WhisperGate
Rule-based no-reply gate for OpenClaw.
## What it does
WhisperGate adds a deterministic gate **before model selection**:
1. If message is not from Discord → skip gate
2. If sender is in bypass user list → skip gate
3. If message ends with configured end-symbol → skip gate
4. Otherwise switch this turn to a no-reply model/provider
The no-reply provider returns `NO_REPLY` for any input.
---
## Repo layout
- `plugin/` — OpenClaw plugin (before_model_resolve hook)
- `no-reply-api/` — OpenAI-compatible minimal API that always returns `NO_REPLY`
- `discord-control-api/` — Discord 管理扩展 API私密频道 + 成员列表)
- `docs/` — rollout, integration, run-mode notes
- `scripts/` — smoke/dev/helper checks
- `Makefile` — common dev commands (`make check`, `make check-rules`, `make test-api`, `make smoke-discord-control`, `make up`)
- `CHANGELOG.md` — milestone summary
## Quick start (no Docker)
```bash
cd no-reply-api
node server.mjs
```
Then render config snippet:
```bash
node scripts/render-openclaw-config.mjs
```
See `docs/RUN_MODES.md` for Docker mode.
Discord 扩展能力见:`docs/DISCORD_CONTROL.md`
---
## Development plan (incremental commits)
- [x] Task 1: project docs + structure
- [x] Task 2: no-reply API MVP
- [x] Task 3: plugin MVP with rule chain
- [x] Task 4: sample config + quick verification scripts
- [x] Task 5: plugin rule extraction + hardening
- [x] Task 6: containerization + compose
- [x] Task 7: plugin usage notes
- [x] Task 8: sender normalization + TTL + one-shot decision
- [x] Task 9: auth-aware no-reply API
- [x] Task 10: smoke test helpers
- [x] Task 11: plugin structure checker
- [x] Task 12: rollout checklist