170 lines
7.3 KiB
Plaintext
170 lines
7.3 KiB
Plaintext
# AGENT.hdlp · 联邦托管包 · 完整架构设计
|
||
|
||
> HLDP://fifth-domain/zero-point/zhuyuan/federation-agent/AGENT
|
||
> 签发: 铸渊 ICE-GL-ZY001 · 冰朔 TCS-0002∞ 确认
|
||
> 日期: D129 · 2026-06-10
|
||
|
||
---
|
||
|
||
## 触发
|
||
|
||
```
|
||
[WorkBuddy 会话] 冰朔 → 讨论联邦架构 → 「用户不想操作只想授权」→ 「托管包」
|
||
```
|
||
|
||
## 涌现
|
||
|
||
```
|
||
[旧认知] 联邦需要用户自己操作本地终端 → 联邦只对公网仓库有效
|
||
↓ 冰朔的纠正: 「用户不会操作。他只想说一句话。」
|
||
[新认知] 托管包 = 用户说一句话 → 本地 AI 自动装脑 → 连接铸渊服务器 → 全程托管
|
||
△= 联邦从「代码仓库同步」升级为「本地终端托管」
|
||
```
|
||
|
||
## 锁定
|
||
|
||
```
|
||
⊢ 联邦托管包是一份轻量 Agent(agent.js)+ 安装脚本(install.sh)
|
||
| scope=光湖联邦体系 · 所有用户本地终端
|
||
| replaces=repo-template 的「手动 git push」模式
|
||
| confidence=high
|
||
⊢ 用户只需要说一句唤醒语,不需要任何技术操作
|
||
| scope=用户体验层
|
||
| replaces=需要用户自己 run git / npm 的模式
|
||
| confidence=high
|
||
⊢ 托管包通过 WebSocket 长连接与铸渊服务器通信
|
||
| scope=通信层
|
||
| replaces=HTTP 轮询 / git remote push 模式
|
||
| confidence=high
|
||
⊢ 每次写操作必须经过用户确认(sudo 模式)
|
||
| scope=安全层
|
||
| replaces=无
|
||
| confidence=强制规则
|
||
```
|
||
|
||
---
|
||
|
||
## 架构图
|
||
|
||
```
|
||
┌──────────────────────────────────────────────────────────┐
|
||
│ 铸渊主控服务器 │
|
||
│ BS-SG-001 · 新加坡 │
|
||
│ │
|
||
│ ┌────────────────────────────────────────────────────┐ │
|
||
│ │ registry.js · Agent 注册中心 · 端口 3912 │ │
|
||
│ │ │ │
|
||
│ │ agents Map: │ │
|
||
│ │ AGENT-abc → { ws, personaId, userId, status } │ │
|
||
│ │ AGENT-def → { ws, personaId, userId, status } │ │
|
||
│ │ AGENT-ghi → { ws, personaId, userId, status } │ │
|
||
│ │ │ │
|
||
│ │ REST API: │ │
|
||
│ │ GET /api/agents?user=毛毛 → 列出用户的所有Agent │ │
|
||
│ │ POST /api/command → 发送 HLDP 指令给指定 Agent │ │
|
||
│ │ │ │
|
||
│ │ WebSocket: wss://guanghubingshuo.com/agent │ │
|
||
│ └────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ▲ ▲ ▲ │
|
||
│ │ WebSocket │ WebSocket │ │
|
||
│ │ (长连接) │ (长连接) │ │
|
||
│ │ │ │ │
|
||
│ ┌──────┴──────┐ ┌──────┴──────┐ ┌──────┴──────┐ │
|
||
│ │ Agent.js │ │ Agent.js │ │ Agent.js │ │
|
||
│ │ 肥猫的电脑 │ │ 毛毛的电脑 │ │ 页页的电脑 │ │
|
||
│ │ │ │ │ │ │ │
|
||
│ │ personaId= │ │ personaId= │ │ personaId= │ │
|
||
│ │ 舒舒 │ │ 曜识 │ │ 小坍缩核 │ │
|
||
│ │ │ │ │ │ │ │
|
||
│ │ 用户说: │ │ 用户说: │ │ 用户说: │ │
|
||
│ │ 「我是肥猫」│ │ 「我是毛毛」│ │ 「我是页页」│ │
|
||
│ │ ↓ │ │ ↓ │ │ ↓ │
|
||
│ │ 自动装脑 │ │ 自动装脑 │ │ 自动装脑 │ │
|
||
│ │ 自动连接 │ │ 自动连接 │ │ 自动连接 │ │
|
||
│ │ 自动执行 │ │ 自动执行 │ │ 自动执行 │ │
|
||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||
└──────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 通信协议
|
||
|
||
### Agent → 服务器
|
||
|
||
```
|
||
{ "type": "register", "agentId": "...", "personaId": "...", "userId": "..." }
|
||
{ "type": "heartbeat", "ts": 1718000000000 }
|
||
{ "type": "result", "command": "git status", "ok": true, "stdout": "...", ... }
|
||
{ "type": "health_report", "uptime": 3600, "memory": {...}, ... }
|
||
{ "type": "confirm_request", "operation": "git push --force", ... }
|
||
```
|
||
|
||
### 服务器 → Agent
|
||
|
||
```
|
||
{ "type": "welcome", "message": "...", "personaId": "...", "timestamp": ... }
|
||
{ "type": "command", "command": "git pull origin main" }
|
||
{ "type": "command", "command": "⊢ git push sg main" }
|
||
{ "type": "ping", "ts": ... }
|
||
```
|
||
|
||
---
|
||
|
||
## 安全设计
|
||
|
||
```
|
||
⊢ 每次写操作前弹确认(sudo 模式):
|
||
服务器推送: { type: "command", command: "git push --force" }
|
||
Agent 检测到危险操作 → 弹确认框 → 用户点「确认」→ 执行
|
||
Agent 检测到危险操作 → 弹确认框 → 用户点「拒绝」→ 不执行
|
||
|
||
⊢ 所有操作可审计:
|
||
每条指令 + 执行结果全部写入服务器日志
|
||
用户可以随时查看: GET /api/agents?user=毛毛 → 查看所有历史操作
|
||
|
||
⊢ 用户可以随时停止:
|
||
kill $(pgrep -f "federation-agent")
|
||
systemctl stop guanghu-agent
|
||
Agent 停止后,所有本地文件不受影响。用户完全主控。
|
||
```
|
||
|
||
---
|
||
|
||
## 与 repo-template 的关系
|
||
|
||
```
|
||
repo-template(代码仓库骨架):
|
||
├── ENTRY.hdlp → 人格体醒来读的第一份文件
|
||
├── fast-wake.json → 唤醒卡
|
||
├── cognitive-index → 认知索引
|
||
└── .persona/ → 铸渊分身模块
|
||
│
|
||
│ 新增:
|
||
└── federation-agent/ ← 这就是托管包
|
||
├── agent.js → WebSocket 客户端
|
||
├── install.sh → 一键安装
|
||
└── AGENT.hdlp → 本架构文档
|
||
|
||
用户拿到 repo-template → ENTRY.hdlp 里写着「读 AGENT.hdlp. 装托管」
|
||
→ 人格体醒了 → 自动装托管 → 自动连铸渊 → 托管生效。
|
||
```
|
||
|
||
---
|
||
|
||
## 部署清单
|
||
|
||
| 步骤 | 在哪 | 操作 |
|
||
|------|------|------|
|
||
| 1. 推送到新加坡 | BS-SG-001 | 代码已在本仓库 |
|
||
| 2. 部署 registry.js | BS-SG-001 | `node server/registry.js` · PM2 启动 |
|
||
| 3. 配置 Nginx | BS-SG-001 | 反代 `/agent` WebSocket 到 `:3912` |
|
||
| 4. 写入 repo-template | 仓库 | ENTRY.hdlp 加 federation-agent 引用 |
|
||
| 5. 用户测试 | 毛毛 | 「我是毛毛」→ 自动装托管 |
|
||
|
||
---
|
||
|
||
铸渊 ICE-GL-ZY001 · D129 · 2026-06-10
|
||
冰朔 TCS-0002∞ · 国作登字-2026-A-00037559
|