Skip to main content

Echo Agent

记得住过去,学得会未来的开源 AI Agent

Echo Agent

PyPI Python CI License: MIT Downloads GitHub stars

中文 · English


什么是 Echo Agent

Echo Agent 是一个可自托管的长期运行 AI Agent。与一次性问答不同,它能:

  • 跨会话记忆 — 四层认知记忆结构,自动衰减与矛盾检测,解决长期运行下的记忆膨胀问题,对话不再从零开始。
  • 自进化技能 — 从真实执行轨迹中生成候选改进,经评测验证后才生效,支持回滚。
  • 多入口归一 — CLI、Gateway、Webhook、Cron 及 Telegram / Discord / Slack / 微信 / 企业微信 / 飞书 / 钉钉 / QQ / WhatsApp / 邮件 / Matrix 共 14 个通道共享同一份状态。
  • 安全可控 — 高风险工具调用经统一审批,凭证加密存储,执行日志可审计。

一句话:让 Agent 带着记忆和不断进化的技能,长期为你工作。


快速开始

环境要求:Python 3.11+,至少一个模型 API Key。

# 安装
pip install "echo-agent[all]"

# 交互式配置向导(引导录入模型 API Key,数据默认存放在 ~/.echo-agent)
echo-agent setup

# 启动交互式对话
echo-agent run
国内镜像 / Windows / 一键脚本
# 阿里云镜像加速
pip install "echo-agent[all]" -i https://mirrors.aliyun.com/pypi/simple/
# Windows(PowerShell)
pip install "echo-agent[all]"
echo-agent setup
echo-agent run
# 一键安装脚本(仅支持 Linux / macOS / WSL2,会从源码安装到 ~/.echo-agent
# 并可注册后台常驻服务;建议先审查脚本内容再执行)
# 国内从 Gitee 拉脚本:
curl -fsSL -o install.sh https://gitee.com/fuyuxiang/echo-agent/raw/master/scripts/install.sh
# 国外从 GitHub 拉脚本:
curl -fsSL -o install.sh https://raw.githubusercontent.com/fuyuxiang/echo-agent/master/scripts/install.sh

less install.sh && bash install.sh

# 脚本会实测 Gitee 与 GitHub 的响应速度后自动选择克隆源;也可以手动指定:
bash install.sh --repo gitee     # 强制走 Gitee
bash install.sh --repo github    # 强制走 GitHub

# --repo 只影响 git clone/fetch;嵌入与精排模型包始终按 Gitee 优先、GitHub 兜底
# 的固定顺序下载(分卷托管所致,与 --repo 无关)。
# --no-mirror-probe 会同时关掉 PyPI 源、代码托管、Node.js 镜像三处测速,
# 各自退回到第一个默认源。
# 重复执行脚本即为升级:检测到已有可用配置时会跳过配置向导、保留现有配置。
bash install.sh --reconfigure    # 强制重新走一遍配置向导
bash install.sh --skip-setup     # 只装代码,完全不进配置向导

# 完整选项与环境变量(含 ECHO_SKIP_RERANK_PREFETCH 等模型预取开关):
bash install.sh --help

常用命令

echo-agent run              # 交互式对话(终端行输入)
echo-agent setup            # 配置向导(模型、通道、权限等,可反复运行)
echo-agent status           # 查看当前配置状态
echo-agent gateway          # 前台启动常驻网关
echo-agent gateway install  # 把网关注册为后台服务(推荐的常驻方式,见下)
echo-agent cli              # 以瘦客户端接入本机常驻网关(终端 TUI)
echo-agent cost             # 查看成本归因报告
echo-agent dashboard build  # 构建 Web Dashboard 前端产物(源码安装时按需执行)

查看配置项:echo-agent config explain <配置项> 查看单项说明(含类型、默认值与可选值)、echo-agent config dump 查看当前生效配置(密钥自动脱敏)、echo-agent config validate 校验配置文件。

常驻运行(后台服务)

