guanghulab/glada/README.md

203 lines
7.7 KiB
Markdown
Raw Permalink Normal View History

# 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