131 lines
3.3 KiB
Markdown
131 lines
3.3 KiB
Markdown
# Dirigent 测试记录报告(阶段性)
|
||
|
||
日期:2026-02-25
|
||
|
||
## 一、测试范围
|
||
|
||
本轮覆盖:
|
||
|
||
1. Dirigent 基础静态与脚本测试
|
||
2. no-reply-api 隔离集成测试
|
||
3. (历史)discord-control-api 功能测试(dryRun + 实操,当前版本已迁移为 in-plugin)
|
||
|
||
未覆盖:
|
||
|
||
- Dirigent 插件真实挂载 OpenClaw 后的端到端(E2E)
|
||
|
||
---
|
||
|
||
## 二、测试环境
|
||
|
||
- 代码仓库:`/root/.openclaw/workspace-operator/Dirigent`
|
||
- OpenClaw 配置来源:本机已有配置(读取 Discord token)
|
||
- Discord guild(server)ID:`1368531017534537779`
|
||
- allowlist user IDs:
|
||
- `561921120408698910`
|
||
- `1474088632750047324`
|
||
|
||
---
|
||
|
||
## 三、已执行测试与结果
|
||
|
||
### A. Dirigent 基础测试
|
||
|
||
命令:
|
||
|
||
```bash
|
||
make check check-rules test-api
|
||
```
|
||
|
||
结果:
|
||
|
||
- `make check` ✅
|
||
- 输出:`plugin file check: ok`
|
||
- `make check-rules` ✅
|
||
- 4 条规则用例全部通过
|
||
- `make test-api` ✅
|
||
- 输出:`test-no-reply-api: ok`
|
||
|
||
结论:
|
||
- 插件文件结构完整
|
||
- 规则决策逻辑正确
|
||
- no-reply API 基础行为正常
|
||
|
||
---
|
||
|
||
### B. (历史)discord-control-api dryRun + 实操测试(当前版本已迁移)
|
||
|
||
执行内容与结果:
|
||
|
||
1) `channel-private-create`(dryRun)✅
|
||
2) `channel-private-create`(真实创建)✅
|
||
- 生成频道 ID:`1476341726108192919`
|
||
3) `channel-private-update`(dryRun)✅
|
||
4) `member-list`(真实查询)✅
|
||
- `limit=2`,字段裁剪 `user.id,user.username`
|
||
- 返回样例用户:`561921120408698910 / hangman0414`
|
||
5) `channel-private-update`(真实更新)✅
|
||
|
||
清理:
|
||
|
||
- 直接 Discord REST 删除频道时遇到:`HTTP 403 / code 1010`
|
||
- 改用 OpenClaw 内置 `channel-delete` 删除成功 ✅
|
||
- 删除频道:`1476341726108192919`
|
||
|
||
结论:
|
||
- 两个新增能力已完成核心实测:
|
||
- 私密频道创建/更新
|
||
- 成员列表查询
|
||
- 功能在当前环境可用
|
||
|
||
---
|
||
|
||
## 四、问题与处理
|
||
|
||
问题:
|
||
- 直接调用 Discord REST 删除临时频道出现 `403 / code 1010`
|
||
|
||
处理:
|
||
- 使用 OpenClaw 内置工具 `channel-delete` 成功清理
|
||
|
||
说明:
|
||
- 不影响本次新增功能有效性
|
||
|
||
---
|
||
|
||
## 五、待测项(下一阶段)
|
||
|
||
### 1) Dirigent 插件 E2E(需临时接入 OpenClaw 配置)
|
||
|
||
目标:验证插件真实挂载后的完整链路。
|
||
|
||
待测场景:
|
||
|
||
- 场景 1:非 Discord 消息 -> 不触发 no-reply
|
||
- 场景 2:Discord + 白名单发送者 -> 注入 `🔚` 指令
|
||
- 场景 3:Discord + 结束符消息 -> 注入 `🔚` 指令
|
||
- 场景 4:Discord + 非结束符且非白名单 -> 走 no-reply override
|
||
|
||
验收要点:
|
||
- `before_model_resolve` 命中时 provider/model 确实被覆盖
|
||
- no-reply provider 返回 `NO_REPLY`
|
||
- 决策 TTL/one-shot 不串轮
|
||
|
||
### 2) 回归测试
|
||
|
||
- (历史结论)discord-control-api 引入后,不影响 Dirigent 原有流程;现已迁移为 in-plugin 实现
|
||
- 规则校验脚本在最新代码继续稳定通过
|
||
|
||
### 3) 运行与安全校验
|
||
|
||
- `AUTH_TOKEN` + `REQUIRE_AUTH_TOKEN=true` 场景下鉴权验证
|
||
- `ALLOWED_GUILD_IDS` / `ALLOWED_CALLER_IDS` 拒绝路径验证
|
||
- 大响应保护(`MAX_MEMBER_RESPONSE_BYTES`)触发与提示验证
|
||
|
||
---
|
||
|
||
## 六、当前结论
|
||
|
||
- 新增 Discord 管控能力(私密频道 + 成员列表)已完成核心测试,可用。
|
||
- 项目剩余主要测试工作集中在 Dirigent 插件与 OpenClaw 的真实 E2E 联调。
|