公司动态
TencentDB Agent Memory源码解析:核心模块与关键算法实现
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-MemoryTencentDB Agent Memory是一款团队级AI Agent记忆中枢能够将对话、文档和代码转化为四种可复用的记忆资产聊天记忆、技能、LLM-Wiki和代码图谱实现跨Agent和框架的治理、共享与装备。本文将深入解析其核心模块架构与关键算法实现帮助开发者快速理解项目原理与应用场景。一、记忆金字塔架构从原始数据到智能资产TencentDB Agent Memory采用独特的四层记忆金字塔架构实现从原始对话到结构化知识的渐进式转化。这一架构确保AI Agent能够高效存储、检索和应用记忆信息显著提升智能交互体验。图1TencentDB Agent Memory记忆金字塔架构英文版本1.1 L0层原始日志Raw LogL0层负责全量保留原始对话与事件流确保信息不丢失并提供证据溯源能力。在代码实现中这一层通过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 MemoryL1层通过自动提取事实、偏好、约束和状态从原始对话中稳定抽取出关键信息。核心实现位于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 BlockL2层按项目、主题或工作流场景聚类带上文召回功能减少单场误用。相关实现位于scene-extractor.ts// src/core/scene/scene-extractor.ts export class SceneExtractor { async extract(messages: ConversationMessage[]): PromiseSceneBlock[] { // 实现场景提取逻辑 } }1.4 L3层角色画像PersonaL3层构建稳定的用户偏好与服务方式画像让Agent按用户习惯协作。核心代码在persona-generator.ts// src/core/persona/persona-generator.ts export class PersonaGenerator { async generate(sceneBlocks: SceneBlock[]): PromisePersona { // 实现角色画像生成逻辑 } }图2TencentDB 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[]): PromiseFloat32Array[] { // 实现本地文本嵌入逻辑 } }同时支持多种外部嵌入服务如OpenAI// src/core/store/embedding.ts export class OpenAIEmbeddingService implements EmbeddingService { async embed(texts: string[]): PromiseFloat32Array[] { // 实现OpenAI嵌入API调用 } }2.3 记忆处理管道自动化记忆加工流程记忆处理管道通过pipeline-factory.ts创建实现从原始数据到结构化记忆的自动化处理// src/utils/pipeline-factory.ts export async function createPipeline(opts: PipelineFactoryOptions): PromisePipelineInstance { // 创建记忆处理管道 }主要包含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; }): PromiseMemorySearchResult { // 实现记忆搜索逻辑 }三、关键算法实现智能记忆的核心驱动力3.1 混合搜索算法精确与模糊的完美结合系统采用BM25词袋模型与向量搜索结合的混合搜索策略在search-utils.ts中实现// src/core/store/search-utils.ts export function rrfMergeT( 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; }): PromiseDedupDecision[] { // 实现批量去重逻辑 }3.3 场景提取算法上下文感知的信息组织场景提取算法通过语义分析将对话分组为逻辑场景// src/core/scene/scene-extractor.ts export class SceneExtractor { private async computeSceneSimilarity(a: SceneBlock, b: SceneBlock): Promisenumber { // 计算场景相似度 } }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),仅供参考