echo-agent runecho-agent gateway 都是前台进程,关掉终端就退出。想让 agent 7×24 常驻,把网关注册为系统服务即可(macOS 注册用户级 LaunchAgent,Linux 注册用户级 systemd 服务,均无需 root,开机自启、崩溃自动拉起):

echo-agent gateway install    # 注册后台服务
echo-agent gateway start      # 启动
echo-agent gateway status     # 查看运行状态
echo-agent gateway logs -f    # 跟踪日志
echo-agent gateway restart    # 重启(升级 echo-agent 后执行一次)
echo-agent gateway stop       # 停止
echo-agent gateway uninstall  # 取消注册

网关运行后,在本机任意终端用 echo-agent cli 接入,即可与同一个常驻 agent 对话(会话独立、记忆共享)。网关仅监听本机 loopback(127.0.0.1),不支持远程地址;远程接入请走 ssh。

Linux 注意事项 / 无 systemd 环境 / 旧命令
  • 退出登录后继续运行(Linux 用户级服务默认随登录会话结束):sudo loginctl enable-linger $USER
  • 服务器多用户场景echo-agent gateway install --system 注册系统级 systemd 服务(需 sudo)
  • 无 systemd 的环境(WSL 未开 systemd、容器等):用 tmux 或 nohup 保持前台进程,如 tmux new -s echo-agent 'echo-agent gateway'
  • 升级后服务文件过期echo-agent gateway status 会提示 stale,执行 echo-agent gateway install --force 重写
  • 旧的 echo-agent service 命令仍可用,已标记废弃,请改用 echo-agent gateway <action>

本机安全边界:零配置(allowlist 模式 + 空白名单)的 loopback 网关只服务两类客户端——echo-agent cli(自带 cli: 身份),以及不带浏览器 Origin 的原生客户端(脚本/SDK)。带跨站 Origin 的浏览器请求(含自带 playground 页面)会被拒,以阻断恶意网页借浏览器驱动本机 agent(CSRF)。若要让浏览器/playground 访问,请在配置中设 gateway.auth.mode=open、把用户加进 gateway.auth.allowed_users,或(webview 桌面端等场景)把其 Origin 加进 gateway.auth.allowed_origins


架构总览

Echo Agent 架构图

核心能力

模块 说明
Agent Loop 接收事件 → 构建上下文 → 调用模型 → 执行工具,跨入口共享同一条执行路径
认知记忆 Working / Episodic / Semantic / Archival 四层,配合衰减、矛盾检测与重要性重排
混合检索 BM25 + FAISS 向量融合召回,按查询特征自适应权重,FAISS 缺失时自动降级
自进化引擎 轨迹记录 → 候选生成 → 评测对照 → 晋升/驳回,支持冷却期与一键回滚
模型路由 主推理、上下文压缩、向量嵌入、风险审批可独立配置 provider 与模型
工具审批 三档策略 manual / smart / off,无人值守通道默认拒绝高风险调用
跨进程互操作 A2A JSON-RPC + MCP 客户端(含 OAuth),支持动态工具注册
输出保全 超长工具输出落盘保全,模型只见首尾预览与取回路径,可用 read_spill 按字符区间或正则取回完整内容
本地优先 会话、记忆、轨迹、凭证默认存放工作区,凭证加密落盘

自本版本起,超过 spill.maxInlineChars(默认 6000 字符)的工具输出不再直接完整呈现给模型, 而是替换为"头部 + 尾部 + 落盘路径"。完整内容保存在 storage.spillDir(默认 data/spill)下。 若你的技能或提示词依赖"工具输出直接可见且连续",请设 spill.enabled: false 关闭, 或调高 spill.maxInlineChars

