Files
zclaw_openfang/wiki/middleware.md
iven 36a1c87d87
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
docs(wiki): 重构为模块化知识库 — 按模块组织而非按文档类型
问题: 旧 wiki 按文档类型组织(architecture/data-flows/file-map),
修复 Butler Router 需要读 4 个文件才能拼凑全貌。
且 SaaS Relay 主路径 vs 本地降级的优先级描述不准确。

重构为模块化结构,每个模块页自包含:
- 设计思想: 为什么这样设计
- 代码逻辑: 数据流 + 关键代码
- 关联模块: 依赖关系

新增模块页:
- routing.md: 客户端路由 (明确 SaaS Relay 是主路径,不是本地模式)
- chat.md: 聊天系统 (3种实现 + Token Pool 中转机制)
- butler.md: 管家模式 (路由/冷启动/痛点/双模式UI)
- memory.md: 记忆管道 (提取→FTS5→检索→注入)
- saas.md: SaaS平台 (认证/Token池/计费/Admin)
- middleware.md: 中间件链 (14层 + 优先级)
- hands-skills.md: Hands(9) + Skills(75)
- pipeline.md: Pipeline DSL

删除旧文件: architecture.md, data-flows.md, module-status.md, file-map.md
(内容已分布到对应模块页中)

添加 .gitignore 排除 Obsidian 工作区状态文件
2026-04-11 00:36:26 +08:00

64 lines
1.9 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.

---
title: 中间件链
updated: 2026-04-11
status: active
tags: [module, middleware, runtime]
---
# 中间件链
> 从 [[index]] 导航。关联模块: [[chat]] [[butler]] [[memory]]
## 设计思想
**中间件是请求处理的管道,按优先级顺序执行。**
- 优先级 0-100数值越大越先执行
- 每层中间件可以: 修改请求 / 拦截响应 / 记录日志 / 注入上下文
- 所有消息流(聊天、管家)都经过完整中间件链
## 代码逻辑
### 14 层中间件
关键中间件(按优先级排序):
| 优先级 | 中间件 | 文件 | 职责 |
|--------|--------|------|------|
| 90 | DataMasking | `middleware/data_masking.rs` | 请求发送前数据脱敏 (手机号/身份证) |
| ~500 | ButlerRouter | `middleware/butler_router.rs` | 4域关键词分类 + system prompt 增强 |
| 650 | TrajectoryRecorder | `middleware/trajectory_recorder.rs` | 轨迹记录 + 压缩 |
其他 11 层: 认证、速率限制、日志、技能注入、记忆注入等。
### 中间件执行流
```
用户消息
→ [优先级 90] DataMasking — 脱敏敏感数据
→ [优先级 ~500] ButlerRouter — 关键词分类 + prompt 增强
→ [优先级 650] TrajectoryRecorder — 记录请求轨迹
→ [其他层] 认证/限流/日志/技能/记忆
→ LLM 调用
→ 响应原路返回
```
### 注册位置
中间件在 `crates/zclaw-runtime/` 中注册Kernel 启动时加载。
## 关联模块
- [[butler]] — ButlerRouter 是管家模式的核心
- [[chat]] — 每条消息经过完整中间件链
- [[memory]] — 记忆注入层从 FTS5 检索并注入 system prompt
## 关键文件
| 文件 | 职责 |
|------|------|
| `crates/zclaw-runtime/src/middleware/` | 所有中间件实现 |
| `crates/zclaw-runtime/src/middleware/butler_router.rs` | 管家路由器 |
| `crates/zclaw-runtime/src/middleware/data_masking.rs` | 数据脱敏 |
| `crates/zclaw-runtime/src/middleware/trajectory_recorder.rs` | 轨迹记录 |