feat(h5): add LLM intent router admin controls and shadow verification.

Expose shadow/canary router policy in ops admin, add FAQ rule fast-path,
and tighten router defaults (1200ms timeout, 0.65 confidence).
Includes verify-h5-llm-router-shadow for production canary rollout.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
john
2026-08-01 16:48:01 +08:00
parent 005612029f
commit 43bc8bbc2b
14 changed files with 1391 additions and 80 deletions
+56 -2
View File
@@ -141,6 +141,33 @@ H5_PUBLIC_BASE_URL=http://127.0.0.1:5173
# 1/ongateway 优先读 classification.decision.route / session_hint
# MEMIND_ROUTER_NORMALIZED_DECISION=0
# H5 Chat LLM intent router(本地开发建议见下方「本地 LLM Router」块)
# 0:仅规则路由;规则未命中 fallback Agent
# 1 + SHADOW=1:调用轻量 LLM 观测分歧,行为仍 fallback Agent
# 1 + CANARY_USER_IDS:仅名单内用户在规则未命中时走 LLM 路由;留空=全员
# MEMIND_CHAT_LLM_ROUTER_ENABLED=0
# MEMIND_CHAT_LLM_ROUTER_SHADOW=0
# MEMIND_CHAT_ROUTER_CANARY_USER_IDS=
# MEMIND_CHAT_ROUTER_MODEL_PROVIDER_KEY_ID=
# MEMIND_CHAT_ROUTER_MODEL=
# MEMIND_CHAT_ROUTER_MIN_CONFIDENCE=0.65
# MEMIND_CHAT_ROUTER_TIMEOUT_MS=1200
# MEMIND_CHAT_ROUTER_MEMORY_ENABLED=1
# MEMIND_CHAT_ROUTER_FALLBACK_ROUTE=agent_orchestration
# ----- 本地 LLM Routerpnpm dev,全员 Active,无 Shadow-----
# Router 模型建议(分类 JSON,短 prompt,要快不要大):
# 本机 Ollamaqwen2.5:3b / qwen2.5:1.5b / llama3.2:3b(见 H5_LOCAL_LLM_*
# 云端 relaygpt-4o-mini / deepseek-chat / qwen-turbo / glm-4-flash
# Direct Chat 仍用全局选中模型;Router 单独绑小模型即可。
# MEMIND_CHAT_LLM_ROUTER_ENABLED=1
# MEMIND_CHAT_LLM_ROUTER_SHADOW=0
# MEMIND_CHAT_ROUTER_CANARY_USER_IDS=
# MEMIND_CHAT_ROUTER_MIN_CONFIDENCE=0.65
# MEMIND_CHAT_ROUTER_TIMEOUT_MS=1200
# MEMIND_CHAT_ROUTER_MODEL_PROVIDER_KEY_ID=<h5_llm_provider_keys.id>
# MEMIND_CHAT_ROUTER_MODEL=qwen2.5:3b
# H5 Session stream replaydocs/h5-session-architecture-20260706.md Patch 4c
# 默认 0session SSE 仍纯透传 goosed;设 1 时 Portal 持久化 session 事件并支持 Last-Event-ID 重连补发。
# MEMIND_SESSION_STREAM_REPLAY=0
@@ -195,7 +222,8 @@ H5_ADMIN_PASSWORD=change-me-admin
# H5_ADMIN_WORKSPACE_ROOT=/Users/john/PycharmProjects/tkmind
# LLM Key 数据库加密(可选;默认派生自 TKMIND_SERVER__SECRET_KEY
# H5_SETTINGS_ENCRYPTION_KEY=change-me-encryption-key
# 启动时自动导入 Relay(若不存在同名配置)
# 启动时自动导入 Relay(若不存在同名配置);改用手动 Provider 时请设为 1
# H5_RELAY_BOOTSTRAP_DISABLED=1
# H5_RELAY_BOOTSTRAP_NAME=Local Goose Relay DeepSeek
# H5_RELAY_BOOTSTRAP_URL=http://127.0.0.1:18300/relay/buyer/v1/chat/completions
# H5_RELAY_BOOTSTRAP_API_KEY=your-bearer-token
@@ -305,7 +333,33 @@ VITE_TKMIND_WORKING_DIR=/Users/john/PycharmProjects/tkmind
# VITE_TKMIND_MODEL=gpt-4o
# 可选:harness recall 的默认查询
# VITE_TKMIND_MEMORY_QUERY=project architecture conventions current goals decisions risks and recent work
# Memory V2 Phase A canary (local dev)
# Full template: docs/memory-v2/phase-a-canary.env.example
# Readiness check: npm run check:memory-v2-phase-a
#
# Recommended local canary users (explicit-memory testers):
# 32035858-9a20-425b-89da-c118ef0779aa
# 1c99b83b-0454-474f-a5d2-129d34506a32
# MEMORY_ENABLED=1
# MEMORY_CANDIDATE_ENABLED=1
# MEMORY_CANDIDATE_MODE=canary
# MEMORY_CANDIDATE_PERSISTENCE_ENABLED=1
# MEMORY_CANDIDATE_AUTO_ACCEPT_ALL=0
# MEMORY_AGENT_RESOLVE_ENABLED=1
# MEMORY_AGENT_INJECTION_MODE=canary
# MEMORY_AGENT_CANARY_USER_IDS=32035858-9a20-425b-89da-c118ef0779aa,1c99b83b-0454-474f-a5d2-129d34506a32
# MEMORY_LIFECYCLE_ENABLED=1
# MEMORY_LIFECYCLE_ROLLOUT_MODE=canary
# MEMORY_LIFECYCLE_ROLLOUT_USER_IDS=32035858-9a20-425b-89da-c118ef0779aa,1c99b83b-0454-474f-a5d2-129d34506a32
# MEMORY_PROMOTION_ENABLED=1
# MEMORY_LIFECYCLE_FORGETTING_ENABLED=0
# Goal Run MVP(默认关闭;canary 用户名单见 docs/architecture/goal-run-data-model-draft.md
# GOAL_RUN_ENABLED=0
# GOAL_RUN_CANARY_USER_IDS=
# GOAL_RUN_REQUIRE_APPROVAL=0
# MEMORY_LIFECYCLE_DECAY_ENABLED=0
# 历史列表每次展示/加载条数(默认 25,与 desktop 一致)
# VITE_SESSION_PAGE_SIZE=25