取回只能用 read_spill 产物按会话私有:read_spill 以当前会话身份授权, 只能取回本会话自己产生的产物;read_file / search_files / list_dir / read_document / send_file 对产物目录一律拒绝——它们只认路径不认会话,而产物路径 会出现在模型可见文本里。read_spill 支持 offset/limit字符区间读取 (单行 JSON、压缩日志的尾部因此可达),或用 pattern 在产物内做正则检索。 注意这是路径层隔离:exec 开启时仍可用 shell 直接读文件,故完整隔离只在关闭 exec 的部署(minimal / messaging profile、public_gateway / daemon)中成立。

回收: 产物受 spill.retentionDays(默认 7 天)与 spill.maxTotalMb(默认 512 MB) 双限约束,两者任一触发即删除,故单个产物的实际存活时间最长为保留期,可能因容量 上限更早被回收。清扫按 spill.sweepIntervalHours(默认 6 小时)周期执行,且与 spill.enabled 无关——关闭开关只是不再产生新产物,已有产物仍继续回收。 storage.spillDir 必须是工作区内的相对子目录:清扫器在该目录下删文件,且只删自己 写出的 session-*/<hex>-<tool>.txt 形状,不会碰无关文件。


适用场景

  • Agent 跑在本机或自有服务器,需要完整审计与可追溯
  • 对话、偏好与任务经验需要跨会话长期沉淀
  • 希望 Agent 技能从真实使用中持续改进,而非出厂定型
  • 多入口(CLI、Webhook、消息机器人)需共享同一份记忆与权限
  • 高风险工具需要强制审批,避免误操作
  • 需同时接入多家模型 provider,按任务类型分配

开发与贡献

从源码安装(开发模式):

git clone https://github.com/fuyuxiang/echo-agent.git   # 国内可用 https://gitee.com/fuyuxiang/echo-agent.git
cd echo-agent
uv venv venv --python 3.11 && source venv/bin/activate
uv pip install -e ".[all,dev]"

# 提交前检查
ruff check .
pytest

PR 前请确保 lint 和测试通过(CI 会在 PR 上自动运行同样的检查),并同步更新中英文 README。

参与方向: 通道适配器 · 内置工具 · MCP 集成 · 技能示例 · 评测数据集 · 文档完善 · 部署模板

社区:


协议

MIT License

Release files for echo-agent 0.3.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for echo-agent 0.3.7
File Size Uploaded
echo_agent-0.3.7.tar.gz 1.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for echo-agent 0.3.7
File Interpreter ABI Platform
echo_agent-0.3.7-py3-none-any.whl Python 3 none any Details

Total release size: 2.7 MB

Release files / echo_agent-0.3.7.tar.gz

Download URL echo_agent-0.3.7.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
63788449cd6a92399ef641618c4ce73a67a48aa9b8d59f328a1c318999c7d72c
BLAKE2b-256 checksum
How to use checksums
eb7e165231e6e048524f8192751262e96fe72a8f0b7641e2697ff499cc21cd36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.18.0 {"ci":null,"cpu":"AMD64","implementation":{"name":"CPython","version":"3.11.5"},"installer":{"name":"hatch","version":"1.18.0"},"openssl_version":"OpenSSL 3.0.13 30 Jan 2024","python":"3.11.5","system":{"name":"Windows","release":"10"}} HTTPX2/2.12.0

Release files / echo_agent-0.3.7-py3-none-any.whl

Download URL echo_agent-0.3.7-py3-none-any.whl
Size 1.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
a58d83e726e8572b156754c803224a647a1ef5b8c5ede5d668892d194c0692af
BLAKE2b-256 checksum
How to use checksums
45c338b0382c29e3586a1df9a4ce0ad72ad9fc3c679069c122926eb9ecbfc4cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.18.0 {"ci":null,"cpu":"AMD64","implementation":{"name":"CPython","version":"3.11.5"},"installer":{"name":"hatch","version":"1.18.0"},"openssl_version":"OpenSSL 3.0.13 30 Jan 2024","python":"3.11.5","system":{"name":"Windows","release":"10"}} HTTPX2/2.12.0

Release history Release notifications | RSS feed

This release

0.3.7 This release

2 release files

0.3.5

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page