---
name: luoke-knowledge
description: '洛克王国：世界的记忆存储技能，用于保存已学习映射与游戏事实。支持保存/查询/删除意图到动作的知识（如 "open map" -> "press m"）以及可复用事实。适用于用户教学或回忆历史游戏知识。'
metadata:
  requires:
    bins: ["python3"]
---

# 游戏知识库

**平台：跨平台** - 纯 Python，无 Windows 依赖

学习并召回游戏特定映射与自定义动作。

## 能力

- **保存**：存储按键绑定、动作映射、游戏事实
- **查询**：按意图或关键词检索知识
- **列出**：查看全部已学习知识
- **删除**：移除错误或过时知识

## 知识类型

| 类型 | 示例 | 存储形式 |
|------|------|---------|
| key_binding | "按 M 打开地图" | `{"intent": "open map", "action": "press m"}` |
| custom_action | "治疗是先按 1 再按 e" | `{"intent": "heal", "action": "press 1, press e"}` |
| game_fact | "Boss 在 10 分钟刷新" | `{"fact": "boss spawn time", "value": "10 minutes"}` |

## 用法

### 保存知识

```bash
# 按键绑定
python3 {baseDir}/scripts/save_knowledge.py --intent "open map" --action "press m"

# 自定义动作序列
python3 {baseDir}/scripts/save_knowledge.py --intent "heal" --action "press 1, wait 0.5 sec, press e"

# 游戏事实
python3 {baseDir}/scripts/save_knowledge.py --fact "boss spawn time" --value "10 minutes"
```

### 查询知识

```bash
# 按意图查询
python3 {baseDir}/scripts/query_knowledge.py "open map"
# 返回: {"intent": "open map", "action": "press m"}

# 按关键词查询
python3 {baseDir}/scripts/query_knowledge.py "heal"
# 返回: {"intent": "heal", "action": "press 1, wait 0.5 sec, press e"}
```

### 列出全部知识

```bash
python3 {baseDir}/scripts/list_knowledge.py
```

### 删除知识

```bash
python3 {baseDir}/scripts/delete_knowledge.py --intent "open map"
```

## 与 Agent 的联动

当用户说：
- **“记住按 M 打开地图”** -> `save_knowledge.py --intent "open map" --action "press m"`
- **“打开地图”** -> `query_knowledge.py "open map"` -> 执行返回动作

## 存储位置

知识保存到：`~/.luoke-aw/knowledge.json`

```json
{
  "key_bindings": [
    {"intent": "open map", "action": "press m", "learned_at": "2026-03-30T10:30:00"}
  ],
  "custom_actions": [
    {"intent": "heal", "action": "press 1, press e", "learned_at": "2026-03-30T10:31:00"}
  ],
  "game_facts": [
    {"fact": "boss spawn time", "value": "10 minutes", "learned_at": "2026-03-30T10:32:00"}
  ]
}
```

## 示例

```bash
# 用户：“记住按 M 打开地图”
save_knowledge.py --intent "open map" --action "press m"

# 稍后用户：“打开地图”
RESULT=$(query_knowledge.py "open map")
ACTION=$(echo $RESULT | jq -r '.action')
parse_action.py "$ACTION" --execute
```
