dws: command not found确保 dws 在 PATH 中,或在 config.yaml 设置 dws.cli_path 为绝对路径。
检查:
dws auth statussend_message 默认 30 次/小时,可在 tools.rate_limit 调整rules.blacklist确保 models/ 下有 BGE 模型文件(首次启动会尝试从 HuggingFace 下载)。若无网络,可手动下载后放入。
修改 config.yaml 中 web.port 即可。
在 config.yaml 中从 tools.available 列表里删除对应名称即可(LLM 不会看到这些工具)。
检查:
poller.reply_cooldown_seconds(默认 60)如果提示”该组织尚未开启 CLI 数据访问权限”,需要联系组织管理员在钉钉开放平台开启 CLI 数据访问权限。开启后刷新页面即可。
这是组织级别的权限/认证问题,最常见于多组织场景:你当前登录的 DWS profile 属于组织 A,但 dws 拉到的某些会话属于组织 B,而你对组织 B 没有 CLI 数据访问权限。
为什么 dws 会弹窗:dws CLI 在收到 TOKEN_VERIFIED_FAILED 或 token 过期时会自动弹出 OAuth 浏览器窗口要求重新授权,这是 dws 自身行为。
系统的防御措施:
~/.dws/profiles.json,不调用 dws 命令,减少弹窗触发--device --no-browser 参数,不弹出浏览器,在终端显示 userCode 和短链接供用户在其他设备上完成授权排查步骤:
dws auth status提示:dws 的弹窗是其自身行为,本系统无法阻止。建议在目标组织明确后,使用
python scripts/prelogin_multiple_orgs.py预登录多个组织并持久化 token。
若日志长时间安静,可用「list-all 主通道空轮探针」确认:当 list-all 连续 poller.list_all_empty_alert_rounds(默认 6)轮都没拉到任何新消息时,会打印 [收信探针] list-all 主通道已连续 N 轮未拉到任何新消息 告警。这通常是正常的(确实没人发消息);若持续为空且你确定有人发消息,再检查账号登录 / 目标组织 CLI 权限。一旦某轮拉到消息,计数立即归零并提示「恢复收信」。