跳转至

PROJECT-MAP:token_proxy 工程地图

接任务先查第 1 节路由表;问现状去 docs/HANDOFF.md;问步骤去 docs/SOP.md 或各主题目录 SOP。 本文件只描述工程身份与结构(静态),不写当前状态(HANDOFF),不写操作步骤(SOP / RUNBOOK)。 修订纪律:定点修订,只改受影响行;仅在新增/退役子项目或拓扑变化时动,不借机整体重写。

1. 任务路由表

任务 / 症状 工程 / 组件 先读 入口命令
加/改上游路由、计价、白名单 代理本体 docs/SOP.md 十、十七节 改 config.yaml → systemctl --user restart token-proxy
代理起不来 / 8788 被占 代理本体 docs/SOP.md 十三节 systemctl --user status token-proxy
改全局规则 / Hook 行为 Hook 脚本集(7 个) hook-restore-20260923/SOP.md 第 6 章、hook-skill-desc-20261002/SOP.md 改脚本与 hooks.json 均即时生效(10-07 实测,旧「须重启 Trae」已证伪)
Hook 提醒静默失效 Hook 脚本集(7 个) posttooluse-guard/README.md、docs/SOP.md 四十六节 核对 ~/.trae-cn/hooks.json 的 7 条脚本路径
日度成本审查(/cost) cost_audit + skill daily-cost-review-20260923/SOP.md ./venv/bin/python cost_audit/daily_review.py
用量 / 成本 / 步轮统计 cost_audit docs/BASELINE.md 第 3 节 ./venv/bin/python cost_audit/analyze_usage.py
按天 / 按上游聚合,含三段成本 cost_audit cost_audit/agg.py(docstring) python3 cost_audit/agg.py [--by day\|route] [--since D] [--until D] [--route ds\|all]
效率收益对照 / 规则遵守率 cost_audit rule-compliance-20261006/SOP.md python3 cost_audit/rule_compliance.py [--by week] [--cut <日期>]
合并机会 / 未合并块统计 cost_audit + merge-guard merge-coverage-all-20261006/SOP.md python3 cost_audit/step_profile.py [--top N | --conv ID]
工具执行耗时 / 工具变慢 tool-timing-hook tool-timing-20261007/RUNBOOK.md 日志 logs/tool_timing.jsonl;自测 python3 tool-timing-20261007/verify_tool_timing.py
上游生成耗时 / 首 token 慢 代理本体 upstream-timing-20261007/RUNBOOK.md logs/usage.jsonl 的 ttfb_ms / first_chunk_ms / total_ms;验证 python3 upstream-timing-20261007/verify_upstream_timing.py
收尾四项取数(时间墙/步数/合并/费用) cost_audit wrapup-ask-guard-20261007/SOP.md python3 cost_audit/wrapup.py
变更脚手架:建主题目录 / 备份 / 台账 docgen docgen/backup_ledger.py(docstring) python3 docgen/backup_ledger.py <主题目录> --backup <文件>...(幂等、保层次)
建 HANDOFF 骨架 docgen docgen/handoff_skeleton.py(docstring) python3 docgen/handoff_skeleton.py [--write],再跑 cost_audit/handoff_precheck.py
缓存整段失效 / 未命中排查 cost_audit cost_audit/analyze_prefix_fail.py(docstring) 见该脚本用法说明
会话成本归因 / 单会话深挖 cost-deep-review .trae/skills/cost-deep-review/SKILL.md session_deep_dive.py --date / --conv
开机自启 / 每日 00:00 报表 autostart autostart/SOP.md autostart/install-autostart.sh
网卡静态 IP net_static_ip net_static_ip/SOP_静态IP.md net_static_ip/set_static_ip.sh
思考档位(reasoning_effort) 代理本体 + stage-thinking stage-thinking-20260930/SOP.md、RUNBOOK.md 改 config.yaml + proxy.py
小米 / MiMo 链路(路由 mi) 代理本体 mi-model-20260924/SOP.md 见路由表 config.yaml
答复缺四列表 / 要你拍板行 代理本体(reply_check) reply-nudge-20261012/SOP.md 改 config.yaml 的 reply_check.enabled → systemctl --user restart token-proxy
交接文档 / 项目地图维护 docs 本文件 + docs/HANDOFF.md 按 writing-handoff 约定

2. 分层依赖

