guanghulab/glada/README.md
2026-05-10 13:12:44 +08:00

203 lines
7.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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