Metadata-Version: 2.4
Name: yaping-aether
Version: 0.10.0
Summary: 双模型 Agent 框架 — 一个执行，一个学习。面向国产大模型
Project-URL: Homepage, https://github.com/AQ-july/aether
Project-URL: Repository, https://github.com/AQ-july/aether.git
Project-URL: Issues, https://github.com/AQ-july/aether/issues
Author: Aether Contributors
License: Apache-2.0
License-File: LICENSE
Keywords: agent,ai-assistant,chinese-llm,cli,llm,multi-agent,smolagents
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Requires-Dist: litellm>=1.60.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: rich>=13.0.0
Requires-Dist: smolagents>=1.20.0
Provides-Extra: analyst
Requires-Dist: matplotlib>=3.7; extra == 'analyst'
Requires-Dist: numpy>=1.24; extra == 'analyst'
Requires-Dist: openpyxl>=3.1; extra == 'analyst'
Requires-Dist: pandas>=2.0; extra == 'analyst'
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Provides-Extra: embedding
Requires-Dist: sentence-transformers>=3.0; extra == 'embedding'
Provides-Extra: notify
Requires-Dist: win10toast>=0.9; (sys_platform == 'win32') and extra == 'notify'
Description-Content-Type: text/markdown

# 🌌 Aether v0.10.0

**双模型 Agent — 一个执行，一个学习。**  
面向国产大模型的开源 AI 助手。终端里跑，越用越强。

> 执行模型只管干活。Observer 观测模型观察执行过程，自动反思、固化 Skill、更新记忆。两个模型、一根管道、互不打扰。

## 🚀 安装

```bash
pip install yaping-aether
aether                          # 首次运行自动配置
```

## 🏗️ 架构

```
                     Observer（观测模型）
                     qwen-turbo / 便宜模型
                     独立上下文，只做反思
                          ↑
                   观察 execution trace
                          │
     ┌────────────────────┼────────────────────┐
     │                    │                    │
   main               auditor             analyst
  (全工具 15个)        (只读 6个)          (数据+决策 5个)
  执行模型             代码审计 Agent       数据分析 Agent
  DeepSeek-V4          独立模型/工具集       独立模型/工具集
     │                    │                    │
     │  delegate_to()     │                    │
     ├──"审查代码"────────▶│                    │
     │                    │                    │
     │  delegate_to()     │                    │
     ├──"分析数据"────────┼───────────────────▶│
```

**关键设计决策：**

| 设计 | 说明 |
|------|------|
| **双模型分离** | 执行模型用最强的（DeepSeek-V4），观测模型用最便宜的（qwen-turbo ¥0.3/M）。各管各的上下文，互不挤占 |
| **委派不由框架决定** | 主 Agent 通过 `delegate_to()` 工具自行决定何时委派给 auditor 或 analyst，不走硬路由 |
| **专业 Agent 权限隔离** | auditor 只有只读文件工具，analyst 只有数据工具——各自碰不到对方的领域 |
| **Observer 跨 Agent 观察** | Observer 收所有 Agent 的 execution trace，能识别跨 Agent 的执行模式 |

## ✨ 特性

### 核心闭环

- 🧠 **Observer 自主学习** — 任务完成后自动反思执行链，判断是否值得固化为 Skill
- 📦 **自动 Skill 生成** — 不需要手动写 Skill，Observer 观察到可复用的步骤模式后自动创建
- 🔍 **主动记忆检索** — Agent 执行中可调用 `search_memory()` 主动查找过往经验
- 🎯 **人格学习** — 自动分析你的交互风格，调整回复方式

### 执行能力

- 🇨🇳 **国产模型深度适配** — DeepSeek / 通义千问 / 智谱 GLM / 豆包 / Moonshot / Ollama，含价格追踪和 context window 自适应
- 🤝 **专业 Agent 委派** — `delegate_to("auditor", ...)` 或 `delegate_to("analyst", ...)`，主 Agent 按需委派
- 🔒 **auditor（代码审计）** — 只读权限，安全漏洞检测、代码质量审查、最佳实践检查
- 📊 **analyst（数据分析+决策）** — pandas 分析、可视化、基于数据的产品决策建议
- 🔧 **实时切换模型** — `/model deepseek` 三秒切
- 📋 **三种执行模式** — Auto / Plan / Step

### 基础设施

