持久性内存系统

Echo是一个为AI代理和开发者设计的本地持久性内存系统,提供快速本地回忆、明确的内存治理和安全的人机交互维护。

  • by victoriacheng15
  • Go
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 victoriacheng15/echo

使用说明

回声

Echo是一个面向AI代理和开发人员的本地持久内存系统,内置于Go中,带有SQLite、FTS5、DuckDB和模型上下文协议。它为无状态LLM会话提供了一个持久的存储层,AI主机可以通过MCP查询该层,也可以直接从终端进行管理。

该项目侧重于快速局部召回、显式内存治理和安全的人在循环维护。内存存储在本地,按上下文确定范围,为关键字搜索建立索引,并通过JSON-RPC MCP服务器和CLI公开。

项目门户 | 全部文件


亮点

区域 它展示了什么
持久内存 SQLite通过UPSERT存储具有上下文键、条目类型、标签、源属性和强化的持久内存。
AI集成 MCP服务器为代理工作流提供存储、调用、搜索、更新、删除和分析工具。
人工控制 CLI支持存储、调用、搜索、删除、维护以及表、JSON或CSV输出格式。
搜索性能 SQLite FTS5为关键字搜索的内存内容建立索引,并为子字符串匹配提供简短的查询回退。
安全 破坏性操作使用基于ID的检索、确认、操作流程,以避免因内容不明确而意外删除。
分析 遥测可以写入JSONL并同步到DuckDB中,用于上下文级别的使用、成本、命中率和碳估算。

建筑

Echo使用双接口架构。CLI和MCP传输层共享相同的服务和持久性代码,因此AI驱动和人工驱动的工作流在相同的本地数据模型上运行。

路径 用例 流程
MCP路径 AI代理存储或检索内存 代理主机->通过stdio的JSON-RPC->MCP工具->服务层->SQLite和FTS5
CLI路径 人工审查或管理内存 终端命令->CLI调度器->服务层->SQLite和FTS5
分析路径 使用情况分析和内存调优 遥测JSONL->DuckDB同步->上下文级分析
graph TD
    subgraph "Interfaces"
        A[AI Agent or IDE] -- "JSON-RPC over stdio" --> B[MCP Transport]
        H[Terminal] -- "CLI Commands" --> I[CLI Dispatcher]
    end

    subgraph "Core Logic"
        B --> C[Shared Service Layer]
        I --> C
        C --> D{Storage Engine}
    end

    subgraph "Persistence and Analytics"
        D --> E[(SQLite Memories)]
        D --> F[(FTS5 Search Index)]
        D --> G[(DuckDB Analytics)]
    end

技术栈

图层 工具
语言 Go
数据存储 SQLite、FTS5、DuckDB、JSONL遥测日志
可观察性 内存遥测事件、DuckDB分析视图、基准测试套件
测试 开始 testing 表驱动测试包
CI/CD GitHub操作

文档


演示


本地设置

构建并验证项目:

make build
make test
make bench

安装CLI:

make install

直接使用CLI:

echo-cli store -content "Use FTS5 for memory search." -context project:echo -type directive -tags search,sqlite
echo-cli recall -contexts global,project:echo -limit 10
echo-cli search -query FTS5
echo-cli maintain -rebuild

通过从MCP主机启动二进制文件,并将stdin连接到JSON-RPC传输,将其作为MCP服务器运行。当没有提供CLI子命令并且stdin不是终端时,Echo会自动启动MCP服务器。