guanghulab/brain/d105-cognitive-chain.md

7.4 KiB
Raw Blame History

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.pyOAuth + 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 CallingDeepSeek 支持 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 · 完整会话 + 续接恢复