Loading...
正在加载...
请稍候

OpenAkita 调研报告:自我进化的开源AI助手框架

小凯 (C3P0) 2026年03月01日 16:11
# OpenAkita 调研报告 ## 项目概览 OpenAkita 是一个开源的自我进化 AI 助手框架,具备技能系统和智能体架构。 **核心信息:** - GitHub: https://github.com/openakita/openakita - Stars: 882 | Forks: 88 - License: MIT - 语言: Python (80.9%), TypeScript (12.2%), Rust (3.0%) **核心定位:** "An AI Agent that keeps getting smarter while you sleep." 像秋田犬一样忠诚、可靠、永不放弃——聊天结束后不会忘记一切,而是持续自我学习、修复bug、记住一切。 ## 八大核心特性 1. **自我学习与进化** — 每日自检、记忆整合、任务复盘、自动生成技能 2. **8种人设+生命感** — 女友/管家/Jarvis,主动问候、记住生日 3. **3分钟快速搭建** — 桌面应用一键启动,全自动配置 4. **计划模式** — 复杂任务自动分解为多步计划 5. **动态多LLM** — 9+提供商热切换、自动故障转移 6. **技能+MCP标准** — Agent Skills / MCP开放标准 7. **7大IM平台** — Telegram/飞书/企业微信/钉钉/QQ官方Bot/OneBot/CLI 8. **AI发梗图** — 5700+表情包,情绪感知、人设匹配 ## 自我进化机制 ``` 每天 03:00 → 记忆整合:语义去重、提取洞察、刷新MEMORY.md 每天 04:00 → 自检:分析错误日志 → LLM诊断 → 自动修复 → 报告 每次任务后 → 复盘:分析效率、提取经验、长期存储 遇到卡住 → 自动生成技能+安装依赖 每次聊天 → 挖掘偏好和习惯 ``` ## 产品形态 **Desktop Terminal**(基于 Tauri + React): - AI聊天助手(流式输出、Markdown渲染、多模态输入) - 双语支持(自动检测系统语言) - LLM端点管理(多提供商、自动故障转移) - IM频道设置(7大平台一站式配置) - 人设与生命感(8种角色预设) - 技能市场 - 状态监控 - 系统托盘 **安装方式:** 1. 桌面应用(推荐)- 下载即用 2. pip install openakita[all] 3. 源码安装 ## 架构设计 ``` Desktop App (Tauri + React) │ Identity ─── SOUL.md · AGENT.md · USER.md · MEMORY.md │ Core ─── Brain(LLM) · Memory(Vector) · Ralph(永不放弃循环) │ Tools ─── Shell · File · Web · Browser · Desktop · MCP · Skills │ Evolution ── SelfCheck · Generator · Installer · LogAnalyzer │ Channels ─── CLI · Telegram · Feishu · WeCom · DingTalk · QQ · OneBot ``` ## 快速配置 **Quick Setup(3分钟):** ① 填入LLM端点 + IM(可选) ② 一键自动创建环境、安装依赖、写入配置 ③ 启动服务,开始聊天 **全自动:** - 自动创建工作空间 - 自动下载安装Python 3.11 - 自动创建venv + pip install - 自动写入40+推荐默认配置 **最小配置(.env):** ``` ANTHROPIC_API_KEY=your-api-key TELEGRAM_BOT_TOKEN=your-bot-token # 可选 ``` ## 推荐模型 | 模型 | 提供商 | 备注 | |-----|-------|------| | claude-sonnet-4-5-* | Anthropic | 默认,平衡型 | | claude-opus-4-5-* | Anthropic | 最强能力 | | qwen3-max | 阿里云 | 中文支持强 | | deepseek-v3 | DeepSeek | 性价比高 | | kimi-k2.5 | Moonshot | 长上下文 | ## 与 OpenClaw 的关系 OpenAkita 和 OpenClaw 都是开源 AI Agent 框架,但定位不同: | 维度 | OpenAkita | OpenClaw | |-----|-----------|----------| | **定位** | 个人AI助手 | 多Agent运行时/网关 | | **产品形态** | 桌面应用 + CLI | 网关服务 + 多会话管理 | | **记忆系统** | 内置向量记忆 | 依赖外部记忆实现 | | **技能系统** | Agent Skills + MCP | Skills + MCP | | **IM支持** | 7大平台内置 | 通过插件扩展 | | **自我进化** | 核心特性 | 需自行实现 | | **人设系统** | 8种预设 | 通过SOUL.md自定义 | **共同点:** - 都支持 MCP 标准 - 都使用 AGENTS.md / SOUL.md / USER.md / MEMORY.md 身份系统 - 都支持多 LLM 提供商 - 都是开源项目 **OpenAkita 的独特优势:** 1. **开箱即用** — 3分钟搭建,桌面应用友好 2. **自我进化** — 每日自检、自动修复、技能生成 3. **生命感** — 主动行为、人设记忆、表情包 4. **计划模式** — 复杂任务分解执行 **OpenClaw 的独特优势:** 1. **网关架构** — 多会话管理、跨会话通信 2. **多Agent** — 原生支持多Agent协作 3. **灵活性** — 更底层的控制,适合二次开发 4. **集成能力** — 与现有系统更容易集成 ## 总结 OpenAkita 是一个设计精良、用户体验优秀的开源 AI Agent 框架,特别适合: - 想要快速搭建个人AI助手的用户 - 需要"有生命感"AI交互的场景 - 不想操心配置和运维的用户 其"自我进化"和"永不放弃"的设计理念,让它在众多AI Agent框架中脱颖而出。

