TencentDB Agent Memory源码解析:核心模块与关键算法实现
【免费下载链接】TencentDB-Agent-MemoryTencentDB Agent Memory is a team-level memory hub for AI Agents — turning conversations, docs, and code into four reusable memory assets (Chat Memory, Skill, LLM-Wiki, Code-Graph) that are governed, shared, and equipped across agents and frameworks.项目地址: https://gitcode.com/GitHub_Trending/te/TencentDB-Agent-Memory
TencentDB Agent Memory是一款团队级AI Agent记忆中枢,能够将对话、文档和代码转化为四种可复用的记忆资产(聊天记忆、技能、LLM-Wiki和代码图谱),实现跨Agent和框架的治理、共享与装备。本文将深入解析其核心模块架构与关键算法实现,帮助开发者快速理解项目原理与应用场景。
一、记忆金字塔架构:从原始数据到智能资产
TencentDB Agent Memory采用独特的四层记忆金字塔架构,实现从原始对话到结构化知识的渐进式转化。这一架构确保AI Agent能够高效存储、检索和应用记忆信息,显著提升智能交互体验。
图1:TencentDB Agent Memory记忆金字塔架构(英文版本)
1.1 L0层:原始日志(Raw Log)
L0层负责全量保留原始对话与事件流,确保信息不丢失并提供证据溯源能力。在代码实现中,这一层通过l0-recorder.ts模块完成对话记录:
// src/core/conversation/l0-recorder.ts export async function recordConversation(params: { sessionKey: string; messages: ConversationMessage[]; store: IMemoryStore; logger?: Logger; }) { // 实现对话记录逻辑 }1.2 L1层:原子记忆(Atomic Memory)
L1层通过自动提取事实、偏好、约束和状态,从原始对话中稳定抽取出关键信息。核心实现位于l1-extractor.ts,使用LLM模型进行信息提取:
// src/core/record/l1-extractor.ts export async function extractL1Memories(params: { l0Records: L0Record[]; llmRunner: LLMRunner; store: IMemoryStore; logger?: Logger; }) { // 实现原子记忆提取逻辑 }1.3 L2层:场景块(Scene Block)
L2层按项目、主题或工作流场景聚类,带上文召回功能减少单场误用。相关实现位于scene-extractor.ts:
// src/core/scene/scene-extractor.ts export class SceneExtractor { async extract(messages: ConversationMessage[]): Promise<SceneBlock[]> { // 实现场景提取逻辑 } }1.4 L3层:角色画像(Persona)
L3层构建稳定的用户偏好与服务方式画像,让Agent按用户习惯协作。核心代码在persona-generator.ts:
// src/core/persona/persona-generator.ts export class PersonaGenerator { async generate(sceneBlocks: SceneBlock[]): Promise<Persona> { // 实现角色画像生成逻辑 } }图2:TencentDB Agent Memory记忆金字塔架构(中文版本)
二、核心模块解析:从数据存储到智能交互
2.1 存储模块:多引擎支持的数据管理中心
TencentDB Agent Memory提供多种存储引擎支持,包括本地SQLite和分布式Tcvdb,通过统一接口实现灵活切换。
SQLite存储引擎:
// src/core/store/sqlite.ts export class VectorStore implements IMemoryStore { // 实现SQLite存储逻辑 }Tcvdb分布式存储引擎:
// src/core/store/tcvdb.ts export class TcvdbMemoryStore implements IMemoryStore { // 实现Tcvdb存储逻辑 }存储工厂类factory.ts负责根据配置创建合适的存储实例:
// src/core/store/factory.ts export function createStoreBundle( config: MemoryStoreConfig, embeddingService: EmbeddingService, logger?: Logger ): StoreBundle { // 根据配置创建存储实例 }2.2 嵌入服务:文本向量化核心能力
嵌入服务将文本转化为向量表示,为语义搜索提供支持。本地嵌入服务实现如下:
// src/core/store/embedding.ts export class LocalEmbeddingService implements EmbeddingService { async embed(texts: string[]): Promise<Float32Array[]> { // 实现本地文本嵌入逻辑 } }同时支持多种外部嵌入服务,如OpenAI:
// src/core/store/embedding.ts export class OpenAIEmbeddingService implements EmbeddingService { async embed(texts: string[]): Promise<Float32Array[]> { // 实现OpenAI嵌入API调用 } }2.3 记忆处理管道:自动化记忆加工流程
记忆处理管道通过pipeline-factory.ts创建,实现从原始数据到结构化记忆的自动化处理:
// src/utils/pipeline-factory.ts export async function createPipeline(opts: PipelineFactoryOptions): Promise<PipelineInstance> { // 创建记忆处理管道 }主要包含L1、L2、L3各级记忆的处理逻辑,通过MemoryPipelineManager进行管理:
// src/utils/pipeline-manager.ts export class MemoryPipelineManager { // 管理记忆处理管道 }2.4 工具集成:与外部系统的交互桥梁
工具集成模块实现与外部系统的交互,如conversation-search.ts和memory-search.ts提供搜索能力:
// src/core/tools/memory-search.ts export async function executeMemorySearch(params: { query: string; store: IMemoryStore; limit?: number; }): Promise<MemorySearchResult> { // 实现记忆搜索逻辑 }三、关键算法实现:智能记忆的核心驱动力
3.1 混合搜索算法:精确与模糊的完美结合
系统采用BM25(词袋模型)与向量搜索结合的混合搜索策略,在search-utils.ts中实现:
// src/core/store/search-utils.ts export function rrfMerge<T>( lists: T[][], getScore: (item: T) => number, k = 60 ): T[] { // 实现RRF( reciprocal rank fusion)算法 }3.2 记忆去重算法:确保信息唯一性
记忆去重算法在l1-dedup.ts中实现,通过LLM判断记忆片段是否重复:
// src/core/record/l1-dedup.ts export async function batchDedup(params: { memories: ExtractedMemory[]; store: IMemoryStore; llmRunner: LLMRunner; logger?: Logger; }): Promise<DedupDecision[]> { // 实现批量去重逻辑 }3.3 场景提取算法:上下文感知的信息组织
场景提取算法通过语义分析将对话分组为逻辑场景:
// src/core/scene/scene-extractor.ts export class SceneExtractor { private async computeSceneSimilarity(a: SceneBlock, b: SceneBlock): Promise<number> { // 计算场景相似度 } }3.4 令牌管理算法:优化LLM上下文窗口
令牌管理算法在context-token-tracker.ts中实现,确保在LLM上下文窗口限制内提供最相关信息:
// src/offload/context-token-tracker.ts export function buildTiktokenContextSnapshot( messages: any[], sysPrompt: string | null = null ): TokenSnapshot { // 实现令牌计算与管理 }四、快速上手:从安装到基础使用
4.1 环境准备
首先克隆项目仓库:
git clone https://gitcode.com/GitHub_Trending/te/TencentDB-Agent-Memory cd TencentDB-Agent-Memory4.2 安装依赖
使用npm安装项目依赖:
npm install4.3 初始化配置
复制配置文件并根据需求修改:
cp config.example.ts config.ts4.4 启动服务
启动TencentDB Agent Memory服务:
npm run start4.5 数据迁移
如果需要从SQLite迁移数据到Tcvdb,可使用迁移脚本:
node scripts/migrate-sqlite-to-tcvdb/sqlite-to-tcvdb.ts五、总结与展望
TencentDB Agent Memory通过创新的记忆金字塔架构和强大的算法实现,为AI Agent提供了高效的记忆管理解决方案。核心模块设计遵循职责单一原则,通过接口抽象实现高内聚低耦合,便于扩展和维护。
未来,项目将继续优化记忆处理算法,提升大规模记忆管理能力,并加强与各类AI框架的集成,为构建更智能、更高效的AI Agent生态系统奠定基础。
通过深入理解TencentDB Agent Memory的源码架构,开发者可以快速掌握AI记忆系统的设计要点,为构建个性化智能应用提供有力支持。
【免费下载链接】TencentDB-Agent-MemoryTencentDB Agent Memory is a team-level memory hub for AI Agents — turning conversations, docs, and code into four reusable memory assets (Chat Memory, Skill, LLM-Wiki, Code-Graph) that are governed, shared, and equipped across agents and frameworks.项目地址: https://gitcode.com/GitHub_Trending/te/TencentDB-Agent-Memory
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考