oclaw/docs/presentations/oclaw-netx-ops-expert.md
oliver aff11c1eae Reduce WhatsApp ops tool friction with looser xlsx/file schemas and short-intent playbooks.
Production usage showed schema mismatches and multi-tool loops; accept common arg aliases and route agents to <=3-call alarm recipes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:32:44 +08:00

649 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Oclaw 智能运维 — Oclaw + netx 运维专家介绍
> 证据驱动 · 告警闭环 · 多渠道触达 · 可编排自动化
---
## 1. 整体定位
**Oclaw** 是自托管的多专家 AI Agent 平台,提供 Admin、Chat 以及微信/WhatsApp 等渠道接入。
**netx** 是告警-centric 的网络运维平台,负责 UME 告警同步、网元纳管与只读 CLI 执行。
**运维专家(ops specialist)** 是 Oclaw 中的网络运维角色,对外 persona 为「**oclaw智能运维**」。它与 netx 深度集成,形成「数据面 + 推理面」的完整运维闭环。
| 项目 | 角色 | 核心职责 |
|------|------|----------|
| Oclaw | AI 交互与编排层 | Agent 推理、工具调用、Skills、渠道回复 |
| netx | 数据与设备执行层 | 告警采集/查询、网元纳管、安全 CLI |
| 运维专家 | Oclaw 中的 ops 专家 | 查告警、诊断网元、生成报告、触发自动化 |
```mermaid
flowchart LR
subgraph User["用户与渠道"]
Chat[Chat / Admin]
WA[WhatsApp 值班群]
end
subgraph Oclaw["Oclaw"]
GW[Gateway / 路由]
Ops[运维专家 Agent]
Skills[Skills + MCP]
end
subgraph netx["netx"]
API[FastAPI :8890]
PG[(PostgreSQL)]
UME[ZTE UME]
end
Chat --> GW
WA --> GW
GW --> Ops
Ops --> Skills
Skills -->|MCP 13 工具| API
API --> PG
UME --> API
API -->|AI 分析 / 告警推送| Oclaw
```
---
## 2. Oclaw 平台概览
### 2.1 用户入口
- **Admin**:`http://127.0.0.1:8787/admin` — 配置 MCP、专家、渠道、模型
- **Chat**:`http://127.0.0.1:8787/chat` — 与专家对话
- **渠道**:微信、WhatsApp、企微等,可绑定默认专家
### 2.2 专家体系
| specialist | 说明 |
|------------|------|
| **ops** | 网络运维专家(本文重点) |
| generalist | 通用任务 |
| memory | 知识/记忆 |
| image / video / stock | 专项能力 |
### 2.3 交互模式
- **expert**:用户直连某一专家(如 ops)
- **comprehensive**:经理 Agent 编排,按任务委派给 ops 等专家
### 2.4 分层架构
```
runtime/ Agent 循环、路由、Skills、调度
interfaces/ HTTP/WS、Admin UI、Gateway
platform/ 配置、持久化、LLM 传输
tools/ 专家工具、公共工具、MCP 适配
skills/ 可安装技能包(SKILL.md)
```
### 2.5 消息处理流程
```mermaid
flowchart TD
A[入站消息] --> B{渠道路由}
B -->|specialist=ops| C[NetworkOpsAgent]
B -->|comprehensive| D[Manager Agent]
D -->|委派网络任务| C
C --> E[加载 ROLE_SYSTEM + Skills]
E --> F[工具集: network_ops + memory + MCP]
F --> G{Agent 循环}
G -->|调工具拿证据| H[netx / 文件 / 调度等]
H --> G
G -->|生成结论| I[文本 / 附件 / 定时任务]
I --> J[Chat / 渠道回复]
```
---
## 3. 运维专家(Ops Expert)
### 3.1 身份与实现
| 项 | 值 |
|----|-----|
| specialist ID | `ops` |
| 对外名称 | oclaw智能运维 |
| 工具包 | `network_ops+memory` |
| Agent 类 | `NetworkOpsAgent` |
| 角色定义 | `runtime/workspaces/ops/ROLE_SYSTEM.md` |
### 3.2 核心原则
1. **证据优先** — 先用工具查日志、状态、配置,再下结论
2. **变更安全** — 破坏性操作需明确影响范围与回滚方案
3. **可验证输出** — 结论 → 证据 → 最小修复步骤
4. **网元展示** — 一律以 `host_name` 为主键,禁止对用户展示 UUID `ne_id`
### 3.3 工具来源
```mermaid
flowchart TB
Ops[运维专家 Agent]
Ops --> EN[Expert 工具\nnetwork_ops + memory]
Ops --> PU[Public 工具\nread_file / schedule_create 等]
Ops --> MCP[MCP 工具\nmcp__netx__*]
EN --> NT[netx_tools.py\n可选 legacy inline]
MCP --> NX[netx MCP Server\n13 个工具]
```
---
## 4. netx 平台概览
### 4.1 定位与技术栈
netx 是面向 ZTE UME 环境的网络运维平台(v0.2),提供 Web UI、REST API 与 MCP 接入。
| 组件 | 技术 |
|------|------|
| 后端 | Python 3.11+ / FastAPI / PostgreSQL / Netmiko |
| 前端 | React 19 + Vite |
| 默认端口 | API `:8890`,Web UI `:5173` |
### 4.2 数据来源
- **主路径**:UME RESTCONF + WSS 实时订阅(当前告警、网元清单)
- **兼容路径**:ZTE Alarm Monitor Excel 导入
### 4.3 核心模块
| 模块 | 路径 | 能力 |
|------|------|------|
| UME 同步 | `netx_api/ume_sync_service.py` | 告警/网元定时与实时同步 |
| 只读 CLI | `netx_api/ne_exec.py` | 安全的 show/display/ping 执行 |
| 纳管网元 | `netx_api/managed_ne_router.py` | SSH/Telnet 设备 CRUD、跳板机 |
| MCP 代理 | `packages/netx-mcp/` | stdio → HTTP,不直连数据库 |
| Oclaw 桥接 | `netx_api/ap_client.py` | AI 分析回调 |
| 告警推送 | `netx_api/oclaw_alarm_forwarder.py` | 关键告警 WebSocket 转发 |
### 4.4 netx 内部架构
```mermaid
flowchart TB
subgraph Sources["数据源"]
UME[ZTE UME RESTCONF + WSS]
Excel[Alarm Monitor Excel]
end
subgraph Backend["netx_api"]
Main[main.py FastAPI]
Sync[ume_sync_service]
Exec[ne_exec.py]
AP[ap_client → Oclaw]
FWD[oclaw_alarm_forwarder]
end
subgraph Storage["存储"]
PG[(PostgreSQL)]
end
subgraph Access["访问层"]
Web[React Web UI :5173]
MCP[netx-mcp :8890 API]
end
UME --> Sync
Excel --> Main
Sync --> PG
Main --> PG
Exec --> PG
Web --> Main
MCP --> Main
AP --> Oclaw[Oclaw analyze-sync]
FWD --> Oclaw
```
---
## 5. Oclaw ↔ netx 双向集成
### 5.1 三个集成方向
| 方向 | 机制 | 用途 |
|------|------|------|
| Oclaw → netx | MCP(13 工具) | 运维专家查告警、网元、执行 CLI |
| netx → Oclaw | `POST /v1/ap/analyze` | Web UI 一键 AI 告警分析 |
| netx → Oclaw | WebSocket 告警推送 | 关键告警即时通知到渠道 |
### 5.2 集成时序
```mermaid
sequenceDiagram
participant U as 用户 / 渠道
participant O as Oclaw 运维专家
participant M as netx MCP
participant N as netx API
participant E as UME / 设备
U->>O: 查当前 Critical 告警 Top 10
O->>M: mcp__netx__aggregateUmeAlarms
M->>N: GET /v1/ume/alarms/aggregate
N->>E: 读 PG(已同步数据)
N-->>O: 按 host_name 聚合结果
O-->>U: 结论 + 证据 + 建议步骤
Note over N,O: 反向:netx Web UI 触发 AI 分析
N->>O: POST analyze-sync(带告警上下文)
O-->>N: AI 分析结论
Note over N,O: 反向:关键告警推送
E->>N: WSS 新告警
N->>O: WebSocket netx-bridge
O->>U: WhatsApp / 微信通知
```
### 5.3 认证与环境变量
| 用途 | netx | Oclaw |
|------|------|-------|
| AI 分析桥 | `NETX_OCLAW_ANALYZE_TOKEN` | `OCLAW_OPS_AI_SHARED_TOKEN` |
| 告警 WS | `NETX_OCLAW_ALARM_WS_URL` | `ws://127.0.0.1:8787/ws/netx-bridge` |
| MCP 地址 | — | MCP env `NETX_API_URL=http://127.0.0.1:8890` |
详细说明见 [`docs/NETX_MCP_INTEGRATION.md`](../NETX_MCP_INTEGRATION.md)。
---
## 6. MCP 工具一览
在 Oclaw Admin 安装 MCP(`server_id=netx`)并绑定到 ops 专家后,工具以 `mcp__netx__<toolName>` 形式注入。
### UME 告警
| 工具 | 说明 |
|------|------|
| `queryUmeAlarms` | 分页查询当前告警 |
| `aggregateUmeAlarms` | 按维度聚合统计 |
| `runUmeDiagnostics` | 运行诊断规则 |
### UME 网元
| 工具 | 说明 |
|------|------|
| `queryUmeNeInventory` | 网元清单查询 |
| `getUmeNe` | 单个网元详情 |
### 深查分析
| 工具 | 说明 |
|------|------|
| `queryUmeAlarmsRaw` | 原始字段查询 |
| `aggregateUmeAlarmsRaw` | 原始字段聚合 |
| `listUmeAlarmFields` | 可用字段列表 |
| `sqlQueryUme` | 只读 SQL 查询 |
### 纳管网元 CLI
| 工具 | 说明 |
|------|------|
| `listManagedNe` | 列出纳管设备 |
| `getManagedNe` | 设备详情 |
| `execManagedNe` | 执行只读 CLI |
| `listCliTargets` | 可用 CLI 目标 |
---
## 7. 只读 CLI 安全模型
`ne_exec.py` 是 netx 设备自动化的安全核心,对应 MCP 工具 `execManagedNe`。
```mermaid
flowchart TD
A[execManagedNe 请求] --> B{命令校验}
B -->|show/display/ping| C[解析目标设备]
B -->|configure/reload/delete 等| X[拒绝]
C --> D{目标类型}
D -->|纳管网元| E[SSH/Telnet + Netmiko]
D -->|UME 网元| F[Lazy CLI Profile]
E --> G[执行 ≤5 条命令]
F --> G
G --> H[输出 ≤32KB]
H --> I[结构化返回]
```
**约束摘要:**
- 允许前缀:`show`、`display`、`ping`、`ping6`
- 禁止:`configure terminal`、`reload`、`commit`、`delete` 等
- 单次最多 5 条命令,输出上限 32KB
- 凭证 Fernet 加密,需 `NETX_CREDENTIAL_SECRET_KEY`
---
## 8. Ops 专属 Playbook(Skills)
运维专家处理 netx 相关任务时,须加载对应技能:
| Skill | 路径 | 场景 |
|-------|------|------|
| `ops-netx-ume-playbook` | `skills/_workspace/ops/ops-netx-ume-playbook/` | UME 告警查询/聚合/诊断、网元清单 |
| `ops-netx-managed-ne-playbook` | `skills/_workspace/ops/ops-netx-managed-ne-playbook/` | 纳管设备 SSH/Telnet 只读巡检 |
所有专家也可使用的公共技能:
| Skill | 场景 |
|-------|------|
| `scheduled-workflows` | 周期性多步运维任务(告警周报 → PDF → 发群) |
| `channel-file-delivery` | CSV/PDF 报告通过渠道附件发送 |
Ops 私有技能安装目录:`skills/_workspace/ops/<name>/`(`public=false`)。
---
## 9. 自动化场景
### 9.1 定时告警周报
```mermaid
flowchart LR
A[用户描述需求] --> B[schedule_propose\n生成 recipe 草案]
B --> C[用户确认]
C --> D[schedule_create]
D --> E[Scheduler Worker]
E --> F[ops 身份执行]
F --> G[查 netx 告警]
G --> H[生成 PDF]
H --> I[WhatsApp 群发附件]
```
示例:「每周一 9:00 汇总上周值班告警,生成 PDF,发到 WhatsApp 群」
Recipe 自包含,worker 执行时不依赖原始聊天上下文;创建者专家(ops)的工具上下文会被继承。
### 9.2 关键告警实时推送
netx 匹配到关键告警后,经 WebSocket 推送到 Oclaw,再投递到已绑定的 **WhatsApp 告警群**(详见 [§10 WhatsApp 渠道应用](#10-whatsapp-渠道应用))。
### 9.3 Web UI AI 分析
netx 前端 Workbench 可调用 `/v1/ap/analyze`,将告警上下文发给 Oclaw 运维专家做智能分析。
---
## 10. WhatsApp 渠道应用
WhatsApp 是运维场景中最常用的**移动端触达渠道**:值班人员可在群里直接问告警、收周报、收关键告警推送,无需打开 Admin 或 netx Web UI。
### 10.1 技术架构
当前默认链路为 **Baileys sidecar**(WhatsApp Web 协议),不依赖外部 openclaw 服务:
```mermaid
flowchart TB
subgraph Mobile["移动端"]
Phone[WhatsApp 手机端]
Group[运维值班群]
end
subgraph Sidecar["WhatsApp Sidecar"]
Baileys[Baileys Runner\nruntime/operations/whatsapp_bridge/]
Auth[state/auth 登录态]
end
subgraph Oclaw["Oclaw Gateway :8787"]
Inbound[POST /inbound/whatsapp]
Route[渠道路由\nspecialist=ops]
Ops[运维专家 Agent]
OutQ[出站消息队列]
Bridge[WS /ws/netx-bridge]
end
subgraph netx["netx"]
Alarm[关键告警规则]
end
Phone <-->|扫码关联设备| Baileys
Baileys --> Auth
Group -->|群消息 / 私聊| Baileys
Baileys -->|转发入站| Inbound
Inbound --> Route --> Ops
Ops -->|replies + 附件| OutQ
OutQ -->|轮询 pending| Baileys
Baileys -->|回发| Group
Alarm -->|WebSocket netx.alarm| Bridge
Bridge --> OutQ
```
**关键路径:**
| 环节 | 端点 / 脚本 |
|------|-------------|
| 入站 | sidecar → `POST /inbound/whatsapp` → 返回 `replies[]` |
| 出站 | sidecar 轮询 `GET /whatsapp/outbound/pending` 并发送 |
| 登录态 | `data/channel_sidecar/whatsapp/state/auth/` |
| 扩展实现 | `runtime/extensions/whatsapp/` |
### 10.2 安装与设备绑定
```powershell
# 仓库根目录
powershell -ExecutionPolicy Bypass -File .\runtime\operations\scripts\whatsapp_install.ps1
powershell -ExecutionPolicy Bypass -File .\runtime\operations\scripts\whatsapp_login.ps1 # 控制台打印二维码
powershell -ExecutionPolicy Bypass -File .\runtime\operations\scripts\whatsapp_start.ps1
powershell -ExecutionPolicy Bypass -File .\runtime\operations\scripts\whatsapp_status.ps1
```
| 操作 | 说明 |
|------|------|
| 首次登录 | 手机 WhatsApp → 设置 → 已关联的设备 → 扫码 |
| 重启 sidecar | 一般无需重复扫码(登录态落盘) |
| 换号 / 解除关联 | 先 `whatsapp_stop.ps1 -Force`,删除 `state/auth`,再 `whatsapp_login.ps1` |
| 随全栈启动 | `scripts/start_all.ps1`(未安装 sidecar 时自动跳过并告警) |
### 10.3 路由到运维专家
在 Admin 将 WhatsApp 消息路由到 ops 专家,有两种配置入口:
| 配置位置 | 操作 |
|----------|------|
| **Stack 页面** | `WhatsApp dispatch` 控制卡 → 选「绑定专家」→ specialist 选 `ops` |
| **用户/渠道绑定** | `channel=whatsapp` → 按账号配置专家与模式 |
**交互模式:**
- **绑定专家(expert)**:所有消息直连 ops 运维专家(推荐运维群场景)
- **综合(comprehensive)**:经理 Agent 编排,网络任务委派给 ops
**优先级**:账号级配置 > 通道全局配置 > 默认(`expert + generalist`)
**用户归属绑定**(设备已连、需把联系人归属到团队用户):
1. Admin → 用户/渠道绑定 → 渠道选 `whatsapp`
2. 生成绑定码,用户向机器人发送:`bind <绑定码>`
### 10.4 群聊触发策略
WhatsApp 群聊默认**不会响应每条消息**,避免群内噪声触发 Agent:
| 规则 | 默认值 | 环境变量 |
|------|--------|----------|
| 需要 @ 机器人 | 开启 | `AIA_WHATSAPP_GROUP_REQUIRE_MENTION=1` |
| 文本触发词 | `/oclaw`、`|oclaw` | `AIA_WHATSAPP_GROUP_TRIGGERS` |
| 会话作用域 | 按群隔离 | `AIA_WHATSAPP_GROUP_SESSION_SCOPE` |
```mermaid
flowchart TD
A[群消息入站] --> B{是否 @ 了机器人?}
B -->|是| C[进入运维专家处理]
B -->|否| D{含触发词\n/oclaw 或 |oclaw?}
D -->|是| C
D -->|否| E[静默跳过]
C --> F[查 netx / 生成报告 / 回复]
```
私聊消息不受 @ 限制,直接路由到绑定专家。
### 10.5 运维应用场景
#### 场景一:群内交互式运维
值班人员在 WhatsApp 群 @ 机器人提问,运维专家通过 netx MCP 查告警、聚合统计、执行只读 CLI:
```text
用户(群内):@oclaw 查当前 Critical 告警 Top 5,按 host_name 排名
运维专家:
1. 加载 ops-netx-ume-playbook
2. mcp__netx__aggregateUmeAlarms(severity=critical, top_ne=5)
# 若需自定义维度:aggregateUmeAlarms(group_by=alarm_host_name, severity=critical, limit=5)
3. 返回结论 + 证据表格
```
#### 场景二:关键告警推送到值班群
netx 配置关键告警规则后,匹配到的告警实时推到 WhatsApp 群,无需人工刷新:
```mermaid
sequenceDiagram
participant UME as UME WSS
participant N as netx
participant WS as Oclaw netx-bridge
participant Q as 出站队列
participant SC as WhatsApp Sidecar
participant G as 值班群
UME->>N: 新告警事件
N->>N: key_alert_matcher 规则匹配
N->>WS: WebSocket event: netx.alarm
WS->>WS: 查 whatsapp_alert_binding
WS->>Q: enqueue_channel_outbound_message
SC->>Q: GET /whatsapp/outbound/pending
SC->>G: 发送告警文本
```
**告警消息格式示例:**
```text
[UME Alarm Raised] Fan
Device: ABC (1.1.1.1)
Object: ME{abc},FAN={/module=0}
Severity: major
Cause: Fan The fan speed level is abnormally high
Time: 2026-06-22T19:29:41.086+07:00
notificationId: 1680996323029
```
**Admin 配置告警群:**
1. 打开 Admin → WhatsApp 相关页面(或调用 API)
2. `GET /admin/api/whatsapp/groups` — 列出已知群(需 sidecar 运行且群内有消息)
3. `POST /admin/api/whatsapp/alert-binding` — 绑定 `group_jid` 并启用
4. `POST /admin/api/whatsapp/alert-binding/test` — 发送测试消息验证
#### 场景三:定时周报发到 WhatsApp 群
结合 `scheduled-workflows` + `channel-file-delivery` 技能:
```text
用户(群内):每周一 9 点把上周告警汇总成 PDF 发到这个群
流程:
1. schedule_propose → 生成自包含 recipe(含 netx 查询口径、PDF 路径、投递步骤)
2. 用户确认 preview_markdown
3. schedule_create(recipe=..., output.need_attachments=true)
4. 到点 worker 以 ops 身份执行 → 查 netx → 生成 PDF
5. save_deliverable_attachment → 投递到创建任务时的 WhatsApp 群
```
Recipe 中 `goal` 示例:
> 每周一 09:00 汇总上一自然周值班告警,生成 PDF 发到当前 WhatsApp 群并 @值班人
#### 场景四:附件报告投递
运维专家生成的 CSV / Excel / PDF 不会自动发出,须调用 `save_deliverable_attachment`:
```mermaid
flowchart LR
A[write_xlsx\n返回 attachment_id] --> B[save_deliverable_attachment\nattachment_id=...]
B --> C[Agent 文字回复摘要]
C --> D[出站携带附件]
D --> E[WhatsApp Sidecar 发送文件]
```
限制:每轮回复通常只发**第一个** deliverable 附件(约 8MB 上限)。
### 10.6 访问控制
Admin 可配置 WhatsApp 联系人白名单/黑名单(`GET /admin/api/whatsapp/access`),控制哪些号码可与机器人交互。未绑定用户的消息按访问策略处理。
### 10.7 相关环境变量
| 变量 | 说明 |
|------|------|
| `AIA_WHATSAPP_ACCOUNT_ID` | 账号 ID,默认 `wa-default` |
| `AIA_WHATSAPP_GROUP_REQUIRE_MENTION` | 群聊是否要求 @ 机器人 |
| `AIA_WHATSAPP_GROUP_TRIGGERS` | 群聊文本触发词 |
| `OCLAW_OPS_AI_SHARED_TOKEN` | netx-bridge 认证(告警推送) |
| `NETX_OCLAW_ALARM_WS_URL` | netx 侧告警 WS 地址 |
---
## 11. 部署与启用
```mermaid
flowchart TD
S1[1. 启动 Oclaw Gateway\nscripts/start_gateway.ps1] --> S2[2. 启动 netx\nscripts/start_netx.ps1]
S2 --> S3[3. 配置 PostgreSQL + UME 连接\n.env]
S3 --> S4[4. Admin 安装 netx MCP\nserver_id=netx]
S4 --> S5[5. Health Check + Sync Tools]
S5 --> S6[6. 绑定 MCP 到 ops 专家]
S6 --> S7[7. 配置双向 Token]
S7 --> S8[8. Chat 选择运维专家验证]
S8 --> S9[9. 可选:WhatsApp sidecar\n安装 + 扫码 + 路由 ops]
S9 --> S10[10. 绑定告警群 + 测试推送]
```
| 步骤 | 命令/配置 |
|------|-----------|
| Oclaw | `powershell -File scripts/start_gateway.ps1 -Background` |
| netx | `powershell -File scripts/start_netx.ps1` |
| MCP | Admin → MCP Servers → 粘贴 `netx/mcp.json` |
| Token | `OCLAW_OPS_AI_SHARED_TOKEN` ↔ `NETX_OCLAW_ANALYZE_TOKEN` |
| 验证 | Chat 选 ops → 「查当前 UME Critical 告警 Top 5」 |
| WhatsApp | `whatsapp_install.ps1` → `whatsapp_login.ps1` → `whatsapp_start.ps1` |
| 路由 ops | Admin Stack → WhatsApp dispatch → 绑定专家 `ops` |
| 告警群 | Admin → 绑定 `group_jid` → `alert-binding/test` |
一键运维栈:`scripts/start_ops.ps1`(Oclaw + netx);全栈含渠道:`scripts/start_all.ps1`。
---
## 12. 总结
| 维度 | 要点 |
|------|------|
| Oclaw | 多专家 AI 平台,提供交互、编排、渠道 |
| netx | 告警数据面 + 安全设备 CLI 执行 |
| 运维专家 | 证据驱动、netx 深度集成、结构化 Playbook |
| 集成契约 | MCP 13 工具 + 双向 API(分析 / 告警推送) |
| 自动化 | 定时工作流 + 渠道附件 + 实时告警通知 |
| WhatsApp | 移动端运维入口:交互查询、告警推送、周报投递 |
**访问地址:**
- Oclaw Admin:`http://127.0.0.1:8787/admin`
- Oclaw Chat:`http://127.0.0.1:8787/chat`
- netx Web UI:`http://127.0.0.1:5173`
- netx API:`http://127.0.0.1:8890`
---
## 相关文档
- [`README.md`](../../README.md) — Oclaw 快速开始
- [`docs/NETX_MCP_INTEGRATION.md`](../NETX_MCP_INTEGRATION.md) — netx MCP 集成
- [`docs/ARCHITECTURE_OVERVIEW.md`](../ARCHITECTURE_OVERVIEW.md) — Oclaw 架构
- [`docs/RUNBOOK.md`](../RUNBOOK.md) — 部署与渠道配置(§4.2 WhatsApp)
- [`runtime/extensions/whatsapp/README.md`](../../runtime/extensions/whatsapp/README.md) — WhatsApp 扩展说明
- [`skills/_workspace/public/channel-file-delivery/SKILL.md`](../../skills/_workspace/public/channel-file-delivery/SKILL.md) — 渠道附件发送
- [`skills/_workspace/public/scheduled-workflows/SKILL.md`](../../skills/_workspace/public/scheduled-workflows/SKILL.md) — 定时工作流
- [`netx/README.md`](../../../netx/README.md) — netx 项目说明
- [`netx/docs/MCP.md`](../../../netx/docs/MCP.md) — netx MCP 工具文档