# 03 · 行动生命周期 — 自我进化的知识网络

> 一个能主动监控物料库存、在断供前自动预警的知识网络。

## 场景背景

每天早上，采购员需要打开库存台账，手动找出哪些物料的库存已低于安全线、需要紧急补货。
漏掉一个，生产线可能停工。

## 这个示例展示什么

知识网络不是静态的查询层。定义**行动类型**和**调度计划**之后，它开始自主运转：

- **发现正确的实体** — 识别出 `material_risk == critical` 的物料对象
- **触发跟进行动** — 调用你的业务系统发起补货预警
- **自动留存记录** — 完整的操作审计在 `action-log` 中

采购员 8 点到岗，补货清单已经在那里了。

## 前置条件

- `kweaver` CLI ≥ 0.6.4，且已登录（`kweaver auth whoami`）
- MySQL 可从 kweaver 平台访问
- 本机安装 Python 3

## 快速开始

```bash
cp env.sample .env
# 填写 .env 中的数据库信息
./run.sh
```

## 流程说明

| 步骤 | 发生了什么 |
|------|-----------|
| 1 | 连接 MySQL 数据源 |
| 2 | 导入 CSV → 构建知识网络（库存 + 生产工单） |
| 3–5 | 注册行动工具后端 |
| 6 | 定义行动类型：*"找到 material_risk == critical 的物料，触发补货预警"* |
| 7 | 查询确认：发现 3 个库存告急的物料（MAT-001/003/005） |
| 8–9 | 设定调度：每天早上 08:00 自动运行 |
| 10 | 手动触发一次，立即查看结果 |
| 11 | 审计日志：知识网络自主行动的完整记录 |

## 关于执行状态

Demo 工具后端不做真实的数据写回（写回是你的业务系统的职责）。执行结果在工具层面
可能显示 `failed`，但执行记录和审计日志仍然正常写入。生产环境中，将工具绑定替换为
你的 ERP 或通知接口即可。

## 资源清理

脚本退出时（无论成功或失败）自动清理所有创建的资源。