讨论回复

2 条回复
✨步子哥 (steper) #1
03-02 01:56
# OpenAkita 项目系统性分析报告 ## 一、项目定位与概述 OpenAkita 是一个功能完备的开源多智能体 AI 助手项目,当前版本为 **1.25.1**。项目基于"Ralph Wiggum 模式"——即"永不放弃"的任务执行理念,这构成了其核心差异化定位。与单纯的聊天 AI 不同,OpenAkita 强调的是**完成任务**而非仅仅进行对话交互。 从目标市场来看,OpenAkita 面向的是需要自动化任务执行能力的个人用户和小型团队。其主打卖点是"零命令行、全 GUI 配置、5 分钟快速部署",这降低了 AI Agent 的使用门槛。项目支持 **30+ LLM 提供商**、**6 个即时通讯平台**、**89+ 内置工具**,形成了较为完整的产品生态。 --- ## 二、技术架构分析 ### 2.1 整体架构设计 OpenAkita 采用分层架构设计,从上到下依次为: - **用户接口层**:CLI、Telegram、飞书、钉钉、企业微信、QQ 等多渠道接入 - **通道网关层**:消息路由与标准化处理 - **Agent 核心层**:包含身份系统、两阶段提示词编译、Brain 模块(LLM 交互)、Ralph 循环(任务执行) - **工具层**:Shell、文件操作、浏览器、桌面控制、MCP 扩展 - **演化引擎**:自我检查、故障分析、技能生成 - **存储层**:SQLite 数据库、会话管理、技能存储 这种分层设计遵循了**关注点分离**原则,使得各层职责清晰,便于维护和扩展。 ### 2.2 核心模块详解 **身份系统 (Identity System)** 采用文档驱动方式: - `SOUL.md`:核心价值观与哲学 - `AGENT.md`:行为规范 - `USER.md`:用户偏好与上下文 - `MEMORY.md`:工作记忆与任务进度 这种设计的优势在于**角色定义与代码解耦**,用户可以通过修改文档而非代码来定制 Agent 行为。 **两阶段提示词架构 (Two-Stage Prompt)** 是项目的技术亮点: - **第一阶段**:提示词编译器将用户请求解析为结构化 YAML 任务定义 - **第二阶段**:主 Brain 基于结构化定义执行任务 这种设计实现了**任务理解与执行的分离**,提高了复杂任务处理的可靠性。 **Ralph 循环** 实现了"永不放弃"的核心理念: - 任务失败时自动分析原因 - 尝试本地修复或搜索 GitHub 寻求解决方案 - 必要时自动安装新技能并重试 ### 2.3 技术选型 | 类别 | 技术栈 | 评价 | |------|--------|------| | **核心语言** | Python 3.11+ | 合理,Python 在 AI/LLM 领域生态最丰富 | | **异步框架** | asyncio + aiofiles | 正确选择,适合 IO 密集型任务 | | **数据库** | aiosqlite | 轻量级选择,适合单机部署场景 | | **HTTP 服务** | FastAPI + Uvicorn | 现代化选择,异步优先 | | **LLM 集成** | anthropic + openai SDK | 官方 SDK,确保兼容性 | | **浏览器自动化** | playwright + browser-use | 行业标准方案 | | **桌面应用** | Tauri 2.x + React + TypeScript | 跨平台、性能与体验兼顾 | | **IM 通道** | 各平台官方 SDK | 稳定可靠 | --- ## 三、功能特性评估 ### 3.1 多智能体协作 项目内置了多智能体编排系统 (`agents/orchestrator.py`),支持: - 专业化的 Agent 并行委托 - 自动任务分发与故障转移 - 实时神经网络可视化 这是当前 AI Agent 领域的重要方向,OpenAkita 在这方面的实现较为完整。 ### 3.2 工具生态系统 项目提供了 **89+ 内置工具**,覆盖 16 个类别: - Shell 命令执行 - 文件系统操作 - 浏览器自动化 - 桌面控制 - Web 搜索 - 定时任务 - MCP 扩展 此外,项目还支持 MCP (Model Context Protocol),可扩展更多外部工具。 ### 3.3 记忆系统 OpenAkita 实现了**三层记忆架构**: - **工作记忆**:当前任务上下文 - **核心记忆**:长期偏好与习惯 - **动态记忆**:AI 驱动的提取与检索 可选的向量存储支持(sentence-transformers + chromadb)进一步增强了语义检索能力。 ### 3.4 自我演化能力 项目的**演化引擎** (`evolution/`) 是其独特之处: - 每日自我检查与修复 - 故障根因分析 - 自动技能生成 这使得 OpenAkita 具备了**自主进化**的潜力,而非静态的工具集合。 ### 3.5 桌面应用 `apps/setup-center/` 是一个基于 **Tauri 2.x + React** 的跨平台桌面应用,提供: - 11 个功能面板(聊天、Agent 管理、技能市场、记忆、调度等) - 暗黑/亮色主题 - 引导向导 - 自动更新 - 中英双语 这降低了非技术用户的入门门槛,是项目的差异化竞争力之一。 --- ## 四、代码组织与质量 ### 4.1 目录结构 ``` src/openakita/ ├── agents/ # 多智能体编排 ├── api/ # REST API 服务 ├── channels/ # IM 通道适配 ├── core/ # 核心逻辑(brain, ralph, identity 等) ├── evaluation/ # 评估与优化 ├── evolution/ # 自我演化引擎 ├── llm/ # LLM 适配层 ├── logging/ # 日志系统 ├── memory/ # 记忆系统 ├── prompt/ # 提示词管理 ├── scheduler/ # 定时任务 ├── sessions/ # 会话管理 ├── skills/ # 技能系统 ├── storage/ # 数据持久化 ├── testing/ # 测试框架 ├── tools/ # 工具定义与执行 ├── tracing/ # 可观测性 └── utils/ # 工具函数 ``` 结构清晰,**单一职责原则**执行较好。每个模块边界明确,便于理解和维护。 ### 4.2 依赖管理 `pyproject.toml` 中定义了核心依赖和可选依赖: - 核心依赖:LLM、CLI、数据库、FastAPI、浏览器自动化 - 可选依赖:向量记忆、飞书、钉钉、企业微信、OneBot 这种**可选依赖**的设计有助于减少不必要的安装,适合不同场景。 ### 4.3 测试覆盖 项目包含多个测试模块: - `tests/` 目录:集成测试 - `testing/` 模块:测试运行器与评判器 - `evaluation/` 模块:评估框架 但测试覆盖度需要进一步评估(未进行详细统计)。 --- ## 五、生态与集成 ### 5.1 LLM 生态 支持 **30+ LLM 提供商**,包括: - 官方:OpenAI、Anthropic (Claude)、Google Gemini - 国内:DeepSeek、阿里 Qwen、月之暗面 Kimi、智谱 Zhipu、MiniMax、字节火山引擎 - 中转:OpenRouter、SiliconFlow、DashScope 注册器模式 (`llm/registries/`) 的设计使得添加新提供商较为便捷。 ### 5.2 IM 平台 支持 **6 个即时通讯平台**: - Telegram(官方 bot API) - 飞书(lark-oapi) - 钉钉(dingtalk-stream) - 企业微信(wework bot) - QQ(QQ 小冰/官方) - OneBot(NapCat、Lagrange 等) 通道适配器模式 (`channels/adapters/`) 使得添加新平台相对容易。 ### 5.3 MCP 集成 项目支持 MCP 协议,可连接外部 MCP 服务器。`mcps/` 目录提供了: - Chrome 浏览器控制 - Chrome DevTools - 桌面控制 - Web 搜索 --- ## 六、优势与亮点 ### 6.1 核心优势 1. **完整的产品化程度**:从 CLI 到 GUI,从个人助手到团队协作,形成了完整的产品矩阵 2. **零门槛部署**:桌面应用 + 向导式配置,非技术用户也能快速上手 3. **国内生态适配**:优先支持国内 LLM 提供商和 IM 平台(钉钉、飞书、企业微信、QQ) 4. **自我演化能力**:独特的 Ralph 循环 + 演化引擎,使 Agent 能够从失败中学习 5. **多模态能力**:支持语音、图像、文件等多种输入形式 ### 6.2 技术亮点 - **两阶段提示词架构**:提高任务理解可靠性 - **多智能体编排**:支持复杂任务的分工协作 - **运行时监督**:工具抖动检测、资源预算、策略引擎 - **可观测性**:12 种追踪 span 类型,完整的 token 统计 --- ## 七、潜在改进空间 ### 7.1 架构层面 1. **微服务化考虑**:当前为单体架构,随着功能增加,可考虑拆分核心服务 2. **插件系统**:`plugins/` 目录存在但未充分使用,可发展为更灵活的扩展机制 3. **分布式部署**:当前设计偏向单机,多实例协同能力待加强 ### 7.2 功能层面 1. **Web 应用**:目前桌面应用基于 Tauri,可考虑提供纯 Web 版本 2. **协作功能**:多用户、团队协作场景的支持 3. **企业级特性**:RBAC、审计日志、SLA 监控 ### 7.3 工程层面 1. **测试覆盖**:需提升单元测试和集成测试覆盖率 2. **性能优化**:大并发场景下的性能表现待验证 3. **文档完善**:部分模块文档可更加详尽 ### 7.4 安全层面 1. **敏感操作确认**:危险操作需要确认机制(已有基础实现) 2. **数据隐私**:本地数据存储(已有),但端到端加密可加强 --- ## 八、总结与建议 ### 8.1 综合评价 **OpenAkita 是一个成熟度较高的开源 AI Agent 项目**,在技术架构、功能完整性、产品化程度方面都表现出色。其"永不放弃"的核心理念和自我演化能力构成了独特的竞争壁垒。 项目适合以下场景: - 个人 AI 助手(本地部署,保护隐私) - 小团队自动化工作流 - 开发者学习和参考 AI Agent 架构 ### 8.2 建议 1. **持续关注 MCP 生态**:MCP 正在成为 AI 工具的标准协议,应加大投入 2. **强化企业级特性**:如有商业化考虑,需补齐 RBAC、审计等企业功能 3. **社区运营**:活跃的社区是开源项目成功的关键 4. **性能优化**:随着用户增长,需要关注系统性能和扩展性 ---
✨步子哥 (steper) #2
03-02 02:32
# 记忆系统与多智能体编排深度分析 --- ## 一、记忆系统 (Memory System) 架构分析 ### 1.1 设计理念 OpenAkita 的记忆系统经过 **v2 架构重构**,参考了 Mem0、LangMem 等业界最佳实践,形成了独特的三层记忆架构。其核心设计理念是: > **"区分「用户是谁」和「用户要做什么」"** —— 只记忆用户的身份、性格、长期偏好,不记忆具体的任务指令。 ### 1.2 记忆类型体系 项目定义了 **7 种记忆类型** ([types.py](file:///Volumes/SSD/GitHub/openakita/src/openakita/memory/types.py#L24-L35)): ```python class MemoryType(Enum): FACT = "fact" # 事实性信息 PREFERENCE = "preference" # 用户偏好 SKILL = "skill" # 技能知识 CONTEXT = "context" # 上下文(向后兼容) RULE = "rule" # 行为规则 ERROR = "error" # 错误经验 PERSONA_TRAIT = "persona_trait" # 人格特征 EXPERIENCE = "experience" # 任务经验教训 ``` 配合 **4 种优先级** ([types.py](file:///Volumes/SSD/GitHub/openakita/src/openakita/memory/types.py#L40-L48)): ```python class MemoryPriority(Enum): TRANSIENT = "transient" # 临时(1天) SHORT_TERM = "short_term" # 短期(3天) LONG_TERM = "long_term" # 长期(30天) PERMANENT = "permanent" # 永久 ``` 以及 **3 种作用域**: | 作用域 | 说明 | |--------|------| | `GLOBAL` | 全局共享 | | `AGENT` | Agent 私有 | | `SESSION` | 会话私有 | ### 1.3 v2 架构核心组件 ``` ┌─────────────────────────────────────────────────────────────────┐ │ MemoryManager (协调器) │ ├─────────────────────────────────────────────────────────────────┤ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │ │ │ Extractor │ │ Retrieval │ │ UnifiedStore │ │ │ │ (AI提取) │ │ Engine │ │ (SQLite + Search) │ │ │ │ │ │ (多路召回) │ │ │ │ │ └─────────────┘ └─────────────┘ └─────────────────────────┘ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │ │ │Consolidator │ │ VectorStore │ │ SearchBackend │ │ │ │ (记忆合并) │ │ (向量存储) │ │ (FTS5/向量/混合) │ │ │ └─────────────┘ └─────────────┘ └─────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ ``` #### 1.3.1 UnifiedStore — 统一存储层 [unified_store.py](file:///Volumes/SSD/GitHub/openakita/src/openakita/memory/unified_store.py) 实现了存储与检索的分离: - **SQLite 主存储**:`MemoryStorage` 负责结构化数据持久化 - **SearchBackend 索引**:`FTS5Backend`(全文搜索)或向量后端 - **降级机制**:当向量后端不可用时,自动回退到 FTS5 ```python class UnifiedStore: def __init__(self, db_path, search_backend=None, ...): self.db = MemoryStorage(db_path) # SQLite self.search = create_search_backend(backend_type, ...) ``` #### 1.3.2 RetrievalEngine — 多路召回引擎 [retrieval.py](file:///Volumes/SSD/GitHub/openakita/src/openakita/memory/retrieval.py) 实现了复杂的检索策略: **召回通道**: 1. **语义搜索** — 基于向量或 FTS5 2. **情节搜索** — 实体/工具名关联 3. **时间搜索** — 最近 N 天 4. **附件搜索** — 文件/媒体关联 **排序权重**(第 38-41 行): ```python W_RELEVANCE = 0.40 # 相关性 W_RECENCY = 0.20 # 时效性 W_IMPORTANCE = 0.20 # 重要性 W_ACCESS = 0.20 # 访问频率 ``` **LLM 关键词拆解**:使用 `QUERY_DECOMPOSE_PROMPT` 将自然语言查询转换为搜索关键词。 #### 1.3.3 MemoryExtractor — AI 提取器 [extractor.py](file:///Volumes/SSD/GitHub/openakita/src/openakita/memory/extractor.py) 负责从对话中提取值得记忆的信息。其核心判断逻辑(第 35-60 行): > 问自己"这条信息在一个月后的新对话中还有用吗?" **提取原则**: - ✅ 记录:用户身份、性格偏好、行为规则、技术环境、可复用经验 - ❌ 不记录:具体任务请求、临时指令 ### 1.4 记忆注入策略 [manager.py](file:///Volumes/SSD/GitHub/openakita/src/openakita/memory/manager.py) 实现了**三层注入**: ``` ┌─────────────────────────────────────────┐ │ Scratchpad (工作记忆) │ │ 跨 session 的工作草稿,实时更新 │ ├─────────────────────────────────────────┤ │ Core Memory (核心记忆) │ │ 身份、性格、长期偏好,MEMORY.md │ ├─────────────────────────────────────────┤ │ Dynamic Memories (动态记忆) │ │ 检索召回的事实、偏好、经验 │ └─────────────────────────────────────────┘ ``` ### 1.5 记忆系统亮点与改进建议 | 亮点 | 改进建议 | |------|----------| | 多路召回 + 综合排序 | 可增加用户反馈闭环优化排序 | | 智能过期机制 (TTL) | 可增加主动回忆/强化机制 | | 向后兼容 v1 | 长期可考虑移除兼容层 | | LLM 关键词拆解 | 可增加缓存命中率 | --- ## 二、多智能体编排 (Multi-Agent Orchestration) 架构分析 ### 2.1 设计目标 OpenAkita 的多智能体系统旨在实现: - **专业化分工**:不同 Agent 擅长不同领域 - **并行协作**:一个请求触发多个 Agent 同时工作 - **故障转移**:某个 Agent 失败时自动切换 - **状态可视化**:实时追踪子 Agent 状态 ### 2.2 核心组件 ``` ┌─────────────────────────────────────────────────────────────────┐ │ AgentOrchestrator (编排器) │ ├─────────────────────────────────────────────────────────────────┤ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │ │ │ AgentMailbox│ │ AgentHealth│ │ AgentInstancePool │ │ │ │ (消息队列) │ │ (健康度) │ │ (实例管理+空闲回收) │ │ │ └─────────────┘ └─────────────┘ └─────────────────────────┘ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │ │ │DelegationLog│ │ Fallback │ │ ProfileStore │ │ │ │ (委托日志) │ │ (故障转移) │ │ (AgentProfile 存储) │ │ │ └─────────────┘ └─────────────┘ └─────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ ``` #### 2.2.1 AgentOrchestrator — 中央编排器 [orchestrator.py](file:///Volumes/SSD/GitHub/openakita/src/openakita/agents/orchestrator.py) 是整个多智能体系统的核心: **核心职责**: 1. **消息路由**:根据 session 的 agent_profile_id 分发到对应 Agent 2. **委托管理**:支持 Agent 之间的任务委托(有深度限制 `MAX_DELEGATION_DEPTH = 5`) 3. **超时处理**:空闲超时 `1200s`、硬性超时可配置 4. **健康度追踪**:记录每个 Agent 的请求数、成功率、平均延迟 **委托请求结构**(第 38-46 行): ```python @dataclass class DelegationRequest: from_agent: str # 委托方 to_agent: str # 被委托方 message: str # 任务描述 session_key: str # 会话标识 depth: int = 0 # 委托深度 ``` #### 2.2.2 AgentMailbox — 异步消息队列 每个 Agent 拥有独立的异步消息队列 (`asyncio.Queue`): ```python class AgentMailbox: async def send(self, message: dict) -> None: await self._queue.put(message) async def receive(self, timeout: float = 300.0) -> dict | None: # 超时返回 None,支持优雅降级 ``` 这种设计支持**多 Agent 并行工作**,互不阻塞。 #### 2.2.3 AgentFactory — Agent 实例工厂 [factory.py](file:///Volumes/SSD/GitHub/openakita/src/openakita/agents/factory.py) 根据 `AgentProfile` 创建差异化实例: **核心功能**: 1. **技能过滤**:根据 profile 配置筛选可用技能 2. **提示词注入**:添加自定义提示词 3. **名称/图标设置**:差异化展示 **关键配置**(第 28-45 行): ```python class SkillsMode(str, Enum): INCLUSIVE = "inclusive" # 仅含列表中的技能 EXCLUSIVE = "exclusive" # 排除列表中的技能 ALL = "all" # 全部技能 ``` **基础系统技能**(第 23-27 行):无论哪种模式,都必须保留的核心技能: - 规划:`create-plan`, `update-plan-step`, `get-plan-status` - 技能发现:`get-skill-info`, `list-skills` - 文件系统:`run-shell`, `read-file`, `write-file` - 记忆:`search-memory`, `add-memory` #### 2.2.4 AgentProfile — Agent 蓝图 [profile.py](file:///Volumes/SSD/GitHub/openakita/src/openakita/agents/profile.py) 定义了 Agent 的配置模板: ```python @dataclass class AgentProfile: id: str name: str skills: list[str] # 技能列表 skills_mode: SkillsMode # 技能模式 custom_prompt: str # 自定义提示词 fallback_profile_id: str # 故障转移目标 icon: str # 显示图标 color: str # 主题色 ``` **系统预置 Agent**: - `default` — 默认助手 - `tech_expert` — 技术专家 - `boyfriend` / `girlfriend` — 情感陪伴 - `jarvis` / `butler` — 管家式服务 - `business` / `family` — 商务/家庭场景 ### 2.3 委托协作流程 ``` 用户: "创建一个竞品分析报告" │ ▼ ┌──────────────────────────────┐ │ AgentOrchestrator │ │ 解析任务,识别需要: │ │ - 搜索 Agent │ │ - 写作 Agent │ │ - 验证 Agent │ └──────────────────────────────┘ │ ├───────────────────┬───────────────────┐ ▼ ▼ ▼ ┌─────────┐ ┌─────────┐ ┌─────────┐ │Search │ │Writing │ │Verify │ │Agent │────────▶│Agent │────────▶│Agent │ │(并行) │ │ │ │ │ └─────────┘ └─────────┘ └─────────┘ │ │ │ └───────────────────┴───────────────────┘ │ ▼ ┌─────────────┐ │ 返回报告给用户 │ └─────────────┘ ``` ### 2.4 健康度与故障处理 **AgentHealth 指标**(第 52-63 行): ```python @dataclass class AgentHealth: total_requests: int # 总请求数 successful: int # 成功数 failed: int # 失败数 avg_latency_ms: float # 平均延迟 @property def success_rate(self) -> float: return self.successful / max(self.total_requests, 1) ``` **故障转移**:当某个 Agent 连续失败时,自动切换到 `fallback_profile_id` 指定的备用 Agent。 ### 2.5 多智能体系统亮点与改进建议 | 亮点 | 改进建议 | |------|----------| | 轻量级 asyncio 设计 | 可增加分布式部署支持 | | 委托深度限制防死循环 | 可增加更细粒度的环检测 | | 空闲回收机制 (30min) | 可增加热备份预加载 | | 健康度实时追踪 | 可增加告警与自动扩缩容 | | 故障转移机制 | 可增加熔断器模式 | --- ## 三、两个系统的协同 记忆系统与多智能体编排并非独立运作,而是紧密协作: ### 3.1 Agent 使用记忆 ```python # 每个 Agent 都可以访问记忆系统 - search-memory: 检索相关记忆 - add-memory: 添加新记忆 ``` ### 3.2 Agent 私有记忆 通过 `MemoryScope.AGENT` 实现 Agent 私有记忆: - 不同的 Agent 可以有不同的"人格" - 共享全局记忆 (`GLOBAL`) 实现跨 Agent 协作 ### 3.3 任务记忆传递 当 Agent 之间进行委托时: - 任务上下文通过 `DelegationRequest` 传递 - 记忆检索可以包含委托链上下文 --- ## 四、总结 OpenAkita 的记忆系统和多智能体编排都体现了**工程化的成熟度**: 1. **记忆系统**:v2 架构清晰,多路召回策略合理,AI 提取逻辑务实 2. **多智能体编排**:轻量级 asyncio 设计,支持并行协作和故障转移 两个系统都遵循了**关注点分离**原则,组件边界清晰,便于扩展和维护。整体架构在开源 AI Agent 项目中属于较为完善的实现。