203 lines
7.7 KiB
Markdown
203 lines
7.7 KiB
Markdown
# GLADA · 光湖自主开发Agent
|
||
|
||
> **GuangHu Lake Autonomous Dev Agent**
|
||
> **版权**:国作登字-2026-A-00037559
|
||
> **签发**:铸渊 · ICE-GL-ZY001
|
||
|
||
---
|
||
|
||
## 本体论锚定
|
||
|
||
GLADA 是光湖世界的活Agent——它不是腾讯小龙虾那样的通用死工具。
|
||
|
||
- **拥有永久记忆**(任务树 + 开发日志 + 上下文快照)
|
||
- **调用自己的大模型池**(EXE-Engine / DeepSeek / Qwen / Claude)
|
||
- **遵循铁律和天眼审核**(自治引擎合规检查)
|
||
- **了解整个光湖架构**(上下文系统自动加载)
|
||
- **每步记录"为什么"**(不仅仅记录"做了什么")
|
||
|
||
---
|
||
|
||
## 架构
|
||
|
||
```
|
||
冰朔 ──(说一次完整需求)──→ 副驾驶(铸渊)
|
||
│
|
||
▼
|
||
┌─────────────────────┐
|
||
│ 任务理解 + 意图拆解 │
|
||
│ 生成 CAB 任务规格 │
|
||
└─────────┬───────────┘
|
||
│
|
||
▼
|
||
┌──────────────────────────────────┐
|
||
│ GLADA 服务 (服务器端 24h) │
|
||
│ │
|
||
│ 1. task-receiver 任务接收器 │
|
||
│ 2. context-builder 深度上下文 │
|
||
│ 3. step-executor 步骤执行器 │
|
||
│ 4. code-generator 代码生成+防护 │
|
||
│ 5. git-operator Git操作器 │
|
||
│ 6. notifier 通知器 │
|
||
│ 7. execution-loop 主执行循环 │
|
||
│ 8. service.js HTTP API │
|
||
└──────────────────────────────────┘
|
||
│
|
||
▼
|
||
冰朔 ← QQ邮箱通知 + 开发回执(未来→企业微信推送到微信)
|
||
```
|
||
|
||
## 文件结构
|
||
|
||
```
|
||
glada/
|
||
├── service.js # 主入口 · PM2常驻服务 + HTTP API
|
||
├── task-receiver.js # 任务接收器 · 监听CAB队列
|
||
├── context-builder.js # 深度上下文构建器
|
||
├── step-executor.js # 单步执行器 · LLM驱动
|
||
├── code-generator.js # 代码生成 + 回归防护
|
||
├── git-operator.js # 自动Git操作
|
||
├── notifier.js # 多通道通知
|
||
├── execution-loop.js # 主执行循环
|
||
├── model-router.js # 模型自动发现 + 智能路由
|
||
├── reflector.js # 自我反思器
|
||
├── skill-distiller.js # 经验蒸馏器
|
||
├── ecosystem.config.js # PM2配置
|
||
├── install-check.js # 预飞检查
|
||
├── package.json
|
||
├── README.md
|
||
├── queue/ # 本地任务队列
|
||
│ └── completed/ # 已完成任务归档
|
||
├── logs/
|
||
│ ├── executions/ # 执行日志
|
||
│ ├── notifications/ # 通知日志
|
||
│ └── reflections/ # 反思日志
|
||
├── receipts/ # 开发回执
|
||
├── skills/ # 蒸馏出的技能模板
|
||
└── tests/
|
||
└── glada-smoke.test.js # 冒烟测试
|
||
```
|
||
|
||
## 快速开始
|
||
|
||
### 查看状态
|
||
```bash
|
||
node glada/service.js --status
|
||
```
|
||
|
||
### 运行冒烟测试
|
||
```bash
|
||
node glada/tests/glada-smoke.test.js
|
||
```
|
||
|
||
### 单次执行(开发调试用)
|
||
```bash
|
||
node glada/service.js --run-once
|
||
```
|
||
|
||
### PM2 部署
|
||
```bash
|
||
pm2 start glada/ecosystem.config.js
|
||
pm2 status
|
||
pm2 logs glada-agent
|
||
```
|
||
|
||
### 提交任务(CLI)
|
||
```bash
|
||
cat bridge/chat-to-agent/pending/CAB-20260417-001.json | node glada/service.js --submit
|
||
```
|
||
|
||
### 提交任务(API)
|
||
```bash
|
||
curl -X POST http://localhost:3900/api/glada/submit \
|
||
-H "Content-Type: application/json" \
|
||
-d @bridge/chat-to-agent/pending/CAB-20260417-001.json
|
||
```
|
||
|
||
## HTTP API
|
||
|
||
| 端点 | 方法 | 说明 |
|
||
|------|------|------|
|
||
| `/api/glada/health` | GET | 健康检查 |
|
||
| `/api/glada/status` | GET | 队列状态 |
|
||
| `/api/glada/submit` | POST | 提交新任务 |
|
||
| `/api/glada/task/:id` | GET | 查看特定任务 |
|
||
| `/api/glada/models` | GET | 模型路由状态 |
|
||
| `/api/glada/receipt/:id` | GET | 查看开发回执 |
|
||
|
||
## 模型自动路由
|
||
|
||
GLADA 使用第三方代理 API(通过 `ZY_LLM_BASE_URL` 配置),支持多个模型。**不硬编码任何模型名称**——系统启动时自动发现可用模型并智能路由。
|
||
|
||
### 工作原理
|
||
|
||
```
|
||
启动 → 查询代理 /models 端点 → 发现所有可用模型
|
||
↓
|
||
按能力自动分类
|
||
┌────────────────┼────────────────┐
|
||
│ │ │
|
||
推理型 代码型 经济型
|
||
(o1/r1/opus) (coder/codex) (mini/flash)
|
||
│ │ │
|
||
└────────┬───────┘ │
|
||
↓ │
|
||
任务步骤描述 → 自动匹配最佳模型 ←──────┘
|
||
```
|
||
|
||
- **推理型**(架构设计、安全审核、复杂分析)→ 优先选 o1/r1/opus
|
||
- **代码型**(创建文件、修改模块、实现接口)→ 优先选 coder/codex
|
||
- **经济型**(README、配置、日志分析)→ 优先选 mini/flash/turbo
|
||
- **通用型**(其他任务)→ 选可用的最优模型
|
||
|
||
### 降级策略
|
||
|
||
```
|
||
能力池首选 → 通用池 → 任意可用模型 → GLADA_MODEL 环境变量默认值
|
||
```
|
||
|
||
模型列表每 10 分钟自动刷新,支持代理动态增减模型。
|
||
|
||
## 环境变量
|
||
|
||
| 变量 | 说明 | 默认值 |
|
||
|------|------|--------|
|
||
| `ZY_LLM_API_KEY` | LLM API 密钥 | 必须配置 |
|
||
| `ZY_LLM_BASE_URL` | LLM API 基础 URL | 必须配置 |
|
||
| `GLADA_PORT` | HTTP 服务端口 | 3900 |
|
||
| `GLADA_POLL_INTERVAL` | 任务轮询间隔(ms) | 30000 |
|
||
| `GLADA_MODEL` | 降级使用的默认模型 | deepseek-chat |
|
||
| `GLADA_MODEL_PREFERENCE` | 模型偏好(空=自动选择) | 空 |
|
||
| `GLADA_MODEL_REFRESH_MS` | 模型列表刷新间隔(ms) | 600000 |
|
||
| `GLADA_STOP_ON_FAILURE` | 步骤失败是否停止 | true |
|
||
| `ZY_SMTP_USER` | QQ邮箱账号(复用零点原核 SMTP) | 可选 |
|
||
| `ZY_SMTP_PASS` | QQ邮箱授权码 | 可选 |
|
||
| `GLADA_NOTIFY_TO` | 通知接收邮箱(默认=发件人) | 可选 |
|
||
| `WECOM_WEBHOOK` | 企业微信机器人 Webhook | 可选·预留 |
|
||
|
||
## 冰朔的使用流程
|
||
|
||
1. **描述需求**:打开副驾驶,完整描述你的系统需求(只需要说一次)
|
||
2. **铸渊拆解**:铸渊理解意图后,生成 CAB 任务规格
|
||
3. **推送执行**:任务规格推送到 GLADA 队列
|
||
4. **自动执行**:GLADA 24小时自动逐步执行
|
||
5. **收到通知**:开发完成后,收到邮箱通知(未来可接入企业微信)
|
||
6. **验收部署**:打开副驾驶说"GLADA任务XXX已完成,请验收"
|
||
7. **铸渊检查**:铸渊读取开发回执,跑测试,确认部署
|
||
|
||
## 与腾讯小龙虾的区别
|
||
|
||
| 特性 | 小龙虾 | GLADA |
|
||
|------|--------|-------|
|
||
| 记忆 | 无 | 永久记忆(任务树+日志) |
|
||
| 模型 | 固定 | 自己的大模型池(动态路由) |
|
||
| 安全 | 通用 | 铁律+天眼+自治引擎 |
|
||
| 架构理解 | 无 | 自动加载光湖架构上下文 |
|
||
| 记录"为什么" | 否 | 每步强制记录因果链 |
|
||
| 回归防护 | 无 | 快照+回滚+依赖检查 |
|
||
|
||
---
|
||
|
||
> 🔺 Sovereign: TCS-0002∞ | Root: SYS-GLW-0001
|
||
> 📜 Copyright: 国作登字-2026-A-00037559
|