[物理层] 主机 192.168.31.250 (rain) + systemd 用户服务 token-proxy(linger 已开)
[服务层] proxy.py @ 0.0.0.0:8788 ──读── config.yaml / secret.yaml(routes + pricing + 白名单)
[兼容层] ds→DeepSeek / glm→智谱 / mi→api.xiaomimimo.com/v1(加新上游只改配置、不改代码)
[入口层] Trae 客户端 → http://192.168.31.250:8788/<route>
[数据层] logs/usage.jsonl · balance_history.jsonl · req_shape.jsonl · guard_events.jsonl · tool_timing.jsonl → cost_audit/*.py → reports/*.md · *.xlsx
[旁路]   Hook 脚本 7 个 ← ~/.trae-cn/hooks.json(SessionStart ×1 / PreToolUse ×6 / PostToolUse ×2)

装载来源(链路外):venv/(openpyxl 等依赖)、~/.trae-cn/user_rules/*.md(5 个规则)、 ~/.trae-cn/commands/cost.md、~/.trae-cn/commands/subagent-mode.md、~/.trae-cn/agents/ctx-scout.md、~/.trae-cn/agents/web-scout.md、~/.trae-cn/hooks.json。

3. 子项目卡片

活工程

  • 代理本体(工程根)|定位:计量代理服务 | 关键产物:proxy.py、config.yaml、run.sh | 上下游:上游 ds/glm/mi ↔ Trae 客户端 | 文档 docs/SOP.md
  • sessionstart-hook/|定位:SessionStart 注入中文指令 + HANDOFF | 产物:session-start-inject.py | 上下游:读 docs/HANDOFF.md
  • docs-read-hook/|定位:Read docs/*.md 前注入上下文成本约束 | 产物:docs-read-guard.py
  • posttooluse-guard/|定位:写规则 / 命令 / hooks / SKILL 描述后分档提醒 | 产物:skill-edit-guard.py、README.md
  • glob-grep-guard/|定位:Glob/Grep 使用无目录限定的 ** 通配前,注入检索约束提醒(只提醒、不阻断)| 产物:glob-grep-guard.py
  • tool-timing-hook/|定位:工具执行埋点(Pre 记开始 / Post 算时长,落 logs/tool_timing.jsonl,异常静默、不注入上下文)| 产物:tool-timing.py、state/| 文档 tool-timing-20261007/SOP.md、RUNBOOK.md
  • merge-guard/|定位:PreToolUse 检测「本可合并却逐步来」的高置信序列(连续只读 / 同文件重复读改 / 连续删除),高置信判据强制拦截 + 指纹放行;另含判据 J「禁止提问窗」| 产物:merge-guard.py| 文档 merge-coverage-all-20261006/SOP.md、merge-guard-enforce-20261006/SOP.md
  • cost_audit/|定位:只读成本与用量分析脚本集 | 产物:daily_review.py、analyze_usage.py、analyze_prefix_fail.py、selfcheck.py、verify_thinking.py、step_profile.py、rule_compliance.py、wrapup.py(收尾四项取数) | 上下游:读 logs/*.jsonl
  • .trae/skills/cost-deep-review/|定位:/cost 深挖技能(三阶段 + 归因/取证)| 产物:SKILL.md、scripts/session_deep_dive.py
  • autostart/|定位:开机自启 + 每日 00:00 报表任务 | 产物:install-autostart.sh | 文档 autostart/SOP.md
  • net_static_ip/|定位:网卡静态 IP 固化 | 产物:set_static_ip.sh | 文档 net_static_ip/SOP_静态IP.md

服务档案

  • 暂无独立服务档案目录(服务行为与端口见 docs/BASELINE.md 第 1 节)。

数据源(不可再生)

  • logs/|usage.jsonl(记账)、balance_history.jsonl(余额)、req_shape.jsonl(请求结构指纹)、guard_events.jsonl(守卫拦截事件)、tool_timing.jsonl(工具执行时长)—— 绝不可删

留档(变更档案目录;目录不删,仅追加)

目录 变更主题
handoff-bootstrap-20260923/ HANDOFF 机制空档补齐(未命中提示 + 首份快照)
md-inventory-20260923/ md 文件清单生成 + backup 清理
hook-restore-20260923/ 误删 Hook 守卫脚本的恢复(第 6 章为守卫离线回归用例表)
turn-seq-fix-20260923/ 轮次口径 turn_seq 修复
daily-cost-review-20260923/ 日度成本审查(daily_review.py + /cost)上线
output-cost-20260923/ 执行效率规则落地(含规则写入源与提问对照卡)
mi-model-20260924/ 小米 / MiMo 链路接入
cost-auto-trigger-20260925/ /cost 自动触发(无 SOP,仅 backup)
stage-thinking-20260930/ 会话阶段思考档位(含 RUNBOOK)
hook-skill-desc-20261002/ Hook 守卫命中面收窄(skill description)
project-map-20261002/ 本文件建立(备份台账)
ctx-warn-20261002/ Hook 新增会话规模提醒(步数 + 上下文)
backlog-20261002/ 优化点总账挂账项落地(#9 深挖批量化 / #19 Glob+Grep 守卫)+ 三个残留 backup 清理
subagent-20261002/ 用户级 Subagent ctx-scout 上线 + 积分门控一键切换(/subagent-mode)
web-scout-20261002/ 用户级 Subagent web-scout 上线(浏览器/网页取证专用,只读,仅挂 Exec;与 ctx-scout 分离)
merge-coverage-all-20261006/ 动作类型全覆盖的强制合并(规则矩阵 12 类 + step_profile 全集分列 + merge-guard Hook)
ctx-attribution-20261006/ 上下文成本归因结案(大 miss 归因表落 docs/BASELINE.md §2.1;HANDOFF 因超 10 KB 整体重写)
merge-guard-enforce-20261006/ merge-guard 升级为强制拦截(判据 A/B/D/E/F/I,JSON deny + 指纹放行;C 仅提醒)
glob-grep-enforce-20261007/ glob-grep-guard 升级为强制拦截(判据 G:LS 过浅目录;H:** 通配;hooks.json 新增 LS matcher)
wrapup-ask-guard-20261007/ 收尾固定五项(wrapup.py)+ 判据 J「禁止提问窗」+ guard 事件落盘 + miss 阈值 5000→20000
task-side-efficiency-20261007/ 效率体系:系统侧 vs agent 侧(专项待处理,含部署器基线数字)
efficiency-sides-20261007/ 时间侧全景画像(总墙钟 → 活跃 / 离开、按工具分组;profile_time_sides.py)
tool-timing-20261007/ 工具执行埋点(tool-timing Hook)上线:Pre/Post 配对量工具执行时长
upstream-timing-20261007/ 上游生成侧埋点:proxy.py 落 ttfb_ms / first_chunk_ms / total_ms
backlog-review-20261007/ 过账结构治理:第一节拆 1.1 待办型 / 1.2 判据型,_backlog_count 改口径(挂账 21 → 6)
merge-guard-i-20261007/ 判据 I 补 separated(修「同一步并行批被误拦」);总账关闭 #35、新增待标定 #40
backlog-prune-20261002/ 优化总账分区治理与过账收敛
backlog-review-20261002/ 把优化总账的过账变成有触发点的动作
handoff-capacity-20261002/ HANDOFF 容量机制修正(护栏解耦 + 技能归因纠错)
handoff-read-guard-20261002/ SessionStart 注入「HANDOFF 读取守卫」
prompt-hint-20261002/ 代理层注入固定「推理约束」提示(prompt_hint)
selfcheck-abc-loop-20261002/ 补 A/B/C 收尾自查的跨轮样本闭环
selfcheck-d-20261002/ 收尾自查新增 D 组「工具与子智能体」
selfcheck-d-loop-20261002/ 补齐 D 组自我迭代闭环
selfcheck-detail-20261002/ 给收尾自查补「执行阶段详情」
shape-toolname-20261002/ 给 logs/req_shape.jsonl 补记工具名(总账 #21)
step-profile-20261002/ 会话步序列画像工具(step_profile.py)
efficiency-trigger-20261003/ 探目录口径固化(从 MB 台账提升为可触发项)
rule-ambiguity-20261003/ 全局规则新增「歧义先问(硬门禁)」
conclusion-fix-20261006/ 效率与成本「结论修正」(贴图归因 + 切换成本倍数)
merge-coverage-20261006/ 可并组识别口径扩为全覆盖
merge-scenarios-20261006/ 碎步合并措施补强 —— 可并组分列 + 改-验批量化
merge-toolsseq-20261006/ 强制合并优先 + 采集 tools 名字序列
rule-ambiguity-removal-20261006/ 删除「歧义先问(硬门禁)」机制
rule-compliance-20261006/ 规则遵守率代理对照(效率收益对照组的补齐)
rule-selfcheck-20261006/ 自评类条款改为「无异常一句话,有异常才展开」
batch-interface-20261007/ 新增判据 L(批量接口提醒)+ BASELINE 记「逐条 vs 批量入参」
cache-ttl-20261007/ 缓存 TTL「空闲即失效」降级【存疑】(9.3 h 空档反例)
compress-point-20261007/ 「不切会话路线」手动压缩点模型沉淀进 BASELINE §2.1;2026-10-08 落地到 Hook(300 K)
cost-command-20261007/ /cost 命令正文口径对齐 BASELINE §2.1
guards-strengthen-20261007/ 守卫补强三件(G/H 真机验证 · webfetch-guard 落盘 · 新增判据 K)
handoff-rewrite-20261007/ HANDOFF 整体重写
ledger-gap-20261007/ 台账缺口补齐(HANDOFF / BASELINE / 总账)
ledger-sync-20261007/ 台账同步(耗时埋点样本 + 守卫误报率回填)
merge-guard-allowfp-20261007/ 修复 merge-guard 的 allow_fp 漏记
tools-norm-verify-20261007/ 核实「proxy 侧规范化 tools 顺序」措施的实际效果
tools-order-20261007/ proxy 侧规范化 tools 顺序(消除轮首冷启动)
turnkey-pitfall-20261007/ turn_key 复用陷阱入库(稳定层 + MB)
wrapup-miss-threshold-20261007/ 修正 wrapup.py 的 miss 阈值注释残留
wrapup-short-order-20261007/ 补 SHORT_ORDER 缺失的「改跑」
wrapup-tools-jitter-20261007/ 收紧 wrapup.py 的「tools 顺序抖动」判据
wrapup-turn-span-20261007/ 修 wrapup.py 的「时间墙」口径(turn_key 复用导致失真)
batch-workflow-20261008/ 批量项工作流固化(先敲定、再一次做完)
cache-probe-20261008/ proxy 侧空闲后探测前缀缓存(cache_probe)
handoff-frontload-20261008/ HANDOFF「写入前置流程」(消除「先写后压」)
permission-grant-20261008/ Trae 权限全开(global.json 写白名单 + 命令白名单 19→56)
rule-acceptance-20261008/ 条款验收方补强(Hook 存活自检 / script-safety-guard / sched-guard / shadow-check-guard)
rule-slim-20261008/ 常驻规则减重两批(42 340 → 29 782 B)+ 修订史迁出
state-persist-20261008/ proxy 内存态落盘(thinking_stages + 探测快照)
wrapup-cost-20261008/ 修正 wrapup.py 的费用口径(逐条按 pricing / 跳空 conv_key)
thinking-default-low-20261011/ 思考默认档由 off 改为 low(三档:off / low / high)
efficiency-iteration-20261011/ merge-guard 判据 S + 优化关键词提档(8 词)
backup-hygiene-20261011/ 备份清理评估(backup_ledger.py --prune,双 3 天)+ merge-guard 判据 W 收尾软提醒
wrapup-deep-analysis-20261011/ 「大轮次默认深挖」阈值(时间墙 ≥5 min 或 费用 ≥0.4 元)入规则 §收尾自查
prompt-hint-cn-20261011/ 强制中文思考(thinking.prompt_hint 重新启用)+ 前缀失效口径修正(增删 skill 才整段重建)
prefix-guard-20261011/ merge-guard 判据 X(system prompt 改动 → 建议开新会话)+ 默认档改 high + 重启非红线
cacheprobe-expired-20261011/ cache_probe 快照过期即判无缓存(修超长空闲盲区)+ 修复 token-proxy systemd failed(端口 8788 被手动进程占)
remote-exec-20261011/ Agent 远端操作入口固化(共享库 remote_exec.py + merge-guard 判据 Y / Z)+ 跨项目落盘口径
hook-deny-tune-20261012/ 收窄两处强制拦截面:sched-guard 动词表移出只读查询、webfetch-guard 由按次数改为 120 秒连续窗口
reply-nudge-20261012/ 代理侧答复形状检查(reply_check):轮首回看上一轮答复,缺四列表或拍板行即注入提醒

上表由脚本按「目录名后缀日期」补录(2026-10-08),原 26 行逐字未动;目录不删,仅追加。

项目外强相关路径

  • ~/.trae-cn/hooks.json、~/.trae-cn/user_rules/*.md、~/.trae-cn/commands/cost.md、~/.trae-cn/agents/*.md
  • 使用本代理记录用量的下游项目:~/Documents/k8s_ins/、~/Documents/kvm/ 等

4. 工程命名与文档约定

  • 主题目录:<主题>-<YYYYMMDD>,内含 SOP.md 与 backup/;常驻工程目录用语义名(autostart/、net_static_ip/、cost_audit/)
  • docs 三件套:HANDOFF.md(动态快照,SessionStart 注入,≤10 KB)/ BASELINE.md(稳定层)/ PROJECT-MAP.md(本文件,静态结构)
  • 信息边界:地图 = 身份与结构;HANDOFF = 现状与待办;SOP / RUNBOOK = 步骤与过程。三者不重复维护
  • backup 台账:每主题目录下 backup/README.md 逐条登记(备份文件 / 原路径 / 时间 / 原因 / 回滚内容 / 可删时机)
  • 工程形态:复杂变更(多主机、多模块、需回滚编排)用 Python 工程(apply / verify 分离);极简变更才用 shell(首行 set -euo pipefail)
  • 退役纪律:工程退役或被取代时不删目录,改身份标签并移入留档分组

来源:/home/rain/Documents/services/token_proxy/docs/PROJECT-MAP.md | 最后更新:2026-10-12 13:46(由 build/sync.py 同步,请勿在站点侧修改)