Claude Tier MacMini-DSR AI实验室层路由v9.1
Mac Mini上Claude CLI的生产级AI编排。
每个任务都通过LangGraph状态机自动路由到最优模型。 克劳德=只有大脑。 Ollama T1模型执行所有代码、文件和bash命令。 T2型号(Gemini/HuggingFace Kimi)只提供分析,从不执行。
______________________________________________________________________
v9.1的新增功能
| 更改 | 详细信息 |
|---|---|
startup_banner.py | 替换静态回声挂钩——每个屏幕上都有完整的实时状态横幅 claude 开始 |
| 每个型号的实时状态 | 每个型号显示 ✅ LIVE (in RAM) / ⚡ READY (on-demand) / ✗ NOT PULLED |
| LangSmith实时检查 | API启动时ping-显示服务器版本+SDK版本+项目名称 |
| LangGraph实时检查 | 导入+版本检查(v1.1.3 确认) |
| TierEnforcer状态 | intercept.py✅ + 数据库行数+server.py存在 |
| 22台MCP服务器已验证 | 启动时检查了所有服务器脚本,如有缺失,请查看 ✗ |
| 12项技能已验证 | 所有技能 .md 已检查文件--标记丢失的文件 |
| HF API修复 | 使用 /api/whoami-v2 (已弃用 /api/whoami 总是返回401) |
| HF Pro帐户 | 显示 ✅ LIVE @DSR07 (Pro) 带计划+用户名 |
| 设置环境读取 | startup_banner.py 读取 HF_API_KEY 直接 settings.json |
| 自动预热背景 | 每次启动时,T1-LOCAL+T1-MID都会加载到背景线程中的RAM中 |
| 预热智能防护 | 仅预热RAM中尚未预热的型号——如果预热则跳过 |
______________________________________________________________________
现场创业横幅(每个 claude 会话)
╔════════════════════════════════════════════════════════════════════════════╗
║ DSR AI-LAB — TIER ROUTING v9 | FULL LIVE STATUS ║
╠════════════════════════════════════════════════════════════════════════════╣
║ 🧠 Claude ✅ AUTH OAuth via macOS Keychain ║
║ Bash NATIVE (not intercepted) ║
║ Edit/Write intercept.py → Ollama T1 (auto-routed) ║
╠════════════════════════════════════════════════════════════════════════════╣
║ INFRASTRUCTURE ║
║ LangGraph ✅ LIVE v1.1.3 8-node pipeline active ║
║ LangSmith ✅ LIVE server=0.13.32 sdk=0.7.13 project=dsr-ai-lab-tier-v9║
║ TierEnforcer intercept ✅ DB ✅ (N routes logged) server ✅ ║
╠════════════════════════════════════════════════════════════════════════════╣
║ EXECUTORS — Ollama (all code execution) ║
║ ⚙ T1-LOCAL qwen2.5-coder:7b ✅ LIVE (in RAM) ║
║ ⚙ T1-MID qwen2.5-coder:14b ✅ LIVE (in RAM) ║
║ ⚙ T1-CLOUD qwen3-coder:480b-cloud ⚡ READY (on-demand) ║
╠════════════════════════════════════════════════════════════════════════════╣
║ ANALYSIS — Gemini / HF (never execute code) ║
║ 🔍 T2-FLASH gemini-2.5-flash ✅ LIVE v0.33.0 ║
║ 🔍 T2-PRO gemini-2.5-pro ✅ LIVE v0.33.0 ║
║ 🔍 T2-KIMI Kimi-K2-Instruct ✅ LIVE @DSR07 (Pro) ║
╠════════════════════════════════════════════════════════════════════════════╣
║ MCP SERVERS (22) — ✅ 22 active ✅ all present ║
║ ✅tier-enforcer ✅filesystem ✅git ✅memory ✅github ✅gdrive ... ║
╠════════════════════════════════════════════════════════════════════════════╣
║ SKILLS (12) — ✅ all loaded ║
║ ✅aiapp ✅arch ✅math ✅multifile ✅rca ✅scope ✅tier-* ✅wire ║
╠════════════════════════════════════════════════════════════════════════════╣
║ 🔥 Prewarm ⏳ Loading 7b+14b → RAM (background) ║
║ 📦 Pulled 9 Ollama models in library ║
║ 🔗 Pipeline classify→skill→brain→prewarm→execute→escalate→audit ║
╚════════════════════════════════════════════════════════════════════════════╝______________________________________________________________________
系统架构
┌────────────────────────────────────────────────────────────────────┐
│ DSR AI-Lab Mac Mini │
│ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ Claude CLI — BRAIN ONLY │ │
│ │ Bash = NATIVE | Edit/Write/MultiEdit = BLOCKED │ │
│ │ │ │
│ │ SessionStart Hook ──► startup_banner.py │ │
│ │ Live checks: Ollama + Gemini + HF + LangSmith + │ │
│ │ LangGraph + TierEnforcer + 22 MCPs + 12 Skills │ │
│ │ Auto-prewarms T1-LOCAL + T1-MID (background) │ │
│ │ │ │
│ │ PreToolUse Hook ──► intercept.py ──► Ollama T1 │ │
│ │ Intercepts: Edit | Write | MultiEdit | NotebookEdit │ │
│ │ Passthrough: Bash (native) │ │
│ │ │ │
│ │ tier-enforcer-mcp (Python / FastMCP 3.1.0) │ │
│ │ LangGraph 8 nodes: classify → skill_selector → │ │
│ │ claude_brain → prewarm_check → [t2_analysis|t1_execute] │ │
│ │ → escalate → audit │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌───────────────────┼───────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌──────────────┐ ┌───────────────┐ ┌─────────────────┐ │
│ │ T1-LOCAL │ │ T1-MID │ │ T1-CLOUD │ │
│ │ qwen2.5:7b │ │ qwen2.5:14b │ │ qwen3:480b-cloud│ │
│ │ Ollama local │ │ Ollama local │ │ Ollama cloud │ │
│ │ 4.7 GB │ │ 9.0 GB │ │ (remote GPU) │ │
│ │ EXECUTES │ │ EXECUTES │ │ EXECUTES │ │
│ └──────────────┘ └───────────────┘ └─────────────────┘ │
│ │
│ ┌──────────────┐ ┌───────────────┐ ┌─────────────────┐ │
│ │ T2-FLASH │ │ T2-PRO │ │ T2-KIMI │ │
│ │gemini-2.5- │ │ gemini-2.5-pro│ │ Kimi-K2-Instruct│ │
│ │flash │ │ │ │ HF Inference │ │
│ │ ANALYSIS ──► T1-MID executes ◄───────── ANALYSIS │ │
│ └──────────────┘ └───────────────┘ └─────────────────┘ │
└────────────────────────────────────────────────────────────────────┘______________________________________________________________________
层级参考
| 层 | 型号 | 角色 | 主机 | RAM |
|---|---|---|---|---|
| T1-LOCAL | qwen2.5编码器:7b | 执行器——简单/快速 | Ollama本地主机:11434 | 4.7 GB |
| T1-MID | qwen2.5编码器:14b | 执行器——复杂代码 | Ollama本地主机:11434 | 9.0 GB |
| T1-CLOUD | qwen3编码器:480b云 | 执行器--史诗/绿地 | Ollama云 | 云 |
| T2-FLASH | 双生-2.5-lash | 分析→ T1-MID执行 | Gemini CLI v0.3.0 | -- |
| T2-PRO | 双子座-2.5-PRO | 深度回顾→ T1-MID执行 | Gemini CLI v0.3.0 | -- |
| T2-KIMI | Qwen/KIMI-K2-指令 | 数学/算法→ T1-MID执行 | HF推理API(Pro) | - |
______________________________________________________________________
LangGraph管道(8个节点)
Input Task
│
▼
┌─────────────┐
│ classify │ Keyword scan → tier assignment
└──────┬──────┘
▼
┌──────────────────┐
│ skill_selector │ Load domain skill file into context
└──────┬───────────┘
▼
┌──────────────┐
│ claude_brain │ Claude writes execution plan (runs for EVERY tier)
└──────┬───────┘
▼
┌───────────────┐
│ prewarm_check │ Verify T1 models are loaded in Ollama RAM
└──────┬────────┘
│
┌───┴────────────────────────┐
│ │
▼ (if T2 classified) ▼ (T1 classified)
┌────────────┐ ┌──────────────┐
│ t2_analysis│ │ t1_execute │
│ Gemini/Kimi│──────► │ Ollama T1 │
└────────────┘ └──────┬───────┘
▼
┌─────────────┐
│ escalate │ score < threshold → next tier (max 2x)
└──────┬──────┘
▼
┌─────────────┐
│ audit │ Write to routing_log (11 cols)
└──────┬──────┘
▼
END______________________________________________________________________
任务分类→ 路由
Incoming Task Text
│
▼ keyword scan (priority order)
│
├─ "debug" / "error" / "failing" / "broken" / "traceback"
│ └──► T2-FLASH (gemini-flash analyzes → T1-MID executes)
│
├─ "analyze" / "explain" / "review" / "audit entire"
│ └──► T2-PRO (gemini-pro reviews → T1-MID executes)
│
├─ "algorithm" / "math" / "big-o" / "statistical"
│ └──► T2-KIMI (Kimi-K2 reasons → T1-MID executes)
│
├─ "full platform" / "greenfield" / "complete system" / "end to end"
│ └──► T1-CLOUD (qwen3-coder:480b-cloud executes directly)
│
├─ "implement" / "write module" / "refactor" / "integrate"
│ └──► T1-MID (qwen2.5-coder:14b executes)
│
└─ everything else (default)
└──► T1-LOCAL (qwen2.5-coder:7b executes)______________________________________________________________________
拦截流(编辑/写入保护)
Claude Brain produces plan
│
▼
Claude attempts tool call
│
├──[Bash]──────────────────────────► NATIVE EXEC (passthrough)
│
└──[Edit | Write | MultiEdit | NotebookEdit]
│
▼
intercept.py (PreToolUse hook)
│
▼
Route to Ollama T1 model
POST /api/chat (keep_alive=-1)
│
▼
Ollama generates + writes file/edit
│
▼
Claude is blocked — did NOT write______________________________________________________________________
启动序列
Terminal opens
│
▼ (zshrc / Login Item)
claude-ollama-prewarm.sh
├─ GET /api/ps → models loaded?
├─ If cold: POST /api/chat 7b + 14b keep_alive=-1 (background)
└─ Log to ~/.tier-enforcer/prewarm.log
│
▼ user types: claude
Claude CLI authenticates
├─ macOS Keychain: "Claude Code-credentials" → OAuth sk-ant-oat01-...
└─ claude.ai subscription verified
│
▼ settings.json loaded
├─ 22 MCP servers spawned via stdio
├─ PreToolUse hook: intercept.py registered
└─ CLAUDE.md brain protocol loaded
│
▼ SessionStart hook fires → startup_banner.py
Parallel threads (max 6s):
├─ Claude OAuth → macOS Keychain check
├─ LangGraph → import check + version
├─ LangSmith → GET api.smith.langchain.com/info
├─ TierEnforcer → intercept.py + DB + server.py
├─ Ollama → GET /api/tags + /api/ps per-model
├─ Gemini CLI → gemini --version
├─ HF API → GET /api/whoami-v2 (not whoami — that's broken)
├─ 22 MCP servers → each script/command existence
├─ 12 Skills → each .md file existence
└─ Auto-prewarm bg → 7b + 14b if not in RAM
FULL LIVE BANNER printed with actual statuses
│
▼ mandatory MCP calls (CLAUDE.md protocol)
activate_tier_routing() → LangGraph 8 nodes compiled
tier_health_check(ALL) → live tier status map
prewarm_models() → confirm 7b + 14b in Ollama RAM
│
▼
READY — every task routed through execute_task()______________________________________________________________________
回退/升级链
T1-LOCAL ──(score<0.45)──► T1-MID ──(score<0.55)──► T1-CLOUD
│
(score<0.60)
▼
T2-KIMI ◄──(score<0.50)── T2-PRO ◄──(score<0.50)── T2-FLASH
│
(max 2 fallbacks reached → return best result obtained)______________________________________________________________________
文件
| 文件 | 目的 |
|---|---|
tier-enforcer-mcp/server.py | FastMCP 3.1.0,LangGraph 8节点,SQLite审计 |
tier-enforcer-mcp/intercept.py | PreTool使用钩子--编辑/写入→ 奥拉玛 |
tier-enforcer-mcp/startup_banner.py | 新版v9.1 --会话开始时显示完整的实时状态横幅 |
tier-enforcer-mcp/langgraph_tier.py | LangGraph状态+节点定义 |
dotfiles/CLAUDE.md | Brain协议v9——启动调用、层规则 |
dotfiles/settings.json | 挂钩+22个MCP服务器+环境变量 |
dotfiles/settings.local.json | 会话启动挂钩→ startup_banner.py |
______________________________________________________________________
22台MCP服务器
| 类别 | 服务器 |
|---|---|
| 核心 | 层执行器、文件系统、git、内存、github、gdrive |
| 开发意图mcp、arch mcp、编码mcp、rca-mcp、集成mcp、aidev mcp、数学mcp | |
| 域 | 预算mcp、上下文mcp、rpa-mcp |
| 平台 | 移动开发mcp、网络移动开发mcp、网站开发mcp和电子商务mcp |
| 自动化 | mac自动化mcp、文件自动化mcp |
______________________________________________________________________
12技能(~/.claude/skills/)
aiapp · arch · math · multifile · rca · scope · tier-audit · tier-debug · tier-health · tier-report · tier-reset · wire
______________________________________________________________________
环境变量
# Set in ~/.claude/settings.json → mcpServers.tier-enforcer.env
OLLAMA_LOCAL_HOST=http://localhost:11434
OLLAMA_CLOUD_HOST=http://localhost:11434
OLLAMA_TIMEOUT_LOCAL=600
OLLAMA_TIMEOUT_MID=600
OLLAMA_TIMEOUT_CLOUD=600
HF_API_KEY=hf_... # HuggingFace read token (whoami-v2 verified)
LANGCHAIN_TRACING_V2=true
LANGCHAIN_PROJECT=dsr-ai-lab-tier-v9______________________________________________________________________
快速设置
git clone https://github.com/dineshsrivastava07-cell/Claude-Tier-MacMini.git
cd Claude-Tier-MacMini
# Python dependencies
pip install fastmcp langgraph langchain-core huggingface_hub langsmith
# TypeScript tier-router-mcp
npm install && npm run build
# Copy dotfiles
cp dotfiles/CLAUDE.md ~/.claude/CLAUDE.md
cp dotfiles/settings.json ~/.claude/settings.json
cp dotfiles/settings.local.json ~/.claude/settings.local.json
# Copy tier-enforcer-mcp
mkdir -p ~/tier-enforcer-mcp
cp tier-enforcer-mcp/*.py ~/tier-enforcer-mcp/
cp tier-enforcer-mcp/*.sh ~/tier-enforcer-mcp/
# Set API keys in ~/.claude/settings.json
# HF_API_KEY = HuggingFace token with read scope
# LANGCHAIN_API_KEY = LangSmith token (in env, not in settings.json)
# Authenticate Claude
claude auth login # OAuth → macOS Keychain
# Start
claude
# startup_banner.py fires automatically — full live status shown______________________________________________________________________
v9 → v9.1更改
| 特性 | v9 | v9.1 |
|---|---|---|
| 启动横幅 | 静态回声单行 | startup_banner.py --真正的并行实时检查 |
| 型号状态 | 二元Olama✓/✗ | 每种型号: ✅ LIVE / ⚡ READY / ✗ NOT PULLED |
| LangSmith | 未显示 | 实时API ping-服务器+SDK版本 |
| LangGraph | 未显示 | 导入+版本 |
| TierEnforcer | 未显示 | intercept.py+数据库行+服务器.py |
| MCP状态 | 未显示 | 启动时已验证所有22个 |
| 技能状态 | 未显示 | 启动时已验证全部12项技能 |
| HF终点 | /api/whoami (401) | /api/whoami-v2 (正确) |
| HF密钥源 | 仅限于环境 | 读取 settings.json 直接 |
| 预热 | 仅外部脚本 | 背景线程 startup_banner.py |
______________________________________________________________________
*DSR人工智能实验室——Mac Mini——v9.1-2026-03-22*