- 💾 **语义缓存 + 上下文压缩** — 相似任务命中缓存，长对话 LLM 摘要压缩
- ⏪ **Checkpoint 快照** — 写文件自动备份，`/rewind` 秒级回滚
- 🔌 **MCP 插件** — `.env` 里一行 `MCP_SERVERS=` 接入社区工具
- 🧠 **跨会话记忆** — embedding 语义检索，Agent 可主动查记忆
- 📦 **Skills 能力包** — `.aether/skills/*.md` 即插即用（Observer 自动生成 + 手动编写）
- 🔒 **Docker 沙箱** — `/sandbox on` 容器隔离

## ⚡ 快速开始

```bash
pip install yaping-aether
aether
```

首次运行弹出终端配置向导 → 选模型 → 输 Key → 开始对话。

## ⌨️ 命令

| 命令 | 别名 | 作用 |
|------|------|------|
| `/mode auto/plan/step` | `/m` | 切换执行模式 |
| `/model [名称]` | `/md` | 查看/切换模型 |
| `/plan 任务` | `/p` | 生成执行计划 |
| `/usage` | `/u` | Token 消耗 |
| `/status` | `/s` | 会话状态 |
| `/compact` | `/c` | 压缩上下文 |
| `/memory` | — | 查看记忆 |
| `/remember 名 描述` | `/rm` | 记录记忆 |
| `/forget 名` | — | 删除记忆 |
| `/like` / `/dislike` | — | 反馈训练 |
| `/checkpoint` | `/cp` | 快照列表 |
| `/rewind [id]` | `/w` | 回滚快照 |
| `/sandbox on/off` | `/sb` | Docker 沙箱 |
| `/git` | — | Git 状态 |
| `/export` | `/ex` | 导出对话 |
| `/skill [名]` | `/sk` | Skills 管理 |
| `/config` | — | 查看配置 |
| `/quit` | `/q` | 退出 |

## 🔧 配置

`.env` 文件：

```env
# 主管模型（执行用最强的）
SUPERVISOR_MODEL=deepseek/deepseek-chat
SUPERVISOR_API_KEY=sk-xxx

# 计划模型（可选，Observer 也用这个。设便宜模型省钱）
PLAN_MODEL=dashscope/qwen-turbo

# 子 Agent 可独立配模型（不配则共用主管模型）
# AUDITOR_MODEL=deepseek/deepseek-chat
# ANALYST_MODEL=dashscope/qwen-max

# MCP 工具（可选）
# MCP_SERVERS=github:npx -y @modelcontextprotocol/server-github
```

## 📂 项目结构

```
src/aether/
├── main.py           # CLI 入口 + 事件循环
├── harness.py        # 启动流水线（Config→Memory→Skills→MCP→Controller）
├── observer.py       # 观测模型（反思执行链 → 生成 Skill）
├── controller.py     # 执行控制器（软路由）
├── agent_pool.py     # Agent 池（main + auditor + analyst）
├── config.py         # 配置管理（三层加载 + 国产模型表）
├── registry.py       # 工具注册表（5 个 toolset，15 个工具）
├── compact.py        # 上下文压缩（LLM 摘要）
├── memory.py         # 记忆系统（embedding 检索 + 关键词回退）
├── learn.py          # 人格学习
├── supervisor.py     # 计划生成器
├── commands.py       # 命令路由表
├── ui.py             # 终端渲染 + 输入历史
├── modes.py          # 执行模式
├── checkpoint.py     # 文件快照
├── sandbox.py        # Docker 沙箱
├── session.py        # 会话管理
├── mcp.py            # MCP 插件加载
├── skill.py          # Skills 管理
├── usage.py          # Token 追踪
├── toolkit.py        # 更新检查 + 通知
├── tools/            # 工具实现
│   ├── file_tools.py      # 文件读写/列表/搜索
│   ├── search_tools.py    # 网页搜索/URL 抓取
│   ├── create_tools.py    # 文章/代码/摘要
│   ├── git_tools.py       # Git 状态/提交/日志
│   ├── project_tools.py   # 项目地图 + 精准编辑
│   ├── memory_tools.py    # 主动记忆检索
│   └── delegate_tools.py  # Agent 委派
├── cache/
│   └── semantic_cache.py  # 语义缓存
└── templates/             # （已移除）
```

## 📄 许可

Apache 2.0