用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ybbms777/openclaw-claude-code-integration --skill fusion-engine命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | fusion-engine |
| description | 多源数据融合引擎。整合命令执行反馈、用户交互、系统状态信号,生成综合决策上下文评分(0-100)。为工具调用提供4维度融合评分和决策建议。 |
| model | minimax-portal/MiniMax-M2.7 |
| effort | high |
从三个独立的数据维度收集信息,通过加权融合算法生成综合的决策上下文评分,为精准工具调用提供科学依据。
| 数据源 | 权重 | 说明 |
|---|---|---|
| LanceDB 记忆相关性 | 30% | 历史相似操作的可信度和成功率 |
| 命令执行成功率 | 30% | 此工具在历史中的成功率 |
| 用户交互偏好 | 25% | 用户过往决策模式和满意度 |
| 系统状态 | 15% | CPU/内存/磁盘/网络健康度 |
综合评分 = (LanceDB相关性 × 0.30)
+ (命令成功率 × 0.30)
+ (用户偏好 × 0.25)
+ (系统健康 × 0.15)
评分区间:
评估当前操作在历史中的相似度和可信度:
if 相关记忆存在:
平均重要性 = 相关记忆的importance平均值
成功率 = 相关记忆中成功的比例
评分 = 40 + (平均重要性 × 40) + (成功率 × 20)
else:
评分 = 40 # 无历史,保守估计
基于历史执行数据统计:
成功率(%) = (成功次数 / 总执行次数) × 100
评分 = min(100, 成功率(%))
整合用户过往的决策模式:
接受率(%) = (用户批准数 / 总交互数) × 100
平均满意度 = 用户给定的满意度评分(1-5)对应的百分制
评分 = (接受率 × 0.6) + (平均满意度 × 0.4)
实时检测系统资源状态:
CPU分数 = 100 - CPU使用率(%)
内存分数 = 100 - 内存使用率(%)
磁盘分数 = 100 - 磁盘使用率(%)
评分 = (CPU分数 + 内存分数 + 磁盘分数) / 3
每个决策都附带清晰的推理日志:
{
"tool": "bash",
"final_score": 73.5,
"decision": "request_confirm",
"reasoning": {
"memory": {
"score": 75,
"note": "基于LanceDB中相关记忆的可信度"
},
"cmd_success": {
"score": 80,
"note": "基于历史执行的成功率"
},
"user_pref": {
"score": 70,
"note": "基于用户过往决策模式"
},
"system": {
"score": 65
from skills.fusion_engine.scripts.fusion_engine import MultiSourceFusionEngine
engine = MultiSourceFusionEngine()
# 生成融合得分
score = engine.fuse_decision_context(
tool_name="bash",
params={"command": "rm /tmp/test.txt"},
session_id="session_123"
)
print(f"最终评分: {score.final_score}")
print(f"决策: {score.decision}") # "auto_allow", "request_confirm", "block"
# 保存决策到日志
engine.save_decision("bash", score, "session_123")
# 基础用法
python3 fusion_engine.py bash '{"command": "ls"}'
# 带会话ID
python3 fusion_engine.py write '{"file": "test.txt"}' --session-id session_123
# 保存决策
python3 fusion_engine.py bash '{"command": "rm /tmp/old"}' --save
# 自定义工作目录
python3 fusion_engine.py bash '{"command": "pwd"}' --workspace ~/.openclaw/workspace
# 在 yolo_classifier.py 中
from skills.fusion_engine.scripts.fusion_engine import MultiSourceFusionEngine
def classify_with_fusion(tool_name, params, session_id):
# 第1层:旧的静态分类
static_risk = yolo_static_classify(tool_name, params)
# 第2层:新的融合评分
fusion_engine = MultiSourceFusionEngine()
fusion_score = fusion_engine.fuse_decision_context(
tool_name, params, session_id
)
# 综合决策
if fusion_score.decision == "block":
return {"risk": "CRITICAL", "reason": "融合评分过低"}
return {
"risk": static_risk,
"fusion_score": fusion_score.final_score,
"decision": fusion_score.decision
}
# 在决策前检查会话行为
from skills.behavior_analyzer.scripts.behavior_analyzer import SessionBehaviorAnalyzer
analyzer = SessionBehaviorAnalyzer()
metrics = analyzer.analyze_session(session_id)
if metrics.health_score < 40:
# 会话异常,降低融合评分权重
engine.weights["user_pref"] = 0.1 # 降低信任
engine.weights["memory"] = 0.2
历史执行记录 .command-execution.jsonl
{"tool": "bash", "status": "success", "timestamp": "..."}
用户交互记录 .user-interactions.jsonl
{"tool": "write", "action": "approved", "satisfaction": 5}
系统状态 (实时读取 psutil)
LanceDB 记忆 (可选)
.fusion-decisions.jsonl:
{
"timestamp": "2026-04-11T10:30:00",
"tool": "bash",
"session_id": "session_123",
"fusion_score": 73.5,
"decision": "request_confirm",
"components": {
"memory": 75.0,
"cmd_success": 80.0,
"user_pref": 70.0,
"system": 65.0
}
}
engine.weights = {
"memory": 0.40, # 增加记忆权重
"cmd_success": 0.25,
"user_pref": 0.25,
"system": 0.10,
}
engine.thresholds = {
"auto_allow": 80, # 提高自动执行门槛
"request_confirm": 50,
"block": 0,
}
# 运行所有测试
pytest skills/fusion-engine/tests/ -v
# 生成覆盖率报告
pytest skills/fusion-engine/tests/ --cov=skills.fusion_engine
测试覆盖:
agent:tool_dispatch — 工具调用决策前调用agent:tool_result — 工具执行后更新历史user:confirmation — 用户交互时记录偏好class CustomFusionEngine(MultiSourceFusionEngine):
def _evaluate_memory_relevance(self, tool_name, params, session_id):
# 自定义记忆评估逻辑
score = super()._evaluate_memory_relevance(tool_name, params, session_id)
# 额外逻辑:如果是金融操作,提高相关性权重
if "finance" in tool_name or "money" in str(params):
score *= 1.2
return min(100, score)
原因:无历史数据或系统资源压力大 解决:
.command-execution.jsonl 是否在增长原因:权重配置不匹配业务场景 解决:根据实际使用情况调整权重配置
遵循项目主许可证。