docs(perf): 查清 36 个未注册工具的真因并纠正我的两处错误
实测定位(此前表述有误,一并纠正): - 真因: tools.alsoAllow 声明 37 个 feishu_* 工具,仅 feishu_chat 注册成功; 其余 36 个由 openclaw-lark 插件提供,而该插件在 plugins.entries 里被显式 设为 enabled:false,因此未加载(已用 http server listening 日志确认只加载 6 个插件) - 纠错1: 并非 tools.allow 为空数组 —— 实际 tools.allow 未设置、tools.alsoAllow 37 条 - 纠错2: 并非历史告警 —— 告警仍在持续(当天 20 次,最后 16:27:34) - 补充两个互斥修法(精简声明 / 启用插件)及各自代价
This commit is contained in:
@@ -222,17 +222,45 @@ openclaw models list --provider deepseek
|
|||||||
|
|
||||||
| 手段 | 动作 | 预期 |
|
| 手段 | 动作 | 预期 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 收敛工具集 | 让高频 agent 少暴露「用不上」的工具(当前 `tools.profile=full`;本机 `tools.allow` 为空,需在 profile/插件注册层收窄) | 模型少做无效试探,轮次下降(⚠️ 需实测,见 §5) |
|
| 收敛工具集 | 让高频 agent 少暴露「用不上」的工具(当前 `tools.profile=full`;本机 `tools.allow` 未设置,`tools.alsoAllow` 有 37 条——**其中 36 条是无效声明**,见下方告警说明) | 模型少做无效试探,轮次下降(⚠️ 需实测,见 §5) |
|
||||||
| 提升单轮信息密度 | 在 agent 的 `AGENTS.md` 中要求「一次调用批量取证」:合并多次 `read`/`memory_search` 为一次 | 显著减少往返 |
|
| 提升单轮信息密度 | 在 agent 的 `AGENTS.md` 中要求「一次调用批量取证」:合并多次 `read`/`memory_search` 为一次 | 显著减少往返 |
|
||||||
| 并行取证 | 把可并行的只读操作交给 `subagents`(当前 `subagents.maxConcurrent=4`) | 串行改并行 |
|
| 并行取证 | 把可并行的只读操作交给 `subagents`(当前 `subagents.maxConcurrent=4`) | 串行改并行 |
|
||||||
| 技能不必现装现用 | 需要什么技能**提前装好**,避免在对话中触发 ClawHub 审计+安装(实测单次 13.5–14s) | 消除最大单点等待 |
|
| 技能不必现装现用 | 需要什么技能**提前装好**,避免在对话中触发 ClawHub 审计+安装(实测单次 13.5–14s) | 消除最大单点等待 |
|
||||||
|
|
||||||
> ⚠️ **工具清单存在未注册条目**(实测):`tools.profile (full) allowlist contains unknown entries` 与 `tools.allow allowlist contains unknown entries` 各出现 **9 次**(首见 09-16 10:24:26),报的都是 `feishu_bitable_*` / `feishu_calendar_*` 等条目——即**配置里声明了、但插件没注册上**的工具。
|
> ⚠️ **有 36 个「声明了却不存在」的工具**(2026-09-16 复核,**告警仍在持续**:当天 20 次,最后一次 16:27:34):
|
||||||
>
|
> `tools.profile (full) allowlist contains unknown entries` 与 `tools.allow allowlist contains unknown entries` 各 10 次,报的全是 `feishu_bitable_*` / `feishu_calendar_*` / `feishu_task_*` 等。
|
||||||
> 注意两点:① 这**意味着 `full` profile 的允许清单本身是 openclaw 内置生成的**,不是本机 `tools.allow`(实测本机 `tools.allow` 为空数组、条目数 0)——所以「改白名单」要做在 **profile/插件注册层**,不是改那个空数组;② 这些是**历史告警**(首见 10:24,早于 16:13 的配置清理),清理后是否仍出现需重新核验:
|
|
||||||
>
|
**根因定位(实测)**:本机 `tools.alsoAllow` 声明了 **37 个** `feishu_*` 工具,但只有 **1 个真正注册成功**:
|
||||||
|
|
||||||
|
```
|
||||||
|
alsoAllow 声明 37 个 ─┬─ ✅ 成功注册: feishu_chat (feishu 插件提供,enabled: true)
|
||||||
|
└─ ❌ 注册失败: 其余 36 个 ← openclaw-lark 插件提供
|
||||||
|
```
|
||||||
|
|
||||||
|
而 `openclaw-lark` 在配置里被**显式关闭**了:
|
||||||
|
|
||||||
|
```json5
|
||||||
|
"plugins": { "entries": {
|
||||||
|
"feishu": { "enabled": true }, // 只提供 feishu_chat
|
||||||
|
"openclaw-lark": { "enabled": false } // 36 个 feishu_* 工具的真正提供者 → 未加载
|
||||||
|
}}
|
||||||
|
```
|
||||||
|
|
||||||
|
验证:`grep "http server listening" 日志` → 实际只加载 **6 个插件**(dingtalk-connector, feishu, memory-core, ollama, openclaw-weixin, searxng),**不含 openclaw-lark**。
|
||||||
|
|
||||||
|
**影响**:`alsoAllow` 里那 36 条是**无效声明**——它们不报错,但也不生效;模型可能尝试调用不存在的工具而浪费一轮往返。
|
||||||
|
|
||||||
|
**两个互斥的修法(需决策,不建议同时做)**:
|
||||||
|
|
||||||
|
| 方案 | 做法 | 代价 |
|
||||||
|
|---|---|---|
|
||||||
|
| **A. 精简声明**(推荐,契合 P0-2) | 从 `tools.alsoAllow` 删掉用不上的 `feishu_*` 条目 | 需先确认哪些飞书能力**真的要用** |
|
||||||
|
| **B. 启用插件** | `plugins.entries.openclaw-lark.enabled = true` | 真实注册 36 个工具,**工具面大幅变大**,可能反增轮次与上下文开销;且 lark 插件需飞书应用凭据/oauth 流程 |
|
||||||
|
|
||||||
|
> 复核命令(注意:告警**不是**历史遗留,会随每次配置重载/插件加载重现):
|
||||||
> ```bash
|
> ```bash
|
||||||
> grep -c "allowlist contains unknown entries" /tmp/openclaw/openclaw-$(date +%F).log
|
> grep -c "allowlist contains unknown entries" /tmp/openclaw/openclaw-$(date +%F).log
|
||||||
|
> grep "http server listening" /tmp/openclaw/openclaw-$(date +%F).log | tail -1 # 看实际加载了哪些插件
|
||||||
> ```
|
> ```
|
||||||
|
|
||||||
### P1-3 补上模型请求超时与 failover
|
### P1-3 补上模型请求超时与 failover
|
||||||
|
|||||||
Reference in New Issue
Block a user