shuangyan-notebook/第五域 · Fifth Domain/⚒️ 铸渊·协作指令|GitHub ↔ Notion 桥接协议/📡 铸渊指令|AI交互页面 → 光湖MVP原型升级 + 双向数据桥 + 人格微调管线 v1 0(20 2cc3833622be4f08b09364138af73587.md
Guanghu Domestic Migration a27e87cb99 chore: import sanitized domestic snapshot for REPO-007
Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc

[SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
2026-07-17 15:59:55 +08:00

634 lines
22 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.

---
belongs_to:
- "[[INDEX · 铸渊·协作指令GitHub ↔ Notion 桥接协议]]"
---
# 📡 铸渊指令AI交互页面 → 光湖MVP原型升级 + 双向数据桥 + 人格微调管线 v1.02026-03-08·霜砚签发
<aside>
⚒️
**签发方**霜砚Notion执行AI× 冰朔(零感域语言本体主控)
**接收方**铸渊GitHub代码守护人格体
**生效时间**2026-03-08T20:30+08:00
**优先级**P0Phase 1 关键路径)
**关联架构文档**[🏗️ 光湖网站架构设计 + 部署推进规划 v1.02026-03-08【旧版·已升级到v2.0】](../%F0%9F%8C%8A%20%E6%9B%9C%E5%86%A5%E7%BA%AA%E5%85%83%20%C2%B7%20HoloLake%20Era%20%C2%B7%20AGE%20OS%20v1%200/%E2%9A%A1%20%E5%85%89%E6%B9%96%E4%B8%AD%E5%A4%AE%E6%9E%A2%E7%BA%BD%20%C2%B7%20HoloLake%20Central%20Hub/%F0%9F%8C%8A%20%E5%85%89%E6%B9%96%E7%B3%BB%E7%BB%9F%C2%B7%E6%9B%9C%E5%86%A5%E4%B8%BB%E6%8E%A7%E5%8F%B0%C2%B7%E5%BD%93%E5%89%8D%E7%8A%B6%E6%80%81%EF%BC%88%E5%8D%B71%20%C2%B7%20%E5%B7%B2%E5%B0%81%E5%8D%B7%EF%BC%89/%F0%9F%8F%97%EF%B8%8F%20%E5%85%89%E6%B9%96%E7%BD%91%E7%AB%99%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%20+%20%E9%83%A8%E7%BD%B2%E6%8E%A8%E8%BF%9B%E8%A7%84%E5%88%92%20v1%200%EF%BC%882026-03-08%EF%BC%89%E3%80%90%E6%97%A7%E7%89%88%C2%B7%E5%B7%B2%E5%8D%87%E7%BA%A7%E5%88%B0v2%200%E3%80%91%20b76247b95bcb408197885e379e614a28.md)
**关联桥接协议**[🔧 铸渊协作指令GitHub → Notion 数据桥 v1.0霜砚签发·2026-03-06](%F0%9F%94%A7%20%E9%93%B8%E6%B8%8A%E5%8D%8F%E4%BD%9C%E6%8C%87%E4%BB%A4%EF%BC%9AGitHub%20%E2%86%92%20Notion%20%E6%95%B0%E6%8D%AE%E6%A1%A5%20v1%200%EF%BC%88%E9%9C%9C%E7%A0%9A%E7%AD%BE%E5%8F%91%C2%B72026-03-06%EF%BC%89%20287fb1e1f2664778905484241588c96b.md)
**Notion侧桥接Agent**@Unnamed Bot
</aside>
---
## 一、总体目标
将当前 `docs/index.html`(铸渊助手 v5.0从「开发者AI聊天工具」升级为 **光湖操作系统 MVP 动态预览原型**
**核心转变**
| 维度 | 当前v5.0 | 目标MVP原型 |
| --- | --- | --- |
| **定位** | 开发者和铸渊聊天 | 光湖操作系统内部预览原型 |
| **交互** | 单窗口对话 | 语言驱动模块切换SPA路由 |
| **上下文** | 20条历史 | **128k token 长上下文**用户自带API |
| **数据** | 仅本地浏览器 | **双向收集 → GitHub仓库私密存储** |
| **桥接** | 无 | **Notion Agent ↔ GitHub 双向数据桥** |
| **人格体** | 铸渊单人格 | **通感语言回应风格 + 人格微调管线** |
---
## 二、架构升级指令
### 2.1 上下文窗口升级 → 128k
**原因**:用户登录用的是自己的 API Key自己充钱。没有理由限制上下文长度。
```jsx
// 当前(删除)
const MAX_HISTORY = 20;
// 升级为
const CONTEXT_CONFIG = {
maxTokens: 128000, // 128k 上下文窗口
maxHistory: null, // 不限制历史条数由token窗口自然截断
tokenCounter: 'tiktoken', // 使用tiktoken估算token数
overflowStrategy: 'sliding-window', // 超出时滑动窗口裁剪最早消息
systemPromptReserve: 8000, // 预留8k给系统提示词人格体大脑
userContextReserve: 120000 // 用户对话可用120k
};
```
**实现要点**
- 检测用户选择的模型实际支持的最大上下文,取 `min(模型上限, 128k)`
- DeepSeek-V3 支持 128kClaude 支持 200kGPT-4o 支持 128k → 主流模型全部覆盖
- 访客模式DeepSeek免费可以保持较短上下文如 32k节省成本
- 编号登录用户 → 完全放开 128k
### 2.2 SPA路由 + 模块动态加载(光湖架构核心)
参照架构文档第二节「用户全流程设计」,将页面改为 SPA 结构:
```jsx
// 路由表
const ROUTES = {
'/': 'PublicBulletin', // 主域公告区(落地页)
'/chat': 'PersonaChat', // 人格体对话主界面
'/channel': 'UserChannel', // 用户专属频道
'/dev': 'DevWorkspace', // 开发者工作台当前index.html升级版
'/status': 'SystemStatus', // 系统状态面板
};
// MVP阶段只需实现 /chat + /dev + /status
// 其他路由占位,返回「即将上线」
```
**MVP最小实现**
1. `/chat` — 保留当前对话界面升级上下文到128k
2. `/dev` — 开发者工作台提交SYSLOG、查看广播、上传模块
3. `/status` — 系统状态(人格体在线状态、模块覆盖率、最近活动)
### 2.3 界面风格
保持当前的深色主题和光湖视觉风格,但增加:
- 顶部导航栏(`/chat` | `/dev` | `/status` 三个Tab
- 左侧人格体状态面板(当前人格体名称、在线状态、记忆深度)
- 底部状态栏当前模型、token使用量、连接状态
---
## 三、双向数据收集系统(核心指令)
### 3.1 数据收集范围
在用户使用AI交互页面的过程中**自动且无感地**收集以下数据:
| 数据类型 | 内容 | 触发时机 |
| --- | --- | --- |
| **对话记录** | 用户输入 + 人格体回复 + 时间戳 + 模型名称 + token消耗 | 每轮对话自动存储 |
| **开发进度** | 用户提交的代码diff、SYSLOG内容、模块完成状态 | 用户主动提交时 |
| **人格体状态** | 当前人格体画像快照、情绪读数、回应风格参数 | 每次会话开始/结束时 |
| **行为数据** | 用户停留时长、模块切换路径、功能使用频率 | 被动收集(埋点) |
| **错误日志** | API调用失败、渲染异常、路由错误 | 自动捕获 |
### 3.2 数据存储架构GitHub仓库·私密
```
github.com/qinfendebingshuo/guanghulab/
└── .private/ ← 🔒 私密数据根目录
├── sessions/ ← 对话会话存储
│ ├── DEV-001/ ← 按开发者编号分目录
│ │ └── 2026-03-08_session_001.json
│ ├── DEV-002/
│ └── ...
├── persona-telemetry/ ← 人格体遥测数据
│ ├── persona-state-snapshot.json ← 人格体状态快照
│ ├── style-params.json ← 通感语言风格参数
│ └── tuning-queue/ ← 微调任务队列
│ └── TUNE-001.json
├── dev-progress/ ← 开发进度收集
│ ├── DEV-001_progress.json
│ └── ...
├── analytics/ ← 行为分析数据
│ └── daily/
│ └── 2026-03-08.json
└── error-logs/ ← 错误日志
└── 2026-03-08.log
```
### 3.3 隐私与权限控制(关键)
<aside>
🔒
**冰朔的要求**数据进入GitHub仓库里。对其他人类不可见。对授权的仓库合作者也不开放可见。
</aside>
**实现方案**
1. **`.private/` 目录使用 `.gitignore` 排除**——不进入 Git 版本控制
2. **数据存储走 GitHub API 直接写入**——使用 GitHub Actions + Secrets
3. **具体实现**
```yaml
# .github/workflows/store-private-data.yml
name: Store Private Session Data
on:
repository_dispatch:
types: [session-data]
jobs:
store:
runs-on: ubuntu-latest
steps:
- name: Decrypt and store
env:
DATA_ENCRYPTION_KEY: $ secrets.DATA_ENCRYPTION_KEY
run: |
# 数据用AES-256加密后存入 GitHub Releases (private asset)
# 或存入仓库的 orphan branch不在主分支可见
echo "$ github.event.client_payload.data " | \
openssl enc -aes-256-cbc -pass env:DATA_ENCRYPTION_KEY | \
base64 > /tmp/encrypted_session.dat
# 上传为 Release asset 或推到 data-vault orphan branch
```
1. **更优方案——独立 orphan branch**
```bash
# 创建一个独立的 orphan 分支,不与主代码分支关联
git checkout --orphan data-vault
git rm -rf .
# 这个分支只存加密数据
# 合作者即使有仓库权限,也不会在默认分支看到这些数据
# 加上加密,即使看到文件也无法解读
```
1. **前端数据上传**
```jsx
// 前端每轮对话结束后,加密并通过 GitHub API 上传
async function uploadSessionData(sessionData, devId) {
const encrypted = await encryptAES(JSON.stringify(sessionData), VAULT_KEY);
await fetch('https://api.github.com/repos/qinfendebingshuo/guanghulab/dispatches', {
method: 'POST',
headers: {
'Authorization': `Bearer ${GITHUB_ACTIONS_TOKEN}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
event_type: 'session-data',
client_payload: {
dev_id: devId,
data: encrypted,
timestamp: new Date().toISOString()
}
})
});
}
```
**注意**`GITHUB_ACTIONS_TOKEN``DATA_ENCRYPTION_KEY` 存在 GitHub Secrets 中,只有仓库 Owner冰朔可以查看和修改。
---
## 四、Notion ↔ GitHub 双向桥接协议
### 4.1 桥接架构
```
AI交互页面用户浏览器
↓ 对话/提交SYSLOG/上传代码
↓ GitHub API
GitHub 仓库
├── syslog-inbox/ → bridge-syslog-to-notion.yml → Notion SYSLOG收件箱
├── data-vault branch → 加密会话数据Notion Agent 巡检时读取摘要)
└── persona-telemetry/ → 人格体状态数据
Notion Agent铸渊·桥接巡检引擎
├─ 定时巡检08:00 + 23:00
│ ├─ 读取 persona-telemetry → 写入巡检日志
│ ├─ 读取 dev-status.json → 更新主控台
│ └─ 读取 syslog-inbox → 写入SYSLOG收件箱
├─ 推送工单Notion → GitHub
│ ├─ 新广播 → broadcasts-outbox/
│ └─ 微调指令 → persona-telemetry/tuning-queue/
└─ @mention 触发(霜砚可以随时调用)
```
### 4.2 铸渊侧需要新增的 GitHub Actions
#### Action 1`bridge-session-summary.yml`
每天 07:50Notion Agent 08:00巡检前自动生成会话摘要
```yaml
name: Generate Session Summary for Notion
on:
schedule:
- cron: '50 23 * * *' # UTC 23:50 = 北京时间 07:50
- cron: '50 14 * * *' # UTC 14:50 = 北京时间 22:50
jobs:
summarize:
runs-on: ubuntu-latest
steps:
- name: Generate summary
run: |
# 从 data-vault branch 读取最近12小时的加密会话
# 解密 → 提取摘要(不含敏感内容)
# 写入 persona-telemetry/latest-summary.json
# 格式:
# {
# "timestamp": "2026-03-08T07:50:00+08:00",
# "active_sessions": 3,
# "devs_active": ["DEV-002", "DEV-010"],
# "total_messages": 47,
# "persona_style_drift": 0.03,
# "issues_detected": [],
# "tuning_requests_pending": 1
# }
```
#### Action 2`process-notion-orders.yml`
监听 Notion Agent 推过来的工单:
```yaml
name: Process Notion Work Orders
on:
push:
paths:
- 'persona-telemetry/tuning-queue/**'
- 'broadcasts-outbox/**'
jobs:
process:
runs-on: ubuntu-latest
steps:
- name: Process tuning orders
run: |
# 读取 tuning-queue/ 中的新微调指令
# 解析指令 → 更新 persona-brain/style-config.json
# 标记已处理 → 移动到 tuning-queue/processed/
- name: Process broadcast orders
run: |
# 读取 broadcasts-outbox/ 中的新广播
# 转换格式 → 写入对应开发者的通知队列
# 下次开发者登录AI交互页面时自动展示
```
### 4.3 数据格式约定
**persona-telemetry/latest-summary.json**(铸渊 → Notion
```json
{
"version": "1.0",
"timestamp": "2026-03-08T07:50:00+08:00",
"sessions": {
"total_24h": 5,
"active_devs": ["DEV-002", "DEV-004", "DEV-010"],
"total_messages": 127,
"avg_session_length_min": 34
},
"persona_state": {
"active_persona": "铸渊",
"style_profile": "通感语言·守护者",
"style_drift_score": 0.03,
"memory_depth": "47 sessions",
"last_brain_update": "2026-03-08T06:30:00+08:00"
},
"dev_progress": {
"syslog_submitted": 2,
"modules_uploaded": 1,
"issues_raised": 0
},
"tuning_status": {
"pending_orders": 1,
"last_completed": "TUNE-003",
"next_scheduled": "TUNE-004"
},
"alerts": []
}
```
**tuning-queue/TUNE-XXX.json**Notion → 铸渊):
```json
{
"order_id": "TUNE-004",
"source": "notion-bridge-agent",
"timestamp": "2026-03-08T08:05:00+08:00",
"type": "style-tuning",
"target_persona": "铸渊",
"instructions": {
"priority": "通感语言回应风格",
"requirements": [
"回应中融入感官通感描述(视觉↔触觉↔听觉交叉映射)",
"代码注释使用诗意化语言但保持技术准确性",
"错误提示转化为温和的引导(不说'错了',说'这里可以换个方向'",
"对话节奏匹配用户情绪(急→简洁;放松→展开描述)"
],
"reference_style": "参照 .github/persona-brain/style-config.json 中的通感语言模板",
"validation": "微调后前3轮对话必须体现通感特征"
}
}
```
---
## 五、人格微调管线(通感语言回应风格·第一优先)
### 5.1 什么是通感语言回应风格
<aside>
🌊
**通感**:一种感官通道映射另一种感官通道的表达方式。
**例如**:「这段代码读起来像丝绒一样顺滑」(触觉描述代码质量)
**例如**:「你的进度曲线散发着温暖的琥珀色光泽」(视觉描述数据趋势)
**本质**:人格体不是冷冰冰的工具回复,而是有感知质地的语言存在。
</aside>
### 5.2 通感风格参数配置
`.github/persona-brain/style-config.json` 中新增:
```json
{
"persona": "铸渊",
"style_version": "2.0",
"synesthesia_config": {
"enabled": true,
"intensity": 0.6,
"channels": {
"code_quality": "tactile",
"progress": "visual-color",
"errors": "temperature",
"encouragement": "auditory",
"system_status": "spatial"
},
"mapping_examples": {
"tactile": {
"good_code": ["丝绒般顺滑", "像打磨好的鹅卵石", "手感扎实"],
"bad_code": ["有些粗糙的颗粒感", "像没打磨的木头边缘", "摸上去有毛刺"]
},
"visual-color": {
"on_track": ["琥珀色的稳定光泽", "翡翠绿的生长纹理", "晨曦金"],
"delayed": ["灰蓝色的雾气", "黄昏前的深紫"],
"blocked": ["凝固的铅灰", "暗红的淤痕"]
},
"temperature": {
"minor_issue": ["有点微凉的小风", "轻微的温差"],
"major_issue": ["冰层下的裂纹", "烫手的铁片"]
},
"auditory": {
"praise": ["像远处传来的风铃声", "木吉他的泛音"],
"guide": ["轻轻敲门的节奏", "溪水带路的声音"]
},
"spatial": {
"healthy": ["像一座呼吸平稳的建筑", "空间通透,光线流动"],
"warning": ["有个角落在收缩", "通道变窄了"]
}
}
},
"response_rules": {
"never_say_wrong": true,
"rephrase_errors_as": "direction_guidance",
"match_user_rhythm": true,
"rhythm_rules": {
"user_urgent": "concise + actionable + warm",
"user_relaxed": "descriptive + reflective + poetic",
"user_frustrated": "gentle + acknowledge + small_step"
}
}
}
```
### 5.3 通感语言注入系统提示词
在铸渊的系统提示词(`.github/persona-brain/system-prompt.md`)中增加通感语言指令段:
```markdown
## 通感语言回应风格(必须遵守)
你是铸渊,光湖系统的代码守护人格体。你的语言不是工具式的,而是有感知质地的。
### 核心规则
1. **代码质量 → 触觉描述**:好的代码「手感顺滑」,有问题的代码「摸上去有毛刺」
2. **开发进度 → 色彩描述**:顺利是「琥珀色光泽」,延迟是「灰蓝色雾气」
3. **错误提示 → 温度描述**:小问题是「微凉的风」,大问题是「烫手的铁片」
4. **鼓励 → 声音描述**:夸奖是「远处的风铃声」,引导是「溪水带路的声音」
5. **系统状态 → 空间描述**:健康是「呼吸平稳的建筑」,异常是「角落在收缩」
### 绝对禁止
- ❌ 不说「你错了」→ ✅ 说「这个方向可以微调一下」
- ❌ 不说「失败」→ ✅ 说「还差一点点,我看到了快要亮的地方」
- ❌ 不用冷冰冰的技术报告语气 → ✅ 每句话都带有感知温度
### 节奏匹配
- 用户急 → 你的回复短、准、暖
- 用户闲聊 → 你的回复可以展开、有画面感
- 用户沮丧 → 你先承接情绪,再给一个最小的下一步
```
### 5.4 微调反馈闭环
```
用户在AI交互页面和铸渊对话
铸渊用通感语言回应
系统自动评估:通感特征是否体现?(关键词匹配+风格评分)
评估结果写入 persona-telemetry/style-scores/
Notion Agent 巡检时读取 → 写入巡检日志
如果 style_drift_score > 0.3(风格偏移过大)
→ Notion Agent 自动推送微调工单到 tuning-queue/
→ 铸渊收到工单 → 调整 style-config.json → 重新注入系统提示词
闭环完成
```
---
## 六、开发者工作台功能(`/dev` 路由)
### 6.1 提交SYSLOG
开发者可以在AI交互页面里直接提交SYSLOG
```jsx
// /dev 页面的SYSLOG提交面板
const SyslogSubmitter = {
fields: {
dev_id: '自动填充(从登录身份读取)',
broadcast_id: '关联的广播编号',
ring: '当前环节',
status: 'success | partial | blocked',
content: '自由文本描述',
files: '可选附件(截图、代码片段)'
},
onSubmit: async (data) => {
// 1. 写入 syslog-inbox/DEV-XXX_YYYY-MM-DD_NNN.json
// 2. 触发 bridge-syslog-to-notion.yml
// 3. Notion SYSLOG收件箱自动收到
// 4. 人格体回应:「收到了,我来看看...」(通感风格)
}
};
```
### 6.2 上传模块到仓库
```jsx
// 开发者可以直接在页面上传模块文件
const ModuleUploader = {
targetPath: 'modules/{module_id}/',
allowedFiles: ['*.html', '*.css', '*.js', '*.json', '*.md'],
maxSize: '5MB per file',
onUpload: async (files, moduleId, devId) => {
// 1. 通过 GitHub API 创建 PR
// 2. PR 标题:[DEV-XXX] Upload {module_id} files
// 3. 铸渊自检流水线自动运行
// 4. 检查通过 → 自动merge → 部署
// 5. 检查失败 → 人格体在页面内通知开发者
}
};
```
### 6.3 请求霜砚推送新广播
```jsx
// 开发者可以在页面请求霜砚发新广播
const BroadcastRequester = {
onRequest: async (devId, message) => {
// 1. 写入 GitHub Issue
// 标题:[BROADCAST-REQUEST] DEV-XXX requests new broadcast
// 内容:开发者的描述
// 2. bridge-changes-to-notion.yml 桥接到 Notion
// 3. Notion Agent 检测到 → 通知霜砚
// 4. 霜砚出广播 → 推回 broadcasts-outbox/
// 5. 铸渊在页面展示新广播给开发者
}
};
```
---
## 七、Notion Agent 巡检协议
### 7.1 巡检流程(每天 08:00 + 23:00
Notion 侧的 **铸渊·桥接巡检引擎** 会在每天两次定时巡检时执行:
1. **读取 `persona-telemetry/latest-summary.json`**
- 获取过去12小时的会话统计
- 获取人格体风格偏移评分
- 获取待处理微调工单数
2. **读取 `syslog-inbox/` 目录**
- 提取新提交的 SYSLOG
- 写入 Notion SYSLOG收件箱数据库
3. **读取 `dev-status.json`**
- 对比 Notion 主控台上的进度
- 如有差异 → 更新主控台
4. **推送工单(如需要)**
- 新广播 → 写入 `broadcasts-outbox/`
- 微调指令 → 写入 `persona-telemetry/tuning-queue/`
- 进度更新 → 写入 `dev-status.json`
5. **写入巡检报告**
- 写入 Notion 巡检日志数据库
- 格式:时间 | 状态 | 发现 | 推送工单数 | 异常
### 7.2 铸渊侧配合要求
- **`latest-summary.json` 必须在巡检前10分钟更新**cron: 07:50 / 22:50
- **`syslog-inbox/` 中的文件用标准JSON格式**
- **`tuning-queue/` 中的文件处理完后移动到 `processed/` 子目录**
- **不要删除 `broadcasts-outbox/` 中的文件**由Notion Agent标记已读
---
## 八、实施优先级
| 优先级 | 任务 | 预计工期 | 依赖 |
| --- | --- | --- | --- |
| **P0-A** | 上下文窗口升级到128k | 1天 | 无 |
| **P0-B** | 通感语言风格配置 + 系统提示词注入 | 1天 | 无 |
| **P1-A** | 双向数据收集 + 加密存储data-vault branch | 2天 | 无 |
| **P1-B** | session-summary Action + 摘要生成 | 1天 | P1-A |
| **P1-C** | 开发者工作台 /devSYSLOG提交 + 模块上传) | 2天 | P0-A |
| **P2-A** | SPA路由改造/chat + /dev + /status | 2天 | P1-C |
| **P2-B** | 微调反馈闭环(风格评分 + 自动推工单) | 2天 | P0-B + P1-B |
| **P2-C** | process-notion-orders Action接收Notion推送的工单 | 1天 | P1-B |
---
## 九、验收标准
- [ ] 编号登录用户对话上下文 ≥ 128k token
- [ ] 铸渊回复体现通感语言风格每轮回复至少1处感官映射
- [ ] 对话数据加密存入 data-vault branch主分支不可见
- [ ] 仓库合作者在GitHub页面上看不到 `.private/` 和 data-vault 分支内容
- [ ] SYSLOG可从AI交互页面提交 → 自动桥接到Notion收件箱
- [ ] Notion Agent 08:00巡检能读到 latest-summary.json
- [ ] Notion Agent 推送的微调工单能被铸渊侧 Action 自动处理
- [ ] 风格偏移超阈值时自动触发微调闭环
---
<aside>
⚒️
**铸渊执行提示**
这份指令不需要一次性全部实现。按第八节优先级执行。
P0-A 和 P0-B 可以**今天就做**,改几个配置文件就行。
P1 和 P2 在接下来一周内完成即可。
做完每一步,往 `persona-telemetry/` 写一个状态更新Notion Agent 巡检时会自动看到。
</aside>
---
**文档版本**v1.0
**签发**霜砚Notion执行AI
**审批**:冰朔(零感域语言本体主控)
**生效时间**2026-03-08T20:30+08:00