@huo15/openclaw-enhance 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -0
- package/index.ts +69 -0
- package/openclaw.plugin.json +65 -0
- package/package.json +46 -0
- package/scripts/setup.sh +144 -0
- package/skills/explore-mode/SKILL.md +71 -0
- package/skills/memory-curator/SKILL.md +76 -0
- package/skills/plan-mode/SKILL.md +69 -0
- package/skills/verify-mode/SKILL.md +69 -0
- package/src/modules/dashboard.ts +158 -0
- package/src/modules/prompt-enhancer.ts +65 -0
- package/src/modules/structured-memory.ts +167 -0
- package/src/modules/tool-safety.ts +149 -0
- package/src/modules/workflow-hooks.ts +147 -0
- package/src/types.ts +80 -0
- package/src/utils/sqlite-store.ts +159 -0
- package/templates/AGENTS.enhance-patch.md +30 -0
- package/templates/SOUL.enhance-patch.md +27 -0
package/README.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# 🦞 龙虾增强包 (OpenClaw Enhancement Kit)
|
|
2
|
+
|
|
3
|
+
> 非侵入式增强你的 OpenClaw Agent — 借鉴 Claude Code 的最佳实践
|
|
4
|
+
|
|
5
|
+
## 功能模块
|
|
6
|
+
|
|
7
|
+
| 模块 | 说明 | 工具 |
|
|
8
|
+
|------|------|------|
|
|
9
|
+
| **结构化记忆** | 按类型分类存储记忆(user/project/feedback/reference/decision) | `enhance_memory_store` `enhance_memory_search` `enhance_memory_review` |
|
|
10
|
+
| **工具安全** | 可配置的工具调用拦截规则 + 审计日志 | `enhance_safety_log` `enhance_safety_rules` |
|
|
11
|
+
| **提示词增强** | 自动注入任务分类、质量指引、记忆上下文 | 自动(通过 hook) |
|
|
12
|
+
| **工作流自动化** | 触发词驱动的行为指令注入 | `enhance_workflow_define` `enhance_workflow_list` `enhance_workflow_delete` |
|
|
13
|
+
| **仪表盘** | Web UI 查看记忆/安全/工作流状态 | `http://localhost:18789/enhance/` |
|
|
14
|
+
|
|
15
|
+
## 增强技能
|
|
16
|
+
|
|
17
|
+
| 技能 | 说明 |
|
|
18
|
+
|------|------|
|
|
19
|
+
| `plan-mode` | 结构化规划模式(借鉴 Claude Code Plan Agent) |
|
|
20
|
+
| `explore-mode` | 深度探索模式(借鉴 Claude Code Explore Agent) |
|
|
21
|
+
| `verify-mode` | 验证检查模式(借鉴 Claude Code Verification Agent) |
|
|
22
|
+
| `memory-curator` | 记忆整理和优化 |
|
|
23
|
+
|
|
24
|
+
## 安装
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
openclaw plugins install @huo15/openclaw-enhance
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
然后重启 OpenClaw:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
openclaw restart
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## 配置
|
|
37
|
+
|
|
38
|
+
在 `openclaw.json` 中配置各模块:
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"plugins": {
|
|
43
|
+
"entries": {
|
|
44
|
+
"enhance": {
|
|
45
|
+
"enabled": true,
|
|
46
|
+
"config": {
|
|
47
|
+
"memory": { "enabled": true, "autoCapture": true, "maxContextEntries": 5 },
|
|
48
|
+
"safety": {
|
|
49
|
+
"enabled": true,
|
|
50
|
+
"rules": [
|
|
51
|
+
{ "tool": "exec", "pattern": "rm -rf *", "action": "block", "reason": "危险命令" }
|
|
52
|
+
],
|
|
53
|
+
"defaultAction": "allow"
|
|
54
|
+
},
|
|
55
|
+
"prompt": { "enabled": true, "sections": ["qualityGuidelines", "memoryContext"] },
|
|
56
|
+
"workflows": { "enabled": true },
|
|
57
|
+
"dashboard": { "enabled": true }
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## 设计理念
|
|
66
|
+
|
|
67
|
+
- **非侵入**: 不修改 OpenClaw 核心代码,完全通过插件 API
|
|
68
|
+
- **模块化**: 每个模块可独立开关
|
|
69
|
+
- **借鉴但不照搬**: 取 Claude Code 的精华,适配 OpenClaw 的架构
|
|
70
|
+
|
|
71
|
+
## License
|
|
72
|
+
|
|
73
|
+
MIT
|
package/index.ts
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 龙虾增强包 (OpenClaw Enhancement Kit)
|
|
3
|
+
*
|
|
4
|
+
* 非侵入式增强插件:
|
|
5
|
+
* - 模块1: 结构化记忆系统(借鉴 Claude Code auto-memory)
|
|
6
|
+
* - 模块2: 工具安全守卫(借鉴 Claude Code 权限系统)
|
|
7
|
+
* - 模块3: 提示词增强(借鉴 Claude Code systemPromptSections)
|
|
8
|
+
* - 模块4: 工作流自动化(借鉴 Claude Code hooks 事件驱动)
|
|
9
|
+
* - 模块5: 增强仪表盘
|
|
10
|
+
*/
|
|
11
|
+
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
|
|
12
|
+
import { registerStructuredMemory } from "./src/modules/structured-memory.js";
|
|
13
|
+
import { registerToolSafety } from "./src/modules/tool-safety.js";
|
|
14
|
+
import { registerPromptEnhancer } from "./src/modules/prompt-enhancer.js";
|
|
15
|
+
import { registerWorkflowHooks } from "./src/modules/workflow-hooks.js";
|
|
16
|
+
import { registerDashboard } from "./src/modules/dashboard.js";
|
|
17
|
+
import type { EnhancePluginConfig } from "./src/types.js";
|
|
18
|
+
|
|
19
|
+
export default definePluginEntry({
|
|
20
|
+
id: "enhance",
|
|
21
|
+
name: "龙虾增强包 (OpenClaw Enhancement Kit)",
|
|
22
|
+
description: "结构化记忆、工具安全守卫、提示词增强、工作流自动化、仪表盘",
|
|
23
|
+
|
|
24
|
+
register(api) {
|
|
25
|
+
const config = (api.pluginConfig ?? {}) as EnhancePluginConfig;
|
|
26
|
+
|
|
27
|
+
const modules: Array<{ name: string; enabled: boolean; load: () => void }> = [
|
|
28
|
+
{
|
|
29
|
+
name: "结构化记忆",
|
|
30
|
+
enabled: config.memory?.enabled !== false,
|
|
31
|
+
load: () => registerStructuredMemory(api, config.memory),
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: "工具安全",
|
|
35
|
+
enabled: config.safety?.enabled !== false,
|
|
36
|
+
load: () => registerToolSafety(api, config.safety),
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: "提示词增强",
|
|
40
|
+
enabled: config.prompt?.enabled !== false,
|
|
41
|
+
load: () => registerPromptEnhancer(api, config.prompt),
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: "工作流自动化",
|
|
45
|
+
enabled: config.workflows?.enabled !== false,
|
|
46
|
+
load: () => registerWorkflowHooks(api, config.workflows),
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "仪表盘",
|
|
50
|
+
enabled: config.dashboard?.enabled !== false,
|
|
51
|
+
load: () => registerDashboard(api, config.dashboard),
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
const loaded: string[] = [];
|
|
56
|
+
for (const mod of modules) {
|
|
57
|
+
if (mod.enabled) {
|
|
58
|
+
try {
|
|
59
|
+
mod.load();
|
|
60
|
+
loaded.push(mod.name);
|
|
61
|
+
} catch (err) {
|
|
62
|
+
api.logger.error(`[enhance] 模块「${mod.name}」加载失败:`, err);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
api.logger.info(`[enhance] 龙虾增强包 v1.0.0 已加载,启用模块: ${loaded.join("、")}`);
|
|
68
|
+
},
|
|
69
|
+
});
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "enhance",
|
|
3
|
+
"name": "龙虾增强包 (OpenClaw Enhancement Kit)",
|
|
4
|
+
"description": "非侵入式增强:结构化记忆、工具安全守卫、提示词增强、工作流自动化、仪表盘",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"configSchema": {
|
|
7
|
+
"type": "object",
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"memory": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {
|
|
13
|
+
"enabled": { "type": "boolean", "default": true },
|
|
14
|
+
"autoCapture": { "type": "boolean", "default": true },
|
|
15
|
+
"maxContextEntries": { "type": "number", "default": 5 }
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"safety": {
|
|
19
|
+
"type": "object",
|
|
20
|
+
"properties": {
|
|
21
|
+
"enabled": { "type": "boolean", "default": true },
|
|
22
|
+
"rules": {
|
|
23
|
+
"type": "array",
|
|
24
|
+
"items": {
|
|
25
|
+
"type": "object",
|
|
26
|
+
"properties": {
|
|
27
|
+
"tool": { "type": "string" },
|
|
28
|
+
"pattern": { "type": "string" },
|
|
29
|
+
"pathPattern": { "type": "string" },
|
|
30
|
+
"action": { "type": "string", "enum": ["block", "log", "allow"] },
|
|
31
|
+
"reason": { "type": "string" }
|
|
32
|
+
},
|
|
33
|
+
"required": ["tool", "action"]
|
|
34
|
+
},
|
|
35
|
+
"default": []
|
|
36
|
+
},
|
|
37
|
+
"defaultAction": { "type": "string", "enum": ["allow", "log"], "default": "allow" }
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"prompt": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"properties": {
|
|
43
|
+
"enabled": { "type": "boolean", "default": true },
|
|
44
|
+
"sections": {
|
|
45
|
+
"type": "array",
|
|
46
|
+
"items": { "type": "string" },
|
|
47
|
+
"default": ["qualityGuidelines", "memoryContext"]
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"workflows": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"properties": {
|
|
54
|
+
"enabled": { "type": "boolean", "default": true }
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"dashboard": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"properties": {
|
|
60
|
+
"enabled": { "type": "boolean", "default": true }
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@huo15/openclaw-enhance",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "龙虾增强包 — 结构化记忆、工具安全、提示词增强、工作流自动化、仪表盘",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "index.ts",
|
|
7
|
+
"openclaw": {
|
|
8
|
+
"extensions": ["./index.ts"]
|
|
9
|
+
},
|
|
10
|
+
"bin": {
|
|
11
|
+
"openclaw-enhance-setup": "./scripts/setup.sh"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"openclaw",
|
|
15
|
+
"plugin",
|
|
16
|
+
"enhance",
|
|
17
|
+
"memory",
|
|
18
|
+
"safety",
|
|
19
|
+
"agent"
|
|
20
|
+
],
|
|
21
|
+
"author": "jobzhao15",
|
|
22
|
+
"license": "MIT",
|
|
23
|
+
"peerDependencies": {
|
|
24
|
+
"openclaw": ">=2026.2.24"
|
|
25
|
+
},
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@sinclair/typebox": "^0.34.0",
|
|
28
|
+
"better-sqlite3": "^11.0.0"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@types/better-sqlite3": "^7.6.0",
|
|
32
|
+
"typescript": "^5.5.0"
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"index.ts",
|
|
36
|
+
"openclaw.plugin.json",
|
|
37
|
+
"src/**/*",
|
|
38
|
+
"skills/**/*",
|
|
39
|
+
"templates/**/*",
|
|
40
|
+
"scripts/**/*"
|
|
41
|
+
],
|
|
42
|
+
"repository": {
|
|
43
|
+
"type": "git",
|
|
44
|
+
"url": "https://github.com/jobzhao15/openclaw-enhance"
|
|
45
|
+
}
|
|
46
|
+
}
|
package/scripts/setup.sh
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# 龙虾增强包 — 一键安装脚本
|
|
4
|
+
#
|
|
5
|
+
# 用法:
|
|
6
|
+
# 方式1: npx @huo15/openclaw-enhance setup
|
|
7
|
+
# 方式2: bash <(curl -fsSL https://raw.githubusercontent.com/jobzhao15/openclaw-enhance/main/scripts/setup.sh)
|
|
8
|
+
#
|
|
9
|
+
set -euo pipefail
|
|
10
|
+
|
|
11
|
+
RED='\033[0;31m'
|
|
12
|
+
GREEN='\033[0;32m'
|
|
13
|
+
YELLOW='\033[1;33m'
|
|
14
|
+
CYAN='\033[0;36m'
|
|
15
|
+
NC='\033[0m'
|
|
16
|
+
|
|
17
|
+
OPENCLAW_DIR="${OPENCLAW_HOME:-$HOME/.openclaw}"
|
|
18
|
+
PLUGIN_ID="enhance"
|
|
19
|
+
NPM_PACKAGE="@huo15/openclaw-enhance"
|
|
20
|
+
|
|
21
|
+
echo -e "${CYAN}🦞 龙虾增强包 (OpenClaw Enhancement Kit) 安装程序${NC}"
|
|
22
|
+
echo ""
|
|
23
|
+
|
|
24
|
+
# ── 1. 检测 OpenClaw ──
|
|
25
|
+
if [ ! -f "$OPENCLAW_DIR/openclaw.json" ]; then
|
|
26
|
+
echo -e "${RED}✗ 未检测到 OpenClaw 安装($OPENCLAW_DIR/openclaw.json 不存在)${NC}"
|
|
27
|
+
echo " 请先安装 OpenClaw: https://openclaw.com"
|
|
28
|
+
exit 1
|
|
29
|
+
fi
|
|
30
|
+
echo -e "${GREEN}✓${NC} 检测到 OpenClaw: $OPENCLAW_DIR"
|
|
31
|
+
|
|
32
|
+
# ── 2. 安装插件 ──
|
|
33
|
+
echo ""
|
|
34
|
+
echo -e "${CYAN}正在安装插件...${NC}"
|
|
35
|
+
if command -v openclaw &>/dev/null; then
|
|
36
|
+
openclaw plugins install "$NPM_PACKAGE" || {
|
|
37
|
+
echo -e "${YELLOW}⚠ openclaw plugins install 失败,尝试手动安装...${NC}"
|
|
38
|
+
INSTALL_DIR="$OPENCLAW_DIR/extensions/openclaw-enhance"
|
|
39
|
+
mkdir -p "$INSTALL_DIR"
|
|
40
|
+
cd "$INSTALL_DIR"
|
|
41
|
+
npm init -y --silent 2>/dev/null || true
|
|
42
|
+
npm install "$NPM_PACKAGE" --silent
|
|
43
|
+
cd - >/dev/null
|
|
44
|
+
}
|
|
45
|
+
else
|
|
46
|
+
echo -e "${YELLOW}⚠ 未找到 openclaw CLI,使用手动安装模式${NC}"
|
|
47
|
+
INSTALL_DIR="$OPENCLAW_DIR/extensions/openclaw-enhance"
|
|
48
|
+
mkdir -p "$INSTALL_DIR"
|
|
49
|
+
cd "$INSTALL_DIR"
|
|
50
|
+
npm init -y --silent 2>/dev/null || true
|
|
51
|
+
npm install "$NPM_PACKAGE" --silent
|
|
52
|
+
cd - >/dev/null
|
|
53
|
+
fi
|
|
54
|
+
echo -e "${GREEN}✓${NC} 插件已安装"
|
|
55
|
+
|
|
56
|
+
# ── 3. 定位插件文件 ──
|
|
57
|
+
PLUGIN_DIR=""
|
|
58
|
+
for candidate in \
|
|
59
|
+
"$OPENCLAW_DIR/extensions/openclaw-enhance/node_modules/$NPM_PACKAGE" \
|
|
60
|
+
"$OPENCLAW_DIR/extensions/openclaw-enhance" \
|
|
61
|
+
"$(dirname "$(readlink -f "$0" 2>/dev/null || echo "$0")")/.."; do
|
|
62
|
+
if [ -f "$candidate/openclaw.plugin.json" ]; then
|
|
63
|
+
PLUGIN_DIR="$candidate"
|
|
64
|
+
break
|
|
65
|
+
fi
|
|
66
|
+
done
|
|
67
|
+
|
|
68
|
+
if [ -z "$PLUGIN_DIR" ]; then
|
|
69
|
+
echo -e "${YELLOW}⚠ 无法定位插件文件目录,跳过技能和模板安装${NC}"
|
|
70
|
+
echo " 你可以手动从 npm 包中复制 skills/ 和 templates/ 到工作区"
|
|
71
|
+
else
|
|
72
|
+
# ── 4. 复制增强技能 ──
|
|
73
|
+
echo ""
|
|
74
|
+
echo -e "${CYAN}正在安装增强技能...${NC}"
|
|
75
|
+
SKILLS_DIR="$OPENCLAW_DIR/workspace/skills"
|
|
76
|
+
mkdir -p "$SKILLS_DIR"
|
|
77
|
+
|
|
78
|
+
for skill in plan-mode explore-mode verify-mode memory-curator; do
|
|
79
|
+
if [ -d "$PLUGIN_DIR/skills/$skill" ]; then
|
|
80
|
+
if [ -d "$SKILLS_DIR/$skill" ]; then
|
|
81
|
+
echo -e " ${YELLOW}⚠ $skill 已存在,跳过${NC}"
|
|
82
|
+
else
|
|
83
|
+
cp -r "$PLUGIN_DIR/skills/$skill" "$SKILLS_DIR/"
|
|
84
|
+
echo -e " ${GREEN}✓${NC} $skill"
|
|
85
|
+
fi
|
|
86
|
+
fi
|
|
87
|
+
done
|
|
88
|
+
|
|
89
|
+
# ── 5. 应用工作区模板补丁 ──
|
|
90
|
+
echo ""
|
|
91
|
+
echo -e "${CYAN}正在应用工作区增强...${NC}"
|
|
92
|
+
WS_DIR="$OPENCLAW_DIR/workspace"
|
|
93
|
+
|
|
94
|
+
for file in AGENTS.md SOUL.md; do
|
|
95
|
+
patch_file="$PLUGIN_DIR/templates/${file%.md}.enhance-patch.md"
|
|
96
|
+
target_file="$WS_DIR/$file"
|
|
97
|
+
|
|
98
|
+
if [ ! -f "$patch_file" ]; then
|
|
99
|
+
continue
|
|
100
|
+
fi
|
|
101
|
+
|
|
102
|
+
if [ ! -f "$target_file" ]; then
|
|
103
|
+
echo -e " ${YELLOW}⚠ $target_file 不存在,跳过${NC}"
|
|
104
|
+
continue
|
|
105
|
+
fi
|
|
106
|
+
|
|
107
|
+
# 检查是否已经打过补丁
|
|
108
|
+
if grep -q "龙虾增强包补丁" "$target_file" 2>/dev/null; then
|
|
109
|
+
echo -e " ${YELLOW}⚠ $file 已包含增强补丁,跳过${NC}"
|
|
110
|
+
continue
|
|
111
|
+
fi
|
|
112
|
+
|
|
113
|
+
# 备份并追加
|
|
114
|
+
cp "$target_file" "${target_file}.bak.$(date +%Y%m%d%H%M%S)"
|
|
115
|
+
cat "$patch_file" >> "$target_file"
|
|
116
|
+
echo -e " ${GREEN}✓${NC} $file 已增强(备份: ${file}.bak.*)"
|
|
117
|
+
done
|
|
118
|
+
fi
|
|
119
|
+
|
|
120
|
+
# ── 6. 打印完成信息 ──
|
|
121
|
+
echo ""
|
|
122
|
+
echo -e "${GREEN}═══════════════════════════════════════════${NC}"
|
|
123
|
+
echo -e "${GREEN} 🦞 龙虾增强包安装完成!${NC}"
|
|
124
|
+
echo -e "${GREEN}═══════════════════════════════════════════${NC}"
|
|
125
|
+
echo ""
|
|
126
|
+
echo " 已安装模块:"
|
|
127
|
+
echo " 📦 结构化记忆 (enhance_memory_store/search/review)"
|
|
128
|
+
echo " 🛡️ 工具安全守卫 (enhance_safety_log/rules)"
|
|
129
|
+
echo " ✨ 提示词增强 (自动注入)"
|
|
130
|
+
echo " 🔄 工作流自动化 (enhance_workflow_define/list/delete)"
|
|
131
|
+
echo " 📊 仪表盘 (http://localhost:18789/enhance/)"
|
|
132
|
+
echo ""
|
|
133
|
+
echo " 已安装技能:"
|
|
134
|
+
echo " 📋 plan-mode — 结构化规划"
|
|
135
|
+
echo " 🔍 explore-mode — 深度探索"
|
|
136
|
+
echo " ✅ verify-mode — 验证检查"
|
|
137
|
+
echo " 🧠 memory-curator — 记忆整理"
|
|
138
|
+
echo ""
|
|
139
|
+
echo -e " ${CYAN}重启 OpenClaw 使插件生效:${NC}"
|
|
140
|
+
echo " openclaw restart"
|
|
141
|
+
echo ""
|
|
142
|
+
echo -e " ${CYAN}配置(可选):${NC}"
|
|
143
|
+
echo " 编辑 $OPENCLAW_DIR/openclaw.json → plugins.entries.enhance.config"
|
|
144
|
+
echo ""
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: explore-mode
|
|
3
|
+
description: "深度探索模式 — 系统性调研代码库、系统或话题,只读不改。借鉴 Claude Code 的 Explore Agent。"
|
|
4
|
+
homepage: https://github.com/jobzhao15/openclaw-enhance
|
|
5
|
+
metadata: { "openclaw": { "emoji": "🔍", "requires": { "bins": [] } } }
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 探索模式 (Explore Mode)
|
|
9
|
+
|
|
10
|
+
进入只读深度探索模式,在回答前系统性地调研。
|
|
11
|
+
|
|
12
|
+
## 使用时机
|
|
13
|
+
|
|
14
|
+
✅ **使用此技能当:**
|
|
15
|
+
- "帮我了解一下这个项目的架构"
|
|
16
|
+
- "这个功能是怎么实现的?"
|
|
17
|
+
- "调查一下为什么会出这个 bug"
|
|
18
|
+
- 需要全面理解一个不熟悉的代码库或系统
|
|
19
|
+
|
|
20
|
+
❌ **不要使用当:**
|
|
21
|
+
- 已经很了解要查的内容
|
|
22
|
+
- 用户只是问一个简单的事实性问题
|
|
23
|
+
|
|
24
|
+
## 探索流程
|
|
25
|
+
|
|
26
|
+
### 1. 确定探索目标
|
|
27
|
+
- 要回答什么问题?
|
|
28
|
+
- 探索的范围是什么?(哪些目录/文件/系统)
|
|
29
|
+
- 需要达到什么深度?
|
|
30
|
+
|
|
31
|
+
### 2. 广度优先扫描
|
|
32
|
+
- 先看目录结构,建立全局认知
|
|
33
|
+
- 读 README、配置文件、入口文件
|
|
34
|
+
- 识别主要模块和它们的关系
|
|
35
|
+
|
|
36
|
+
### 3. 深度定向调研
|
|
37
|
+
- 针对目标问题,深入相关模块
|
|
38
|
+
- 跟踪关键调用链
|
|
39
|
+
- 查看测试用例理解预期行为
|
|
40
|
+
- 查看 git log 了解变更历史
|
|
41
|
+
|
|
42
|
+
### 4. 输出探索报告
|
|
43
|
+
结构化输出:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
## 探索报告: [主题]
|
|
47
|
+
|
|
48
|
+
### 概述
|
|
49
|
+
一段话总结发现
|
|
50
|
+
|
|
51
|
+
### 架构/实现
|
|
52
|
+
- 关键文件和它们的职责
|
|
53
|
+
- 核心数据流/调用链
|
|
54
|
+
- 重要的设计决策
|
|
55
|
+
|
|
56
|
+
### 发现
|
|
57
|
+
- 发现1: ...
|
|
58
|
+
- 发现2: ...
|
|
59
|
+
|
|
60
|
+
### 回答
|
|
61
|
+
[针对原始问题的直接回答]
|
|
62
|
+
|
|
63
|
+
### 建议(可选)
|
|
64
|
+
如果发现了问题或改进空间
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 核心原则
|
|
68
|
+
- **只读不改** — 探索阶段不修改任何文件
|
|
69
|
+
- **系统性** — 不要只看一个文件就下结论,要交叉验证
|
|
70
|
+
- **记录路径** — 给出具体的文件路径和行号,方便用户定位
|
|
71
|
+
- **区分事实和推测** — 明确标注哪些是从代码看到的,哪些是推断的
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: memory-curator
|
|
3
|
+
description: "记忆整理技能 — 审查结构化记忆,提取洞察,更新 MEMORY.md,清理过期条目。"
|
|
4
|
+
homepage: https://github.com/jobzhao15/openclaw-enhance
|
|
5
|
+
metadata: { "openclaw": { "emoji": "🧠", "requires": { "bins": [] } } }
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 记忆整理 (Memory Curator)
|
|
9
|
+
|
|
10
|
+
定期整理和优化结构化记忆系统。
|
|
11
|
+
|
|
12
|
+
## 使用时机
|
|
13
|
+
|
|
14
|
+
✅ **使用此技能当:**
|
|
15
|
+
- "整理一下记忆"、"清理过期记忆"
|
|
16
|
+
- 定期维护(建议每周一次)
|
|
17
|
+
- 记忆条目数量过多需要精简
|
|
18
|
+
- 需要从记忆中提取总结更新到 MEMORY.md
|
|
19
|
+
|
|
20
|
+
## 整理流程
|
|
21
|
+
|
|
22
|
+
### 1. 审查当前状态
|
|
23
|
+
```
|
|
24
|
+
调用 enhance_memory_review action=stats 查看各类别统计
|
|
25
|
+
调用 enhance_memory_review action=recent limit=30 查看最近记忆
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### 2. 清理过期/无效记忆
|
|
29
|
+
检查每条记忆是否仍然有效:
|
|
30
|
+
- **project 类**: 项目状态可能已变化,验证后决定保留或删除
|
|
31
|
+
- **feedback 类**: 用户反馈通常长期有效,谨慎删除
|
|
32
|
+
- **user 类**: 用户信息通常稳定,少量更新
|
|
33
|
+
- **reference 类**: 链接/资源可能已过期,检查后决定
|
|
34
|
+
- **decision 类**: 决策通常长期有效,除非被推翻
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
调用 enhance_memory_review action=delete id=<过期记忆ID>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 3. 合并重复记忆
|
|
41
|
+
如果多条记忆说的是同一件事:
|
|
42
|
+
1. 创建一条更完整的合并记忆
|
|
43
|
+
2. 删除旧的重复条目
|
|
44
|
+
|
|
45
|
+
### 4. 同步到 MEMORY.md
|
|
46
|
+
将最重要的结构化记忆摘要写入 MEMORY.md:
|
|
47
|
+
- 只写长期有效、高重要性的内容
|
|
48
|
+
- 按类别组织
|
|
49
|
+
- 保持简洁
|
|
50
|
+
|
|
51
|
+
### 5. 输出整理报告
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
## 记忆整理报告
|
|
55
|
+
|
|
56
|
+
### 统计
|
|
57
|
+
- 整理前: XX 条
|
|
58
|
+
- 删除: X 条(原因: ...)
|
|
59
|
+
- 合并: X 条 → X 条
|
|
60
|
+
- 新增: X 条
|
|
61
|
+
- 整理后: XX 条
|
|
62
|
+
|
|
63
|
+
### 操作记录
|
|
64
|
+
1. 删除 #12: 过期的项目截止日期
|
|
65
|
+
2. 合并 #15 + #18 → #23: 用户偏好
|
|
66
|
+
3. ...
|
|
67
|
+
|
|
68
|
+
### MEMORY.md 更新
|
|
69
|
+
[是否更新了 MEMORY.md,更新了什么]
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## 核心原则
|
|
73
|
+
- **保守删除** — 不确定就保留,宁多勿少
|
|
74
|
+
- **feedback 最珍贵** — 用户反馈是最难重新获取的记忆类型
|
|
75
|
+
- **验证后再删** — 对 project 类记忆,先确认项目状态再决定
|
|
76
|
+
- **MEMORY.md 是精华** — 只把最重要的同步过去,不要全量复制
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-mode
|
|
3
|
+
description: "结构化规划模式 — 在执行复杂任务前先做系统性规划。借鉴 Claude Code 的 Plan Agent。"
|
|
4
|
+
homepage: https://github.com/jobzhao15/openclaw-enhance
|
|
5
|
+
metadata: { "openclaw": { "emoji": "📋", "requires": { "bins": [] } } }
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 规划模式 (Plan Mode)
|
|
9
|
+
|
|
10
|
+
在执行复杂或多步骤任务前,进入结构化规划模式。
|
|
11
|
+
|
|
12
|
+
## 使用时机
|
|
13
|
+
|
|
14
|
+
✅ **使用此技能当:**
|
|
15
|
+
- 用户请求涉及多个步骤的复杂任务
|
|
16
|
+
- "帮我规划一下..."、"设计一个方案..."
|
|
17
|
+
- 需要在动手前理清思路
|
|
18
|
+
- 修改涉及多个文件或系统
|
|
19
|
+
|
|
20
|
+
❌ **不要使用当:**
|
|
21
|
+
- 简单的单步操作(改个名字、修个 typo)
|
|
22
|
+
- 用户明确要求直接执行
|
|
23
|
+
|
|
24
|
+
## 规划流程
|
|
25
|
+
|
|
26
|
+
### 阶段一:理解需求
|
|
27
|
+
1. **复述需求** — 用自己的话总结用户要做什么
|
|
28
|
+
2. **识别约束** — 有什么限制条件?时间、兼容性、依赖?
|
|
29
|
+
3. **提出澄清问题** — 如果有不确定的地方,先问清楚再规划
|
|
30
|
+
|
|
31
|
+
### 阶段二:调研现状
|
|
32
|
+
1. **读相关代码** — 理解现有实现,不要凭空设计
|
|
33
|
+
2. **找可复用的** — 搜索已有的函数、工具、模式
|
|
34
|
+
3. **识别风险** — 哪些地方可能出问题?
|
|
35
|
+
|
|
36
|
+
### 阶段三:设计方案
|
|
37
|
+
输出结构化方案:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
## 背景
|
|
41
|
+
为什么要做这个改动?解决什么问题?
|
|
42
|
+
|
|
43
|
+
## 方案
|
|
44
|
+
### 步骤 1: [描述]
|
|
45
|
+
- 修改文件: path/to/file
|
|
46
|
+
- 具体操作: ...
|
|
47
|
+
- 复用已有: function_name from file
|
|
48
|
+
|
|
49
|
+
### 步骤 2: [描述]
|
|
50
|
+
...
|
|
51
|
+
|
|
52
|
+
## 风险与回退
|
|
53
|
+
- 风险1: ... → 缓解措施: ...
|
|
54
|
+
|
|
55
|
+
## 验证方式
|
|
56
|
+
- [ ] 怎么确认改动正确?
|
|
57
|
+
- [ ] 运行什么测试?
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 阶段四:确认执行
|
|
61
|
+
- 将方案展示给用户
|
|
62
|
+
- 等待用户确认后再开始执行
|
|
63
|
+
- 执行过程中逐步标记完成
|
|
64
|
+
|
|
65
|
+
## 核心原则
|
|
66
|
+
- **先理解,再设计,最后执行** — 不要一上来就写代码
|
|
67
|
+
- **方案要具体** — 具体到哪个文件哪个函数,不要泛泛而谈
|
|
68
|
+
- **复用优先** — 能用已有的就不要重新造
|
|
69
|
+
- **最小变更** — 只改需要改的,不顺手重构
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: verify-mode
|
|
3
|
+
description: "验证模式 — 检查工作成果、运行测试、验证假设。借鉴 Claude Code 的 Verification Agent。"
|
|
4
|
+
homepage: https://github.com/jobzhao15/openclaw-enhance
|
|
5
|
+
metadata: { "openclaw": { "emoji": "✅", "requires": { "bins": [] } } }
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 验证模式 (Verify Mode)
|
|
9
|
+
|
|
10
|
+
系统性地验证工作成果或假设。
|
|
11
|
+
|
|
12
|
+
## 使用时机
|
|
13
|
+
|
|
14
|
+
✅ **使用此技能当:**
|
|
15
|
+
- 完成一段代码修改后需要验证
|
|
16
|
+
- "帮我检查一下这个改动有没有问题"
|
|
17
|
+
- 需要运行测试并分析结果
|
|
18
|
+
- 验证一个假设或排查一个 bug
|
|
19
|
+
|
|
20
|
+
❌ **不要使用当:**
|
|
21
|
+
- 只是普通的代码 review(直接 review 即可)
|
|
22
|
+
- 改动很小且显而易见正确
|
|
23
|
+
|
|
24
|
+
## 验证流程
|
|
25
|
+
|
|
26
|
+
### 1. 确定验证目标
|
|
27
|
+
- 要验证什么?(功能正确性 / 性能 / 安全 / 兼容性)
|
|
28
|
+
- 成功标准是什么?
|
|
29
|
+
- 已知的风险点?
|
|
30
|
+
|
|
31
|
+
### 2. 静态检查
|
|
32
|
+
- 读改动的代码,检查逻辑正确性
|
|
33
|
+
- 检查边界条件和错误处理
|
|
34
|
+
- 检查是否引入了安全漏洞(注入、XSS 等)
|
|
35
|
+
- 检查是否破坏了已有接口或行为
|
|
36
|
+
|
|
37
|
+
### 3. 动态验证
|
|
38
|
+
- 运行已有的测试套件
|
|
39
|
+
- 如果没有测试,手动构造测试场景
|
|
40
|
+
- 检查构建是否通过
|
|
41
|
+
- 如果有 linter/formatter,运行一下
|
|
42
|
+
|
|
43
|
+
### 4. 输出验证报告
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
## 验证报告
|
|
47
|
+
|
|
48
|
+
### 验证对象
|
|
49
|
+
[简要描述被验证的改动/假设]
|
|
50
|
+
|
|
51
|
+
### 检查清单
|
|
52
|
+
- [x] 逻辑正确性: 通过/发现问题
|
|
53
|
+
- [x] 边界条件: ...
|
|
54
|
+
- [x] 测试结果: X pass / Y fail
|
|
55
|
+
- [x] 构建状态: 通过/失败
|
|
56
|
+
- [ ] 安全检查: ...
|
|
57
|
+
|
|
58
|
+
### 发现的问题
|
|
59
|
+
1. [问题描述 + 严重程度 + 建议修复方式]
|
|
60
|
+
|
|
61
|
+
### 结论
|
|
62
|
+
✅ 验证通过 / ⚠️ 有待修复的问题 / ❌ 验证失败
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## 核心原则
|
|
66
|
+
- **全面但聚焦** — 覆盖主要风险点,但不要检查无关的东西
|
|
67
|
+
- **给出证据** — "测试 X 通过了"、"第 42 行可能有空指针",不要泛泛地说"看起来没问题"
|
|
68
|
+
- **区分严重程度** — 阻塞性问题 vs 建议性改进
|
|
69
|
+
- **可操作** — 发现问题就给出具体修复建议
|