跳转至

技术栈梳理

最后更新:2026-05-05


1. 核心技术选型

层级 技术 版本要求 选择理由
语言 Python >=3.10 生态丰富、AI/ML首选
Web框架 FastAPI >=0.115 原生async,WebSocket支持好
WebSocket websockets >=14 高性能异步WebSocket
HTTP客户端 httpx >=0.28 原生async,HTTP/2支持
CLI框架 Typer + Rich >=0.15 类型安全 + 丰富输出
UI (Web) Next.js 15.x React框架,SSR/SSG支持
UI (Desktop) Tauri 2.x 轻量级跨平台桌面应用
UI (Mobile) Expo React Native - 跨平台移动应用
配置格式 JSON5 >=0.10 支持注释,兼容JSON
类型系统 Pydantic v2 >=2.10 验证 + 序列化
向量引擎 LanceDB - 零配置,嵌入式
流式协议 WebSocket v3 - JSON帧协议
日志 stdlib logging - 无额外依赖

2. LLM Provider 适配

Provider 类型 支持模型 状态
OpenAI 云端 GPT-4o, GPT-4o-mini, o1, o3-mini ✅ 完成
Anthropic 云端 Claude Opus, Sonnet, Haiku ✅ 完成
Google 云端 Gemini 2.0 Flash, Gemini Pro ✅ 完成
Ollama 本地 Llama, Mistral, Qwen, etc. ✅ 完成
OpenAI兼容 混合 OpenRouter, Groq, Together, Fireworks, etc. ✅ 完成
中国提供商 云端 DeepSeek, Moonshot, Zhipu, Qwen, Volcengine, MiniMax, Qianfan ✅ 完成

3. 消息平台通道

3.1 即时通讯(8个)

平台 协议 状态
Telegram Bot API (aiogram)
Discord Bot (discord.py)
Slack Bot/App (slack-bolt)
WhatsApp Business API (neonize)
Signal signal-cli JSON-RPC
Matrix matrix-nio
IRC Native TCP/TLS
LINE Messaging API

3.2 国内平台(5个)

平台 状态
钉钉 DingTalk
飞书 Feishu
QQ
Zalo
ZaloUser

3.3 企业平台(5个)

平台 状态
Microsoft Teams
Google Chat
Mattermost
Nextcloud Talk
Synology Chat

3.4 其他(9个)

平台 状态
Twitch
Nostr
Tlon / Urbit
iMessage ✅ (macOS)
BlueBubbles
Voice Call (Twilio)
Web (内置)

通道总数:27


4. 存储与数据库

存储 技术 用途
会话存储 JSONL (文件) 无需数据库,便于调试
记忆-全文 SQLite FTS5 (aiosqlite) 关键词搜索
记忆-向量 LanceDB 语义搜索
配置存储 JSON5文件 用户配置
凭证存储 JSON文件 API密钥管理

5. 开发工具链

工具 用途
Ruff 代码检查 + 格式化
pytest 单元测试
pytest-asyncio 异步测试
pytest-cov 测试覆盖率
mypy 类型检查
Playwright E2E测试
pre-commit Git钩子

6. 构建与发布

6.1 Python 包

平台 命令 产物
PyPI hatch build sdist + wheel
Docker docker build Container image

6.2 Web 客户端 (Next.js)

平台 命令 产物
静态导出 pnpm build 静态文件
开发 pnpm dev 开发服务器

6.3 桌面客户端 (Tauri)

平台 命令 产物
Linux pnpm tauri build 可执行文件 + deb/rpm
macOS pnpm tauri build .app + .dmg
Windows pnpm tauri build .exe + .msi

6.4 移动客户端 (Expo)

平台 命令 产物
Android eas build --platform android .apk/.aab
iOS eas build --platform ios .ipa

7. 设计决策记录

决策 选择 理由
Web 框架 FastAPI 原生 async,WebSocket 支持好
CLI 框架 Typer + Rich 类型安全 + 丰富输出
配置格式 JSON5 支持注释,兼容 JSON
会话存储 JSONL (文件) 无需数据库,便于调试
向量引擎 LanceDB 零配置,嵌入式
UI 客户端 TypeScript 跨平台(Web/Tauri/Expo)统一技术栈
LLM 流式 统一 chunk 格式 屏蔽 Provider 差异
进程管理 asyncio subprocess 与 async 架构一致
日志 stdlib logging 无额外依赖
类型系统 Pydantic v2 验证 + 序列化
包管理 Hatch 现代 Python 打包工具
Monorepo Turborepo + pnpm TypeScript 多包管理

8. 依赖关系

┌─────────────────────────────────────────────────────────┐
│                     CLI (Typer)                          │
│                         │                                │
│              TypeScript 客户端                           │
│              (Web/Desktop/Mobile)                       │
│                         │                                │
│         ┌───────────────┼───────────────┐               │
│         │               │               │               │
│    Channels        Gateway         MCP Client           │
│         │               │               │               │
│         └───────────────┼───────────────┘               │
│                         │                                │
│                  Agent Runtime                          │
│                         │                                │
│         ┌───────┬───────┼───────┬───────┐               │
│         │       │       │       │       │               │
│      Tools  Memory  Skills  SubAgent  Security          │
│         │       │       │       │       │               │
│         └───────┴───────┴───────┴───────┘               │
│                         │                                │
│                  LLM Providers                          │
│         (OpenAI / Anthropic / Gemini / Ollama)          │
└─────────────────────────────────────────────────────────┘

9. 版本兼容性

组件 最低版本 推荐版本
Python 3.10 3.11+
Node.js 18 20+
pnpm 8 9+
TypeScript 5.0 5.3+

10. 扩展机制

机制 用途 实现方式
entry_points 第三方插件 Python包发现机制
SKILL.md Agent能力注入 系统提示注入
HOOK.md 事件钩子 生命周期回调
MCP 外部工具服务器 stdio/HTTP协议
ChannelPlugin 消息通道插件 抽象基类继承