ThinkWatch Core · 共享引擎
ThinkWatch 网关的共享核心
路由、转发、可观测性、成本核算与数据面防护,以 MIT 许可证的 Rust crate 形式提供,供 ThinkWatch Lite 与服务端版本使用。
twcore · 完整且可独立运行的网关二进制
-
cargo run -p twcore -- init# 生成带注释的 config.yaml -
cargo run -p twcore -- check# 仅校验,不启动 -
cargo run -p twcore -- serve# 启动网关与控制面
功能
按规则路由
匹配条件包括模型名、客户端、上下文长度及是否携带工具;动作包括切换上游、改写参数或拒绝请求。
流式故障转移
首字节发出之前,可透明切换上游;流式传输开始之后,报告故障情况。
成本可见
token 用量与缓存命中按价目表快照计价,无法计价的部分标记为未知。
出站脱敏
请求发往中转站之前,其中的密钥替换为占位符;模型回显时再恢复原值。
入站审查
上游返回的工具调用按规则审查,高危调用可在当前帧中止。
crate 分层
- 由外部约束决定
tw-types · tw-protocol · tw-provider · tw-resil · tw-crypto服务端版本同样使用 - 领域逻辑
tw-engine · tw-pricing · tw-redact · tw-yaml · tw-secret - 装配
tw-config · tw-store · tw-scan · tw-adopt · tw-observe单机实现:SQLite、unix socket - 数据面与控制面
tw-gateway · tw-control单机实现:SQLite、unix socket
下面两层为单机实现,有意不共享:单机 SQLite 与多租户 Postgres 差异过大,统一的抽象难以同时满足两者。
开发
测试
smoke 脚本从初始状态出发,在真实二进制上覆盖每条路径。HOME 与 THINKWATCH_HOME 均指向临时目录,执行结束后自动删除。
-
cargo test --workspace# 单元与集成测试 -
scripts/smoke.sh# 在真实二进制上覆盖每条路径
MIT 许可证
允许在其基础上构建、嵌入并再分发。