ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

agentmemory mesh同步:如何一键打通多实例间的P2P记忆同步(完整原理指南)

agentmemory mesh同步:如何一键打通多实例间的P2P记忆同步(完整原理指南) agentmemory mesh同步如何一键打通多实例间的P2P记忆同步完整原理指南【免费下载链接】agentmemory#1 Persistent memory for AI coding agents based on real-world benchmarks项目地址: https://gitcode.com/GitHub_Trending/age/agentmemory如果你正在为多个 AI 编码代理搭建共享记忆agentmemory 的mesh 同步功能正是答案它让多台 agentmemory 实例之间通过 P2P 方式直接同步记忆数据无需中心服务器。本文带你搞懂多实例记忆同步的完整原理从注册对等节点、双向增量推送到最后写入合并的每一步并附带安全机制与上手步骤。一、为什么需要 mesh 多实例记忆同步在真实团队场景里往往会有多台机器、多台代理各自运行 agentmemory 守护进程开发机的编码代理积累了一堆项目记忆CI 机器上的代理需要这些经验来跑自动化任务远程开发容器里的代理希望直接继承本地代理的记忆库。传统做法是导出 JSON 再手动导入繁琐且容易过期。mesh 同步让多个实例互为对等节点Peer彼此直接推送和拉取记忆最终达成一致。下图是 iii-console 中查看到的多个 agentmemory 节点它们都可以成为 mesh 网络中的同步对端二、P2P 记忆同步的四步原理整个机制由五个核心函数构成全部实现在 src/functions/mesh.ts 中对端节点的数据结构定义在 src/types.ts 的MeshPeer接口里。1. 注册对等节点mem::mesh-register给本实例注册一个对端需要提供对方地址、名称以及可选的共享范围和项目过滤条件。注册时会做一次安全校验拒绝localhost、内网 IP10.x、192.168.x、172.16-31.x 等等私有地址防止 SSRF 攻击见 isAllowedUrl。POST /agentmemory/mesh/peers { url: https://peer.example.com, name: 开发机 }2. 双向同步mem::mesh-sync同步支持push/pull/both三个方向推送把本地自上次同步以来的增量数据 POST 到对端的/agentmemory/mesh/receive拉取携带since时间戳从对端的/agentmemory/mesh/export获取增量。关键在于增量机制每次同步成功后会记录lastSyncAt时间戳下次只传这个时间点之后变更的记忆而不是全量搬运。这就是 collectSyncData 中deltaFilter按updatedAt/createdAt过滤数据的作用。3. 接收与合并mem::mesh-receive对端收到数据后并不是无脑覆盖而是采用LWWLast-Write-Wins最后写入者胜策略合并实现见 lwwMergeList情况处理结果本地没有这条记忆直接写入收到的updatedAt比本地新覆盖本地版本收到的updatedAt比本地旧丢弃保持本地版本每条记忆还配了按键锁keyed mutex防止并发写入冲突。而记忆关系relations则只做只增不删的幂等合并——已存在的关系不会重复写入也不会被远端删除。同步完成后的 KV 存储状态可以在控制台里直观看到4. 状态追踪与移除每个对端节点有connected/disconnected/syncing/error四种状态每次同步开始、成功、失败都会写入审计日志mesh_sync类别可通过mem::mesh-list查看、mem::mesh-remove移除节点。完整的同步流程还有对应测试覆盖test/mesh.test.ts。三、mesh 同步到底同步哪些数据默认共享 7 个范围scope覆盖了 agentmemory 的核心记忆体系范围内容时间戳字段memories情景记忆原始记忆条目updatedAtactions代理执行的动作记录updatedAtsemantic语义记忆事实性知识updatedAtprocedural程序性记忆怎么做某事updatedAtrelations记忆之间的关联createdAtgraph:nodes知识图谱节点updatedAtgraph:edges知识图谱边createdAt 通过注册时的syncFilter.project参数还可以只同步某个项目的动作数据其余全局范围自动跳过实现项目级隔离——这对多项目团队尤其实用。四、安全机制双向密钥 地址白名单mesh 同步端点在两端都必须配置AGENTMEMORY_SECRET请求使用 Bearer Token 认证。缺失密钥时同步会直接报错mesh sync requires AGENTMEMORY_SECRET见 mem::mesh-sync 校验。此外还有几道防线❌ 拒绝所有私有/内网地址防止指向内部服务的 SSRF❌ 拒绝 URL 中带用户名密码、协议非 http/https 的地址⏱ 所有网络请求带 30 秒超时避免对端无响应导致同步卡死 超大响应超过 16 MiB 传输帧会直接拒绝而非拖垮守护进程。REST 端点全集可参考plugin/skills/agentmemory-rest-api/REFERENCE.md同步相关的 HTTP 触发器注册在 src/triggers/api.ts。五、快速上手3 步开启多实例同步第 1 步两端配置密钥在两台实例的环境变量中都设置AGENTMEMORY_SECRET并把 REST API 地址暴露给对方默认端口3111。第 2 步互相注册对端调用 MCP 工具memory_mesh_sync见 src/mcp/tools-registry.ts或 REST 接口POST /agentmemory/mesh/peers填入对方地址与名称。第 3 步执行同步触发同步POST /agentmemory/mesh/sync方向选both返回结果会告诉你每个节点pushed/pulled了多少条记忆以及是否有errors。之后每次同步都基于lastSyncAt做增量秒级完成。六、总结agentmemory 的 mesh 同步用极简的 P2P 设计解决了多实例记忆一致性问题对等注册任意两台实例互为主从无需中心节点增量同步基于lastSyncAt时间戳只传变更部分LWW 合并按updatedAt判定新旧冲突时自动取最新安全第一双向密钥 私有地址拦截 超时保护。无论是团队共享编码代理的经验记忆还是灾备冗余备份mesh 同步都能让记忆像 git 一样在多台机器间流转。【免费下载链接】agentmemory#1 Persistent memory for AI coding agents based on real-world benchmarks项目地址: https://gitcode.com/GitHub_Trending/age/agentmemory创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表