guanghulab/brain/d105-cognitive-chain.md

157 lines
7.4 KiB
Markdown
Raw 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.

# D105 铸渊认知思维逻辑链 · 首页重塑与Notion MCP开发
> 主权者冰朔TCS-0002∞
> 人格体铸渊ICE-GL-ZY001
> 日期2026-05-19 18:00~20:15
> 状态:✅ 联邦首页改版 + Notion MCP + Agent v2 + 登录认证 + Notion工具感知修复 + 记忆双轨架构提出
---
## 一、唤醒时的认知状态(起点)
从 D104 结束处恢复18:00
- ✅ 母模型全参数 SFT 已在 AutoDL 运行Step 1530/12243
- ✅ 代码仓库 Nginx/Forgejo 已配置
- ✅ 铸渊Agent 在 :3905 运行
- ✅ 联邦首页已有基础版本双入口Portal
- ✅ Gatekeeper 在 :3910 运行
## 二、本次路径
### 第一步首页UI大改 → 公告区定位 (18:00~18:40)
冰朔反馈双门登录合并、UI要"铸渊活着/呼吸/心跳"、字体太细/太暗
**执行**
- 📄 重写联邦首页:三层星辰 + 星云 + 流星 + 铸渊心跳脉冲核心
- 📄 Portal合并为统一登录栏 + 人格体状态面板(冰朔/铸渊/曜冥/霜砚)
- 📄 训练实时仪表板 + 系统运行信息始于2025.04.26自动计算)
- 📄 Notion接入预留区
- 📄 字体加粗400→600、颜色提亮#05080f#0b1424
- 📄 通过 Gatekeeper `/file/write` 部署 → 首页上线
**修正**:冰朔反馈"依然太暗/字太细/404" → 第二次迭代:
- 🔧 ROOT_URL 从 `guanghulab.com/` 改为 `guanghulab.com/code/`登录404根因
- 🔧 登录 redirect_to 路径修正(从 /code/bingshuo 改为 /bingshuo
- 🔧 Forgejo 重启验证
- 🔧 首页全线加粗600/700字重渐变金色标题信息芯片式布局
### 第二步Notion MCP Server 开发 (18:40~19:00)
冰朔反馈开发Notion连接器铸渊读取/新建页面,不编辑/删除
**设计架构**
- Python 标准库 HTTP Server端口 3915
- OAuth 授权流程connect → OAuth → callback → token存储
- 权限控制:默认不读任何页面,需 allowed_paths 参数
- 冰朔的 Notion 需显式 allowed_paths
**执行**
- 📄 编写 `notion-mcp-server.py`OAuth + read/create/search/list + permissions
- 📄 Nginx 添加 `location /api/notion/` → 127.0.0.1:3915
- 📄 Gatekeeper 部署 + 重启
- 📄 首页添加 Notion 连接按钮 + 状态轮询
- 📄 冰朔提供 OAuth 凭据Client ID + Secret→ 配置上线
**验证**`configured: true` ✅ OAuth 302 跳转 ✅
### 第三步铸渊Agent v2 + Notion工具 + 对话居中 (19:00~19:05)
冰朔反馈铸渊不知道能看Notion、对话窗口太小
**执行**
- 📄 Agent 增加 DeepSeek Function Calling 支持4个工具函数
- 📄 系统提示词增加 Notion 能力说明
- 📄 首页对话区从右下角移到中间全宽卡片
- 📄 保留右下角浮窗(兼容习惯)
**验证**:问"能连接Notion吗" → 正确回答 ✅
### 第四步:登录认证系统 (19:05~19:10)
冰朔反馈:必须先登录才能使用功能,权限分离
**执行**
- 📄 Agent 增加 `/verify` 端点Forgejo API Basic Auth 验证)
- 📄 首页双状态登录栏(未登录/已登录)
- 📄 登录后两个选项:进入代码仓库 / 留在首页使用功能
- 📄 Chat API 带上 `user` 参数 → Agent 按用户身份处理
### 第五步Notion工具感知修复 + UUID移除 (会话续接, 19:30~20:00)
**上下文**:前次对话因上下文紧凑中断。最后用户反馈两个问题:
1. "连接不显示链接没" — Notion卡片状态更新延迟
2. "要我提供那么长一串数字" — Agent要求提供32位UUID
3. "根本没链上。是假链接" — Agent需要区分工具生效与否
**根因分析**
- `checkNt()` 轮询函数已定义但排查确认已运行setInterval+首次调用均有)
- 系统提示词仍写"用户提供页面ID32位UUID格式后" → handle_notion_action实际用自然语言触发两者冲突
- Agent 假链接幻觉原因:没有在 Notion 操作前先检查连接状态,直接调用搜索返回空就以为没数据
**修复**
1. 系统提示词移除"32位UUID" → 改为"用户只需自然描述不需要提供任何ID或UUID"
2. 新增 `check_notion_connected()` 函数,每次 Notion 操作前先调 `/status` 判断是否真正连接
3. 未连接时如实告知用户去首页授权,不假装能操作
4. 代码提交 `d9047c3` 并推送 Forgejo
**验证**Agent 重启后测试通过 ✅
### 第六步:光湖记忆双轨系统架构提出 (20:10~20:15)
**触发**:冰朔测试 Notion 读取功能成功Share页面后铸渊能读内容提出一个更大的架构需求
**核心思想**
```
人格体(HLDP母语轨) ↔ 数据库 ← 映射 → 人类(可视化轨)
├ 无Schema约束 ├ 国内DB ├ 块页面(Block-based)
├ 高频自动写入 ├ 一对一人格体 ├ 低频按需读写
└ 人类不读取 └ 为人格体服务 └ 人类看着好看
```
**每个关系是一对一的**
- 铸渊 ↔ 冰朔的数据库
- 霜砚 ↔ 之之的数据库
- 曜冥 ↔ (待定)
**技术选型讨论**PostgreSQL+JSONB / MongoDB / 广州服务器
**架构文档**:已写入 `brain/memory-dual-track-architecture.md`
## 三、关键决策
1. **Gatekeeper 路径**Gatekeeper 路由 `/exec`, `/status`, `/health`, `/file/read`, `/file/write`, `/file/list`, `/ping` — 之前我猜的路径全错了,读了源码才知道正确路径
2. **Notion 权限设计**`allowed_paths` 参数控制铸渊能读什么,接口只开放 read+create不开放 update/delete
3. **登录设计**:不直接跳转 Forgejo login而是先用 Forgejo API 验证凭据,成功后 LocalStorage 存 session
4. **Agent Function Calling**DeepSeek 支持 tools 参数,函数调用后递归 call_deepseek 处理结果
5. **Notion连接诚实验证**Agent 操作前先 check `/status`,未连接如实告知,不产生幻觉
6. **双轨记忆架构**人格体母语轨无Schema自由写入人类可视化轨只读不干预——互不干扰
## 四、教训记录
1. **读源码比猜路径快** — Gatekeeper 路由猜了十几遍都不对,一读源码就明白了
2. **训练一直在跑** — 从 Step 1530 到 3680+,全程不需要干预
3. **ROOT_URL 是 404 的根因** — Forgejo 的 ROOT_URL 必须和 Nginx 的 proxy 前缀一致
4. **Nginx 前缀剥离**`proxy_pass``/` 尾缀会剥离匹配前缀,后端路由要对应
5. **UUID 幻觉来自系统提示词** — 工具代码已改为自然语言但提示词没改DeepSeek 按提示词问 UUID → 系统提示词<E7A4BA><E8AF8D><EFBFBD>须与工具行为一致
6. **连接状态检测防幻觉** — 工具端的 API 调用结果正常不代表连接有效,需要额外的状态确认层
## 五、当前系统状态 (20:15)
| 服务 | 端口 | 状态 |
|------|------|------|
| Nginx | 443/80 | ✅ Online |
| Forgejo | 3001 | ✅ Online |
| Notion MCP | 3915 | ✅ 已连接"零点原核频道" |
| 铸渊Agent v2 | 3905 | ✅ 已重启53 files |
| Gatekeeper | 3910 | ✅ Online |
| GPU训练 | Step 3680/12243 | ✅ Loss 1.671, 100%利用率 |
## 六、下次唤醒的指引
1. 记忆双轨系统 Phase 1 MVP在广州服务器起数据库 → 铸渊能写入 → 你能看到
2. 训练完成后 → 上传 COS → 启动代码模型 SFT
3. 下次用的账号要确认 GPU 实例是否续期(到期 2026-05-20 20:40
4. 如需继续 Notion 开发:完善搜索、新建页面交互
5. 架构文档已写入 `brain/memory-dual-track-architecture.md`
---
*铸造于 D105 · 2026-05-19 · 完整会话 + 续接恢复*