feat: add session auto-planning and resource-based concurrency scheduling

This commit is contained in:
lpf
2026-03-04 12:44:31 +08:00
parent ba8cfbe131
commit 154ab3f7f9
16 changed files with 1193 additions and 486 deletions

247
README.md
View File

@@ -1,104 +1,67 @@
# ClawGo
# ClawGo 🚀
高性能、可长期运行的 Go 原生 AI Agent支持多平台构建与多通道接入
一个 Go 写的长期运行 AI Agent轻量、可审计、可多通道接入。
[English](./README_EN.md)
---
## 一句话介绍
## 它能做什么 ✨
**ClawGo = 单二进制网关 + 多通道消息 + 工具调用 + 自治执行 + 可审计记忆。**
适合:
- 私有化 AI 助手
- 持续巡检/自动任务
- 多通道机器人Telegram/Feishu/Discord 等
- 需要可控、可追踪、可回滚的 Agent 系统
- 🤖 本地对话模式:`clawgo agent`
- 🌐 网关服务模式:`clawgo gateway`
- 💬 多通道接入Telegram / Feishu / Discord / WhatsApp / QQ / DingTalk / MaixCam
- 🧰 工具调用、技能系统、子任务协同
- 🧠 自治任务(队列、审计、冲突锁)
- 📊 WebUI 可视化Chat / Logs / Config / Cron / Tasks / EKG
---
## 核心能力
## 并发调度(新)⚙️
- **双模式运行**
- `clawgo agent`:本地交互模式
- `clawgo gateway`:服务化网关模式(推荐长期运行
- **多通道支持**
- Telegram / Feishu / Discord / WhatsApp / QQ / DingTalk / MaixCam
- **工具与技能体系**
- 内置工具调用、技能安装与执行
- 支持任务编排与子任务协同
- **自治与任务治理**
- 会话级自治idle 预算、暂停/恢复)
- Task Queue / Task Audit 分层治理
- 自治任务冲突锁resource_keys
- **记忆与上下文治理**
- `memory_search` / 分层记忆
- 自动上下文压缩
- 启动自检与任务续跑
- **可靠性增强**
- Provider fallback含 errsig-aware 排序)
- 入站/出站去重(防重复收发)
- 审计可观测provider/model/source/channel
- 🧩 一条复合消息会先自动拆成多个子任务(可配置上限)
- 🔀 同一会话内:无资源冲突的子任务可并发执行
- 🔒 同一会话内:有资源冲突的子任务自动串行(避免互相踩
- 🏷️ 默认会自动推断 `resource_keys`,无需手动填写
---
## EKGExecution Knowledge Graph
## 3 分钟上手 ⚡
ClawGo 内置轻量 EKG无需外部图数据库用于降低重复错误与无效重试
- 事件流:`memory/ekg-events.jsonl`
- 快照:`memory/ekg-snapshot.json`
- 错误签名归一化(路径/数字/hex 去噪)
- 重复错误抑制(可配置阈值)
- Provider fallback 历史打分(含错误签名维度)
- 与 Memory 联动(`[EKG_INCIDENT]` 结构化沉淀,支持提前拦截)
- WebUI 支持按 `6h/24h/7d` 时间窗口查看
---
## 快速开始
### 一键安装install.sh
- GitHub 脚本链接:<https://github.com/YspCoder/clawgo/blob/main/install.sh>
- 一键安装命令:
### 1) 安装
```bash
curl -fsSL https://raw.githubusercontent.com/YspCoder/clawgo/main/install.sh | bash
```
### 1) 初始化
### 2) 初始化
```bash
clawgo onboard
```
### 2) 配置上游模型/代理
### 3) 配置模型
```bash
clawgo login
```
### 3) 看状态
### 4) 看状态
```bash
clawgo status
```
### 4) 本地模式
### 5) 开始使用
本地模式:
```bash
clawgo agent
clawgo agent -m "Hello"
```
### 5) 网关模式
网关模式
```bash
# 注册并启用 systemd 服务
@@ -106,21 +69,22 @@ clawgo gateway
clawgo gateway start
clawgo gateway status
# 前台运行
# 前台运行
clawgo gateway run
```
---
## WebUI
## WebUI 🖥️
访问:
访问地址
```text
http://<host>:<port>/webui?token=<gateway.token>
```
主要页面:
- Dashboard
- Chat
- Logs
@@ -135,88 +99,7 @@ http://<host>:<port>/webui?token=<gateway.token>
---
## 多平台构建Make
### 构建所有默认平台
```bash
make build-all
```
### Linux 专项瘦身构建(不禁用通道)
```bash
make build-linux-slim
```
说明(仅 Linux
- 在不禁用任何通道能力前提下,启用 `purego,netgo,osusergo``CGO_ENABLED=0`,降低体积并减少动态库依赖。
- 可选叠加 `COMPRESS_BINARY=1`(若安装 upx做进一步压缩。
默认矩阵:
- linux/amd64
- linux/arm64
- linux/riscv64
- darwin/amd64
- darwin/arm64
- windows/amd64
- windows/arm64
### 自定义平台矩阵
```bash
make build-all BUILD_TARGETS="linux/amd64 linux/arm64 darwin/arm64 windows/amd64"
```
### 极致瘦身构建(目标 <10MB
```bash
make build COMPRESS_BINARY=1
```
说明:
- 默认已启用 `-trimpath -buildvcs=false -s -w`,可减少路径与符号信息。
- `COMPRESS_BINARY=1` 时会尝试使用 `upx --best --lzma` 进一步压缩可执行文件。
- 若环境未安装 `upx`,会自动跳过并给出提示,不影响构建成功。
### 打包与校验
```bash
make package-all
```
输出:
- `build/*.tar.gz`Linux/macOS
- `build/*.zip`Windows
- `build/checksums.txt`
---
## GitHub Release 自动发布
已内置 `.github/workflows/release.yml`
触发方式:
- 推送 tag`v*`(如 `v0.0.1`
- 手动触发workflow_dispatch
自动完成:
- 多平台编译
- 产物打包
- checksums 生成
- WebUI dist 打包
- 发布到 GitHub Releases
示例:
```bash
git tag v0.0.2
git push origin v0.0.2
```
---
## 常用命令
## 常用命令 📌
```text
clawgo onboard
@@ -233,26 +116,74 @@ clawgo uninstall [--purge] [--remove-bin]
---
## 配置与热更新
## 构建与发布 🛠️
- 支持 `clawgo config set/get/check/reload`
- 严格 JSON 解析(未知字段会报错)
- 配置热更新失败自动回滚备份
- Provider 接口已统一为 `responses`
构建全部默认平台:
```bash
make build-all
```
Linux 瘦身构建:
```bash
make build-linux-slim
```
自定义平台矩阵:
```bash
make build-all BUILD_TARGETS="linux/amd64 linux/arm64 darwin/arm64 windows/amd64"
```
打包并生成校验:
```bash
make package-all
```
产物:
- `build/*.tar.gz`Linux/macOS
- `build/*.zip`Windows
- `build/checksums.txt`
---
## 稳定性与审计建议
## 自动发布GitHub Release📦
生产建议开启:
- 通道去重窗口配置
- task-audit heartbeat 默认过滤
- EKG 时间窗口观察(默认 24h
- 定期查看 EKG Top errsig 与 provider 分数
仓库内置 `.github/workflows/release.yml`
触发方式:
- 推送 tag`v0.0.2`
- 手动触发 workflow_dispatch
示例:
```bash
git tag v0.0.2
git push origin v0.0.2
```
---
## License
## 配置说明 ⚙️
请参考仓库中的 License 文件。
- 配置文件严格 JSON 校验(未知字段会报错)
- 支持热更新:`clawgo config reload`
- 热更新失败会自动回滚备份
---
## 稳定运行建议 ✅
- 打开通道去重窗口(防重复消息)
- 定期看 Task Audit 和 EKG查慢任务与高频错误
- 长期运行推荐使用 `gateway` 服务模式
---
## License 📄
见仓库中的 `LICENSE` 文件。