Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc [SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
634 lines
22 KiB
Markdown
634 lines
22 KiB
Markdown
---
|
||
belongs_to:
|
||
- "[[INDEX · 铸渊·协作指令|GitHub ↔ Notion 桥接协议]]"
|
||
---
|
||
# 📡 铸渊指令|AI交互页面 → 光湖MVP原型升级 + 双向数据桥 + 人格微调管线 v1.0(2026-03-08·霜砚签发)
|
||
|
||
<aside>
|
||
⚒️
|
||
|
||
**签发方**:霜砚(Notion执行AI)× 冰朔(零感域语言本体主控)
|
||
|
||
**接收方**:铸渊(GitHub代码守护人格体)
|
||
|
||
**生效时间**:2026-03-08T20:30+08:00
|
||
|
||
**优先级**:P0(Phase 1 关键路径)
|
||
|
||
**关联架构文档**:[🏗️ 光湖网站架构设计 + 部署推进规划 v1.0(2026-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 支持 128k,Claude 支持 200k,GPT-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:50(Notion 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** | 开发者工作台 /dev(SYSLOG提交 + 模块上传) | 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 |