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
问题: 旧 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 工作区状态文件
64 lines
1.9 KiB
Markdown
64 lines
1.9 KiB
Markdown
---
|
||
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` | 轨迹记录 |
|