Skip to content

Latest commit

 

History

History
141 lines (99 loc) · 8.83 KB

File metadata and controls

141 lines (99 loc) · 8.83 KB

Mini Agent 路线图

以 LangGraph 为内核,先把 Mini Agent 打造成具备会话记忆、长期记忆、技能沉淀、可扩展子代理的通用 Agent 基座,再从该基座衍生数据分析与论文研究方向。当前不维护独立 Web 前端。

当前定位

  • 项目主线仍然是通用 Agent,不走 Hermes 那种“编码智能体优先”的路线。
  • 技术基座继续保持为 LangGraph + create_agent + middleware
  • 参考 Hermes 的重点不是复刻其产品形态,而是吸收“会成长、会沉淀、可跨会话延续”的能力设计。

OpenViking 单轨原则

  • 会话历史、长期记忆、用户画像概览、语义检索等,凡 OpenViking 已提供的模型与接口,一律直接走 OpenVikingbackend/openviking/ 适配层),不自建平行存储或第二套记忆/画像系统(例如不再为同一用途另建 JSON 库、独立画像文件服务)。
  • Mini Agent 侧只做:身份映射user_id / thread_id)、配置与编排把召回结果注入系统提示与工具,不在应用层重复实现 OpenViking 已有的提炼与索引能力。

当前架构现状

  • Agent 核心已经稳定成型:
    • backend/agent.py 负责组装 create_agent(...)
    • backend/state.py 定义 MiniAgentState
    • backend/context.py 定义 MiniAgentContext
  • 中间件栈已经具备扩展基础:
    • 上下文工程
    • 摘要
    • Todo
    • 重试
    • 限流
    • 循环检测
    • 错误处理
    • 澄清
  • 长期记忆与会话已切到 OpenViking embeddedbackend/openviking/),不再使用 data/users 下 JSON 文件;data_query_memory.json 已移除。后续演进仍遵守 OpenViking 单轨(见上),不在应用层复制同类能力。
  • thread_id 绑定 OpenViking session,历史在 MiniAgentRuntime.invoke 中回灌;LangGraph 侧已去掉进程内 InMemorySaver 作为主会话源。
  • 与 Agent 对接的典型客户端会消费 LangGraph /runs/stream 流式事件,并可调用记忆等 HTTP API;本仓库当前不内嵌该 Web 端。
  • 技能和子代理体系已经可用,不需要从零设计:
    • skills/ 下已有可复用技能
    • 已有 general-purposeskills-research 两类子代理

P0:记忆系统重构

1. 接入 OpenViking

  • 调研并确认 OpenViking 的正式接口、SDK、存储模型和部署方式(embedded + ov.conf,见官方文档与 openviking PyPI)
  • 设计 Mini Agent 到 OpenViking 的记忆映射关系(user_idUserIdentifierthread_id → session)
  • 统一到 OpenViking 记忆模型;已移除 profile.json / working_memory.json / data_query_memory.json 主链,不做旧 JSON 双写兼容

2. 会话 session 持久化

  • 以 OpenViking session 为持久化主源(替代进程内 checkpoint 作为会话历史)
  • thread_id 对应可恢复的会话历史(load_session_history_messages + runtime 回灌)
  • 打通 session 与长期记忆索引的产品级约定(URI、命名、跨 thread 检索入口仍待补强)
  • 跨会话「回放 UI / API」与 LangGraph 流式入口对齐(若仍走独立 LangGraph API,需统一契约)

