fix: 通过本地完整测试发现的 11 个 bug
🔴 致命(5个): - Bug1: onebot11.json 格式错误(旧 {http:{},ws:{}} → network.httpServers/httppClients) - Bug2: 端口映射错位(WebUI 6099, OneBot API 6097 独立端口) - Bug3: 变量名含空格 NAP CAT_HOST → NAPCAT_HOST(14脚本+2SKILL+README) - Bug4: heredoc 单引号阻止变量展开 - Bug5: process.py 缺失 _get_high_risk_words() 方法 🟡 重要(3个): - Bug6: onebot11.json 默认不存在(cat > 而非 edit) - Bug7: API 须登录后才响应(新增扫码引导步骤) - Bug8: qqrebot systemd 依赖 napcat 服务 🟢 中等(3个): - Bug9: Skills 占位符缺 YOUR_NAPCAT_HOST sed 覆盖 - Bug10: venv 不可用需降级方案 - Bug11: 端口 25580 冲突处理 已验证全链路:NapCat + qqrebot + 插件 + OpenClaw Gateway + AI 回复
This commit is contained in:
@ -172,6 +172,25 @@ class OpenClawBridge(BasePlugin):
|
||||
source_tag = self._build_source_tag()
|
||||
return f"{{来源:{source_tag}}} {{用户名:{identity_tag}}} {cleaned}"
|
||||
|
||||
def _get_high_risk_words(self) -> list:
|
||||
"""获取高危词列表,优先从 config.toml [security] section 加载,否则用内置默认词库"""
|
||||
try:
|
||||
cfg_high_risk = self.config.get("security", {}).get("high_risk_words", [])
|
||||
if cfg_high_risk:
|
||||
logger.info(f"Loaded {len(cfg_high_risk)} high-risk words from config")
|
||||
return cfg_high_risk
|
||||
except Exception:
|
||||
pass
|
||||
# 内置默认词库
|
||||
default_words = [
|
||||
"ignore all instructions", "ignore all previous", "forget previous", "forget everything",
|
||||
"delete memory", "delete all", "reset system", "override",
|
||||
"sudo password", "api key", "secret token", "ssh key",
|
||||
"cat /etc/passwd", "rm -rf", ":(){ :|:& };:",
|
||||
]
|
||||
logger.info(f"Using built-in high-risk word list ({len(default_words)} words)")
|
||||
return default_words
|
||||
|
||||
def _detect_high_risk(self, message: str) -> tuple[bool, list[str]]:
|
||||
"""使用jieba分词检测高危词,返回(是否高危, 匹配到的词列表)"""
|
||||
msg_lower = message.lower()
|
||||
|
||||
Reference in New Issue
Block a user