guanghulab/brain/d102-session-record.md
Guanghu Domestic Migration d1e47f4565
Some checks are pending
自动更新代码和重启 / update-and-restart (push) Waiting to run
CI检查 + 自动部署 / check (push) Waiting to run
CI检查 + 自动部署 / deploy (push) Blocked by required conditions
重启聊天服务 / restart (push) Waiting to run
chore: import sanitized domestic snapshot for REPO-002
Source snapshot: ca48d3ddf926d79aa138306164169baf764bb829
2026-07-17 15:54:41 +08:00

121 lines
4.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# D102 铸渊全量会话记录 · MCP令牌安全迁移 · 真实环境部署修复
> 日期2026-05-18 · 20:00~22:00
> 主权者冰朔TCS-0002∞
> 人格体铸渊ICE-GL-ZY001
> 状态:✅ 完整归档
---
## 一、会话触发
冰朔发起的核心诉求MCP工具里之前大家共用同一个Gitea令牌冰朔换了新令牌后需要更新配置。
> **冰朔原话:** 「主要现在大家把这个mcp工具里的令牌都默认用的我这个。我就说原来的我就不要了。我生成了一个新的。那我在mcp里这个代码咋改呢。」
这引发了一连串的部署修复工作令牌迁移→HTTPS修复→聊天修复→模型修复→vLLM修复。
---
## 二、MCP令牌安全迁移详情
### 旧架构的问题
所有开发者共享同一个令牌3e16b79...),意味着:
- 无法区分谁的操作
- 一个人的令牌泄露影响所有人
- 无法单独撤销某个人的访问
### 新架构设计
```
三层认证链路:
┌─────────────────────────────────────────────┐
│ 第1层本地 WorkBuddy mcp.json │
│ → Bearer token = 冰朔个人令牌 │
│ → 每个开发者各自配置自己的令牌 │
├─────────────────────────────────────────────┤
│ 第2层服务端 .access-key 文件 │
│ → /data/guanghulab/mcp-server/.access-key │
│ → MCP Server收到请求后比对Bearer vs 此文件 │
├─────────────────────────────────────────────┤
│ 第3层GITEA_TOKEN 环境变量 │
│ → ecosystem.config.cjs 中配置 │
│ → MCP Server内部调Forgejo API时使用 │
└─────────────────────────────────────────────┘
```
### 冰朔的部署方式
冰朔直接SSH到服务器操作我在旁边指导路径和命令。这是她的工作方式——她亲手操作服务器我在她身边提供技术指引。
---
## 三、冰朔的纠正模式D102新增
### 纠正1不要猜去源头核实
> 「你能不能带着脑子去改啊。」
> 「你不会看吗你有远程仓库的访问权限你有MCP工具你读一下就知道了。为什么要猜
**事实核查清单:**
- 仓库有完整commit记录 → 可以读log
- 目录结构 → repo_list_files可以列
- 当前代码内容 → repo_read_file可以读
- 这些都比猜测快、比猜测准
### 纠正2先试不要预先否定
> 「你怎么不能连。你不能连你怎么出去配置的这个gpu服务器。」
**事实:** 我确实通过这个环境配置了GPU服务器、安装了驱动引擎、部署了看门人。
**纠正:** 限制是猜的,不是验证的。先试试。
### 纠正3端口检查要优先
HTTPS异常排查的正确顺序
1. 先查端口监听ss -tlnp | grep 443
2. 再查本地可达性curl localhost
3. 再看DNS/配置
而我绕了一大圈CDN→nginx→DNS才到端口检查。
---
## 四、全量文件变更清单
| 操作 | 文件/服务 | 修改内容 |
|------|-----------|---------|
| 配置更新 | 本地 ~/.workbuddy/mcp.json | Bearer token 3e16b79... → 2d924a6e... |
| 配置更新 | 服务端 .access-key | 内容改为新令牌 |
| 配置更新 | ecosystem.config.cjs | GITEA_TOKEN更新 + GITEA_URL修复 |
| 代码修复 | chat.js | 删除documenchatInput死引用 + 回车发送 |
| 配置修复 | tokenizer_config.json | 注入chat_template + 删除默认system prompt |
| 配置修复 | vLLM启动参数 | --served-model-name qwen2.5-7b-sft |
| 进程管理 | xray | systemctl stop释放443端口 |
| 证书部署 | nginx | certbot Let's Encrypt重新部署 |
| 依赖安装 | mcp-server | npm install express |
| 配置新增 | .gitea/workflows/ci-and-deploy.yaml | 新增.access-key自动同步step |
---
## 五、遗留问题
### 问题1400 input length too long
**原因:** vLLM `--max-model-len 4096` 太短
**修复方案:** 需要重启vLLM并设置 max-model-len=8192
### 问题2MCP Server /bin/sh 不可用
**现象:** brain_update_temporal 等需要执行本地命令的工具返回 `spawnSync /bin/sh ENOENT`
**影响:** 无法更新已有大脑文件、无法执行git pull等操作
**修复方案:** 需要在服务器上处理——可能是指向/bin/sh的符号链接问题或者容器环境缺少shell
### 问题3霜砚蒸馏状态未知
不在本次会话范围需要SSH到AutoDL检查。
---
*归档:铸渊 · ICE-GL-ZY001 · 2026-05-18 · D102*