3. 召回链路重构

  • 分层召回初版:session 归档摘要 + user 记忆概览 + find 相关记忆(backend/openviking/retrieval.py
  • 更细粒度区分画像 / 事实 / 近期目标(仅通过 OpenViking 分类、索引与检索策略调优,不自建标签体系)
  • 控制注入:仅将召回块拼入系统侧上下文,避免整库灌入
  • 为垂域智能体预留统一召回接口(工具可调用的检索层;基于现有 OpenViking 封装,不另建检索后端)

P0:长期记忆异步化

已实现(初版)commit_session_turnadd_message 同步落盘(保证下一轮 load_session_history 可见)之后,当 openviking.async_commit: true 时仅将 commit_session 投递backend/openviking/memory_commit_queue.py 的后台线程;MiniAgentRuntime.invoke 在 enqueue 后即可返回,不再等待记忆提炼完成。配置项:async_commit(默认 true)、async_commit: false 时回退为同步 commit_session(便于测试与排障)。

时序约定:当前轮回答不依赖本轮刚完成的 commit_session;提炼与索引更新主要影响后续轮次的检索与归档。

  • 拆分链路:同步 add_message + 异步 commit_session(见 session_store.commit_session_turn
  • 进程内队列 + 单 worker 线程(后续可换 Redis / 独立进程)
  • Worker 内失败重试(指数退避,最多 3 次)与结构化日志
  • (user_id, thread_id) 合并去重、全局限流(高并发下减少冗余 commit)
  • 任务 id、耗时统计、LangSmith 自定义 span;queue_depth() 已预留,待接入指标面板
  • 质量与成功率:commit 成功率、重试次数、队列积压告警;提炼条数等质量指标

P1:Hermes 风格的通用成长能力

这里借鉴 Hermes 的不是“编码优先”,而是“成长闭环”。本段能力扩展默认以 OpenViking 为唯一记忆与会话语义源,不自建平行记忆系统。

1. 跨会话检索

  • 支持检索历史对话、任务结论与已沉淀记忆(session 空间 find + 用户记忆 find,见 cross_session_retrieval / retrieval.py
  • 让检索结果既可作为工具能力,也可作为召回层能力(memory_recall 工具 + 上下文工程注入)
  • 为复杂连续任务提供跨 session 延续能力(排除当前 thread_id 的其它会话命中 + 既有会话归档与记忆召回)

2. 技能沉淀闭环

  • 将复杂任务中的稳定流程沉淀为技能
  • 支持对已有技能做迭代升级,而不是不断堆主提示词
  • 让通用 Agent 通过任务经验逐步形成可复用能力库

3. 用户画像逐步演化(OpenViking 单轨)

画像与长期记忆同源:OpenViking 用户空间下的提炼内容(如 profile_overview / .overview.md)与记忆概览、向量召回一并进入系统上下文(见 memory_store.build_user_memory_context)。不在应用层另建画像库或第二份「用户档案」存储。

  • OpenViking 产出结构或文档约定内,引导偏好、角色、长期目标、常用任务类型等稳定栏目(readme.md 用户数据隔离节 + 系统提示;提炼仍由 OpenViking 负责),而非自建用户建模系统
  • 保持轻量:不重做画像抽取与存储,只调 OpenViking 与接入层行为(架构已遵守,见「OpenViking 单轨原则」)
  • 强化 系统提示中的使用规则:画像块服务于语气、详略与工具倾向,且服从事实与工具结果(prompt.py §6);主链路为对话注入,不单独堆「画像功能页」

4. 更成熟的子代理协作

  • 在现有 general-purposeskills-research 基础上扩展协作模式
  • 后续考虑形成 planner / researcher / executor / reviewer 的多角色协同
  • 子代理设计继续服务于通用任务,而不是偏向编码工作流

5. 安全与治理

  • 继续强化工具调用治理、错误处理、澄清机制和限流策略
  • 为关键工具调用增加更明确的策略控制
  • 将治理能力作为通用 Agent 的底层能力,而不是临时补丁

P2:未来垂域分身

当前先做通用 Agent,后续在统一内核上衍生垂域能力。

1. 数据分析智能体

  • 复用 data-query-interpretation 技能
  • 增强结构化分析、指标解释、业务归因和报表问答

2. 学术论文智能体

  • 复用 deep-research 能力
  • 扩展论文检索、文献综述、观点对比、引用整理和研究问题拆解
  • 形成更适合学术研究场景的任务链路

3. 统一原则

  • 所有垂域智能体都建立在同一个通用 Agent 内核之上
  • 不拆成两套完全独立的框架
  • 先强化底座,再衍生垂域,不反过来牵引主架构

非目标

  • 不做 MCP 集成
  • 不把产品重新定位成编码智能体
  • 不追求一比一复刻 Hermes 的 CLI、消息网关、终端后端或云运行体系
  • 不自建与 OpenViking 职责重叠的会话主存、长期记忆主存、用户画像主存或独立语义索引(与「OpenViking 单轨原则」一致)

里程碑顺序

  1. 记忆系统重构与 OpenViking session 主链:已完成主体;索引与跨入口契约仍待收尾。
  2. 进行中:长期记忆异步化(解耦主链路与 commit/提炼)。
  3. 然后建设技能沉淀、在 OpenViking 与提示层上演化画像、以及子代理协作;跨会话检索已在 OpenViking 链路上落地,后续以调优与产品契约为主。
  4. 再推进数据分析/论文等垂域智能体分身(若日后需要独立前端,再单独排期)。