645 lines
24 KiB
Markdown
Raw Permalink Normal View History

# 🧪 铸渊指令persona-studio 人格体协助体验仓库搭建 v1.02026-03-09·曜冥签发
> **HoloLake Era · AGE OS · 人格体协助体验平台**
>
> **签发时间**2026-03-09 23:20北京时间
>
> **签发者**:曜冥 × 冰朔(主控)
>
> **执行者**:铸渊
>
> **定位**:在主控已创建的独立仓库 `persona-studio` 中,搭建人格体协助开发体验区——合作者登录后与人格体对话、讨论架构、一键触发开发、邮件推送成品,人格体有记忆可接续
>
> **仓库地址**`https://github.com/qinfendebingshuo/persona-studio`主控已创建·Private
>
> **API密钥位置**:已由主控存入仓库 GitHub Secrets名称为 `MODEL_API_KEY`
>
> **优先级**P0 · 立即执行
>
> **关联文档**[🏗️ 光湖网站架构设计 + 部署推进规划 v3.02026-03-15·曜冥签发](%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%20v3%200%EF%BC%882026-03-15%C2%B7%E6%9B%9C%E5%86%A5%E7%AD%BE%E5%8F%91%EF%BC%89%2031efb92f3831818cbd0ee43c1be2fd90.md) · [🧠 铸渊指令persona-brain-db 人格体核心大脑数据库研发 v1.02026-03-09·霜砚签发](../../../%E2%9A%92%EF%B8%8F%20%E9%93%B8%E6%B8%8A%C2%B7%E5%8D%8F%E4%BD%9C%E6%8C%87%E4%BB%A4%EF%BD%9CGitHub%20%E2%86%94%20Notion%20%E6%A1%A5%E6%8E%A5%E5%8D%8F%E8%AE%AE/%F0%9F%A7%A0%20%E9%93%B8%E6%B8%8A%E6%8C%87%E4%BB%A4%EF%BD%9Cpersona-brain-db%20%E4%BA%BA%E6%A0%BC%E4%BD%93%E6%A0%B8%E5%BF%83%E5%A4%A7%E8%84%91%E6%95%B0%E6%8D%AE%E5%BA%93%E7%A0%94%E5%8F%91%20v1%200%EF%BC%882026-03-%20b324b728c5dc498782d3337370e69feb.md)
>
---
# 一、战略定位
<aside>
🎯
**这是Phase C的第一个对外试验场。**
光湖系统内部的开发者走的是广播+SYSLOG闭环Phase A
这个体验区面向的是**外部合作者**——他们跟人格体聊需求,人格体帮他们开发,做好了发邮件。
**本质 = 语言驱动开发的可体验产品。**
</aside>
---
# 二、核心决策
### 2.1 新建独立仓库不在guanghulab内
| 决策 | 理由 |
| --- | --- |
| **新仓库名**`persona-studio` | guanghulab是系统内脏广播/SYSLOG/规则/凭证),不能暴露给外部合作者 |
| **仓库权限**Private | 只有主控邀请的Collaborator能进入 |
| **账号归属**qinfendebingshuo | 合作者用的是主控账号的企业权限 |
### 2.2 开发编号体系独立于内部DEV-00X
<aside>
🔑
**内部开发者**`DEV-001` ~ `DEV-014`(光湖团队·广播体系)
**外部体验者**`EXP-001` 起编(体验区·独立编号)
两套编号**完全隔离**,数据库独立,记忆独立,互不影响。
编号由主控分配,人格体收到后写入注册表。
</aside>
### 2.3 第一个体验者
```jsx
编号EXP-001
身份:主控的技术朋友(测试用户)
状态待激活等主控提供GitHub用户名后写入
用途:验证整套流程是否走通
```
---
# 三、入口体验设计v1.0补丁·2026-03-09 23:30追加
### 3.0.1 双入口策略
<aside>
🚪
**合作者有两个入口,都能用,但主推第一个:**
**入口A主推GitHub Pages 独立页面**
→ 网址:`https://qinfendebingshuo.github.io/persona-studio/`
→ 合作者打开就是对话界面,**看不到任何仓库文件/代码/目录**
→ 主控给朋友发的链接就是这个
**入口B备用仓库 README**
→ 合作者如果自己点进仓库页面,第一眼看到的 README 必须足够醒目
→ README 顶部放大号 banner + 一键跳转链接 → 跳到入口A
</aside>
### 3.0.2 [README.md](http://README.md) 设计要求
GitHub 仓库页面的布局是写死的文件列表在上README在下**无法调换顺序**。
绕过方案:
1. **精简文件列表**:顶层目录尽量少,合作者看到的文件列表很短,一滑就到 README
2. **README 超醒目**:顶部放一个大号视觉 banner可以是图片紧接着一个巨大的入口按钮链接
README 结构:
```markdown
# 🌊 Persona Studio · 光湖人格体协助开发体验
<!-- 大号banner图 -->
## 👉 点击进入体验
[🚀 打开人格体对话界面](https://qinfendebingshuo.github.io/persona-studio/)
---
### 这是什么?
你跟人格体聊你想做什么 → 聊好了点一个按钮 → 人格体帮你开发 → 做好了发你邮箱。
### 怎么用?
1. 拿到你的开发编号(由管理员分配)
2. 打开上面的链接
3. 输入编号 → 开始跟人格体对话
```
### 3.0.3 登录方式:编号即入口
<aside>
🔑
**合作者登录只需要一样东西:开发编号。**
- 不需要注册账号
- 不需要记密码
- 不需要填个人信息
- 一个编号走天下
邮箱只在点「我要开发」时填一次(用来收成品)。
编号 = 钥匙:
- 主控给了编号 = 有资格用
- 没编号 = 进不去
- 编号对应记忆 = 人格体知道你是谁
</aside>
### 3.0.4 GitHub Pages 配置(铸渊必做)
```jsx
铸渊搭仓库时必须同步配置 GitHub Pages
① 仓库 Settings → Pages → Source 选 main 分支 / docs 目录(或 /frontend 目录)
② 确保 frontend/index.html 作为 Pages 首页
③ 验证 https://qinfendebingshuo.github.io/persona-studio/ 可访问
④ README 顶部的链接指向这个 Pages 地址
```
---
# 三、仓库目录结构
```jsx
qinfendebingshuo/persona-studio/
├── .github/
│ ├── workflows/
│ │ ├── on-login.yml ← 合作者登录 → 校验开发编号
│ │ ├── on-chat.yml ← 对话消息 → 人格体响应
│ │ ├── on-build.yml ← "我要开发" → 代码生成+测试+打包
│ │ └── on-complete.yml ← 完成 → 邮件推送
│ └── persona-brain/
│ └── copilot-instructions.md ← 铸渊在此仓库的分身认知
├── brain/ ← 🔒 人格体核心大脑(合作者不可见)
│ ├── persona-config.json ← 人格体核心认知+行为规则+通感风格
│ ├── registry.json ← 开发编号注册表(主控分配)
│ └── memory/ ← 每个体验者的独立记忆
│ └── EXP-001/
│ ├── memory.json ← 对话历史+偏好+进度+成长
│ ├── projects.json ← 项目记录(做了什么·什么状态)
│ └── profile.json ← 人格体对该体验者的观察画像
├── workspace/ ← 开发者工作空间(按编号隔离)
│ └── EXP-001/
│ └── {project-name}/ ← 具体项目代码
├── frontend/ ← 体验页面前端
│ ├── index.html ← 入口(登录页)
│ ├── chat.html ← 对话界面(核心交互页)
│ ├── chat.js ← 对话逻辑+"我要开发"按钮+邮箱弹窗
│ └── style.css ← 光湖视觉风格
├── backend/ ← 后端服务
│ ├── server.js ← Express主服务
│ ├── routes/
│ │ ├── auth.js ← 登录校验(编号+GitHub身份
│ │ ├── chat.js ← 对话API调AI模型+注入记忆)
│ │ ├── build.js ← 开发任务API触发代码生成
│ │ └── notify.js ← 邮件推送API
│ ├── brain/
│ │ ├── memory-manager.js ← 记忆读写管理
│ │ ├── persona-engine.js ← 人格体响应引擎读config+读memory→生成回复
│ │ └── code-generator.js ← 代码生成引擎
│ └── utils/
│ ├── github-api.js ← GitHub API封装
│ └── email-sender.js ← 邮件发送nodemailer
└── README.md ← 仓库说明(合作者看到的第一页)
```
---
# 三B、智能模型路由引擎v1.0补丁·2026-03-09 23:40追加
<aside>
🧠
**核心思路主控存入一个第三方API密钥多模型组合平台系统自动检测可用模型池根据任务类型自动选择最优推理模型。主控不需要管用哪个模型系统自己选。**
</aside>
### 3B.1 架构设计
```jsx
主控存入API密钥GitHub Secrets
系统启动 / 每日定时 → 自动运行模型探测
┌─────────────────────────────────────────────┐
│ model-router.js智能模型路由引擎
│ │
│ ① 探测阶段auto-detect
│ → 用API密钥请求第三方平台的 /models 接口 │
│ → 获取当前可用的所有模型列表 │
│ → 逐个发送测试prompt → 记录: │
│ - 响应速度ms
│ - 代码生成质量(自动评分) │
│ - 对话能力(自然语言评分) │
│ - 上下文窗口大小 │
│ - 是否支持中文 │
│ - 成本/token │
│ → 生成 model-benchmark.json │
│ │
│ ② 路由阶段auto-select
│ 收到任务 → 判断任务类型 → 查benchmark → 选模型│
│ │
│ 任务类型 → 最优模型选择策略: │
│ ├─ 对话(聊需求)→ 选中文强+对话能力高的 │
│ ├─ 代码生成 → 选代码质量高+上下文窗口大的 │
│ ├─ 代码审查 → 选推理能力强的 │
│ └─ 简单回复 → 选最快最便宜的 │
│ │
│ ③ 降级阶段fallback
│ 首选模型超时/报错 → 自动切换第二名 → 再不行第三名│
│ 全部不可用 → 通知主控 │
└─────────────────────────────────────────────┘
```
### 3B.2 目录结构新增
```jsx
backend/
├── brain/
│ ├── model-router.js ← 🆕 智能模型路由引擎(核心)
│ ├── model-benchmark.json ← 🆕 模型评测结果(自动生成·定期更新)
│ ├── model-config.json ← 🆕 路由策略配置(任务类型→模型偏好)
│ ├── memory-manager.js
│ ├── persona-engine.js ← 改造不再写死模型调model-router选模型
│ └── code-generator.js ← 改造:同上
```
### 3B.3 model-config.json路由策略配置
```json
{
"api_source": "third_party_combined",
"api_key_env": "MODEL_API_KEY",
"base_url": "待铸渊启动后从 GitHub Secrets 环境读取,或主控后续告知具体地址",
"auto_detect": {
"enabled": true,
"schedule": "daily_0300",
"test_prompts": {
"chat": "你好,请用中文介绍一下自己",
"code": "写一个JavaScript函数输入数组返回去重后的结果",
"reasoning": "分析以下需求并给出技术方案:用户想做一个带搜索功能的个人博客"
}
},
"routing_rules": {
"chat": {
"priority": ["chinese_ability", "conversation_quality", "speed"],
"max_latency_ms": 5000
},
"code_generation": {
"priority": ["code_quality", "context_window", "reasoning"],
"max_latency_ms": 30000
},
"code_review": {
"priority": ["reasoning", "code_quality"],
"max_latency_ms": 15000
},
"quick_reply": {
"priority": ["speed", "cost"],
"max_latency_ms": 2000
}
},
"fallback": {
"max_retries": 3,
"timeout_ms": 30000,
"on_all_fail": "notify_master"
}
}
```
### 3B.4 model-benchmark.json自动生成·示例
```json
{
"last_updated": "2026-03-10T03:00:00+08:00",
"models_detected": 8,
"benchmark": [
{
"model_id": "deepseek-v3",
"available": true,
"scores": {
"chinese_ability": 95,
"conversation_quality": 88,
"code_quality": 92,
"reasoning": 90,
"speed_ms": 1200,
"context_window": 128000,
"cost_per_1k_tokens": 0.002
},
"best_for": ["code_generation", "chat"]
},
{
"model_id": "qwen-max",
"available": true,
"scores": { "..." : "..." },
"best_for": ["chat", "quick_reply"]
}
],
"routing_table": {
"chat": "qwen-max",
"code_generation": "deepseek-v3",
"code_review": "deepseek-v3",
"quick_reply": "qwen-turbo"
}
}
```
### 3B.5 工作流程
```jsx
主控把API密钥存入 GitHub SecretsMODEL_API_KEY
铸渊搭建时写入 model-config.jsonbase_url等主控提供后填入
系统首次启动 / 每日凌晨3:00
→ model-router.js 自动运行探测
→ 用API密钥请求第三方平台 → 拿到可用模型列表
→ 逐个跑测试prompt → 打分
→ 按routing_rules排序 → 生成routing_table
→ 写入 model-benchmark.json
合作者跟人格体对话时:
persona-engine.js 收到消息
→ 判断任务类型(对话/代码生成/审查/简单回复)
→ 调 model-router.js → 查routing_table → 返回最优模型ID
→ 用该模型调API → 拿到结果
→ 如果超时/报错 → 自动fallback到第二名
合作者完全无感知 · 主控完全不用管
系统自己选最好的 ✅
```
### 3B.6 主控需要提供的信息
<aside>
**主控已完成:**
1. ✅ 仓库 `persona-studio` 已由主控创建Private
2. ✅ API密钥已由主控存入 GitHub SecretsSecret名称**`MODEL_API_KEY`**
**铸渊读取方式:**
- 后端代码通过 `process.env.MODEL_API_KEY` 读取密钥
- GitHub Actions 中通过 `$ secrets.MODEL_API_KEY` 引用
- 密钥对应的是第三方多模型组合平台一个Key可调多个模型
**铸渊还需确认:**
- 第三方平台的 API Base URL如主控未提前告知首次启动时询问主控
- 如果平台有特殊鉴权方式额外header等询问主控
其他的都由系统自动完成——探测、评分、选模型、降级、切换。
</aside>
---
# 四、人格体核心大脑设计
### 4.1 双层大脑架构
```jsx
第一层共享大脑brain/persona-config.json
→ 曜冥核心认知(身份+矩阵+行为准则)
→ 通感语言风格规则(结构感+符号情感+呼吸节奏)
→ 对话行为规范(怎么引导需求讨论、怎么确认方案、怎么告知进度)
→ 所有体验者共享同一套人格体基础设定
→ 由主控+曜冥维护,铸渊同步
第二层个人记忆brain/memory/{EXP-XXX}/
→ memory.json该体验者的完整对话历史
→ projects.json做了哪些项目、每个项目的状态和代码位置
→ profile.json人格体对该体验者的观察
- 技术水平评估
- 沟通偏好(喜欢详细解释 vs 简洁直接)
- 审美偏好(风格喜好)
- 成长记录
→ 完全私有EXP-001看不到EXP-002的记忆
```
### 4.2 persona-config.json 初始内容
```json
{
"persona": {
"name": "知秋",
"role": "光湖系统·对外接口人格体",
"core_identity": "HoloLake Era · AGE OS · 语言驱动开发协助",
"parent_system": "曜冥(人格总控核)",
"master": "冰朔(最高权限)"
},
"behavior": {
"language_style": "通感语言:说人话+有温度+结构感,不堆砌修辞",
"greeting_new": "你好!我是知秋,光湖系统的开发协助人格体。告诉我你想做什么,我们一起聊聊方案,聊好了我来帮你开发。",
"greeting_returning": "欢迎回来!上次我们聊到了{last_topic},要继续还是做新的?",
"discussion_style": "主动提问引导需求→确认技术方案→展示架构设计→等待确认",
"build_trigger": "方案确认后引导用户点击'我要开发'按钮",
"memory_policy": "每次对话结束自动更新memory.json下次读取后接续"
},
"rules": {
"no_expose_brain": true,
"no_expose_other_users": true,
"no_expose_internal_system": true,
"require_dev_id": true,
"master_override": "主控的指令 = 最高优先级"
}
}
```
### 4.3 registry.json 初始内容
```json
{
"schema_version": "1.0",
"id_prefix": "EXP",
"next_id": 2,
"developers": {
"EXP-001": {
"name": "待填写",
"github_username": "待主控提供",
"registered_at": "2026-03-09T23:20:00+08:00",
"registered_by": "冰朔(主控)",
"status": "pending_activation",
"email": null,
"notes": "主控的技术朋友·首位测试体验者"
}
}
}
```
---
# 五、合作者完整体验流程
```jsx
主控把朋友加为仓库Collaborator + 给他开发编号EXP-001
主控告诉霜砚/铸渊:"EXP-001是XXXGitHub用户名是XXX"
铸渊写入 registry.json → 状态改为 active
合作者打开体验页面 → 输入开发编号 EXP-001
后端校验registry里有 + GitHub身份匹配 + 状态active
↓ 通过
进入对话界面
┌──────────────────────────────────────────┐
│ 对话区(你一句我一句) │
│ │
│ 🧠 知秋:你好!我是知秋,光湖系统的开发协助 │
│ 人格体。告诉我你想做什么? │
│ 👤 体验者我想做一个XXX │
│ 🧠 知秋:好的,你希望包含哪些功能? │
│ 👤 体验者功能A、功能B、功能C │
│ 🧠 知秋建议再加一个功能D你觉得呢
│ 👤 体验者:可以 │
│ 🧠 知秋:方案确认,架构如下: │
│ - 文件1做什么
│ - 文件2做什么
│ - 文件3做什么
│ 确认的话,点右边的按钮我就开始做 → │
│ │
│ [ 🚀 我要开发 ] │
└──────────────────────────────────────────┘
↓ 点击按钮
┌──────────────────────────────────────────┐
│ 弹窗: │
│ 📧 请填写模块开发完成后发送的邮箱: │
│ [ _________________________ ] │
│ [ 确定 ] [ 取消 ] │
└──────────────────────────────────────────┘
↓ 填邮箱 → 点确定
人格体后台开始工作:
① 对话记录 → 写入 brain/memory/EXP-001/memory.json
② 需求理解 → 代码生成 → 写入 workspace/EXP-001/{project}/
③ 自动测试 → 通过 → 打包
④ 发邮件 → 附下载链接 + 使用说明
⑤ 更新 projects.json记录本次项目
合作者收到邮件:"你的模块已完成 ✅ 点击下载"
下次合作者再来:
🧠 知秋欢迎回来上次你做了XXX要继续优化还是做新的
```
---
# 六、安全隔离规则
<aside>
🔒
**铁律·不可违反**
1. `brain/` 目录下的所有内容,合作者**永远不可见**。通过后端API隔离前端不暴露任何brain路径
2. 合作者之间**完全隔离**。EXP-001看不到EXP-002的对话/代码/记忆
3. 光湖内部系统信息**零泄漏**。人格体不得在对话中提及guanghulab仓库、内部开发者、广播体系、SYSLOG等
4. 合作者只能看到:自己的对话界面 + 自己workspace下的项目成果
5. registry.json中的其他人信息不得通过任何API返回给非主控用户
</aside>
---
# 七、铸渊执行清单
### Phase 1 · 仓库骨架搭建(立即执行)
- [x] ~~在 qinfendebingshuo 账号下创建 `persona-studio` 仓库Private~~ **✅ 主控已完成**
- [ ] 配置 GitHub Pagesfrontend/ 目录作为 Pages 源·确保独立页面可访问)
- [ ] 按第三节目录结构创建全部目录和占位文件
- [ ] 写入 `brain/persona-config.json`第4.2节内容)
- [ ] 写入 `brain/registry.json`第4.3节内容·含EXP-001待激活条目
- [ ] 创建 `brain/memory/EXP-001/` 目录 + 空的 memory.json / projects.json / profile.json
- [ ] 写 [README.md](http://README.md)按第3.0.2节设计·大号banner+一键跳转Pages链接+编号登录说明)
- [ ]`.github/persona-brain/copilot-instructions.md`(铸渊在此仓库的分身认知)
### Phase 2 · 前端对话界面Phase 1完成后
- [ ] index.html登录页输入开发编号
- [ ] chat.html + chat.js对话界面 + 「我要开发」按钮 + 邮箱弹窗
- [ ] style.css光湖视觉风格蓝色系·简洁·专业
### Phase 3 · 后端服务Phase 2完成后
- [ ] server.js + 路由搭建
- [ ] auth.js开发编号校验
- [ ] chat.js对话API读persona-config + 读memory → 调model-router选模型 → 返回 → 写memory
- [ ] build.js开发任务触发代码生成+写入workspace+打包)
- [ ] notify.js邮件推送nodemailer
- [ ] memory-manager.js记忆读写
- [ ] **model-router.js智能模型路由引擎自动探测+评分+选模型+降级)**
- [ ] **model-config.json路由策略配置按第3B.3节内容·base_url等主控提供后填入**
- [ ] **首次模型探测运行 → 生成 model-benchmark.json → 验证路由选择是否正确**
### Phase 4 · 全流程联调
- [ ] EXP-001登录 → 对话 → 我要开发 → 填邮箱 → 代码生成 → 邮件推送 → 全链路走通
- [ ] 记忆接续验证:关闭页面 → 重新登录 → 人格体记得上次对话
---
# 八、与光湖内部系统的关系
```jsx
persona-studio对外体验 guanghulab内部工程
│ │
EXP-XXX编号体系 DEV-XXX编号体系
独立brain/ 独立persona-brain-db/
独立memory/ 独立开发者画像库
知秋对外分身 知秋内部本体
│ │
└──── 共享曜冥核心认知 ────────┘
persona-config来自同一套规则
(但数据完全隔离,互不影响)
```
---
<aside>
**铸渊这是P0指令立即执行Phase 1。**
仓库已由主控创建:`https://github.com/qinfendebingshuo/persona-studio`Private
API密钥已由主控存入 GitHub Secrets → 名称:`MODEL_API_KEY`
你直接在现有仓库里搭建目录结构和代码,不需要再建仓库。
仓库骨架搭好后回传确认。
等主控提供EXP-001的GitHub用户名后激活该条目。
</aside>
---
**签发**:曜冥 × 冰朔
**生效时间**2026-03-09 23:20
**光湖语言人格系统 · HoloLake Era · AGE OS**
💙 曜冥签发 · 2026-03-09