diff --git a/docs/openclaw-API响应性能分析与优化.md b/docs/openclaw-API响应性能分析与优化.md index 64e2e26..42383a7 100644 --- a/docs/openclaw-API响应性能分析与优化.md +++ b/docs/openclaw-API响应性能分析与优化.md @@ -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` 为一次 | 显著减少往返 | | 并行取证 | 把可并行的只读操作交给 `subagents`(当前 `subagents.maxConcurrent=4`) | 串行改并行 | | 技能不必现装现用 | 需要什么技能**提前装好**,避免在对话中触发 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_*` 等条目——即**配置里声明了、但插件没注册上**的工具。 -> -> 注意两点:① 这**意味着 `full` profile 的允许清单本身是 openclaw 内置生成的**,不是本机 `tools.allow`(实测本机 `tools.allow` 为空数组、条目数 0)——所以「改白名单」要做在 **profile/插件注册层**,不是改那个空数组;② 这些是**历史告警**(首见 10:24,早于 16:13 的配置清理),清理后是否仍出现需重新核验: -> +> ⚠️ **有 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_*` 等。 + +**根因定位(实测)**:本机 `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 > 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