一个面向开源的 Python 常驻记忆 Agent。它参考了 Gemini always-on-memory-agent 的设计思路,但把底层模型替换成了阿里云百炼的 Qwen 模型,并去掉了对 Google ADK 的依赖。
- SQLite 持久化记忆与 consolidation 结果
- 后台轮询
inbox/自动摄取文件 - 定时 consolidation,主动发现记忆之间的关系
- FastAPI HTTP 接口
- 使用百炼 OpenAI 兼容接口调用 Qwen
- 当前支持文本、Markdown、JSON、CSV、YAML、日志、XML、PDF、图片
我阅读了阿里云官方说明后,没有把 coding plan key 作为这个服务的默认运行方式。官方文档说明:
- Coding Plan Key 面向编程助手和交互式编程工具
- 不建议把它当成通用后端服务 API Key 长期跑脚本
因此本项目默认使用标准百炼 API Key。你仍然可以自己覆写 MEMORY_API_KEY 做实验,但从可维护性和合规性来说,不建议把 coding plan key 用在这个 24/7 服务上。
cd /Users/zonyyueli/generative-ai/qwen-always-on-memory-agent
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtexport MEMORY_API_KEY="你的百炼API Key"
export MEMORY_MODEL="qwen-plus"可选:
export MEMORY_VISION_MODEL="qwen3-vl-plus"
export MEMORY_DB_PATH="./data/memory.db"
export MEMORY_INBOX_DIR="./inbox"
export MEMORY_PORT="8890"
export MEMORY_CONSOLIDATE_INTERVAL_MINUTES="30"cp .env.example .env
vi .env
uvicorn memory_agent.api:app --host 0.0.0.0 --port 8890或者:
python -m memory_agentGET /healthGET /statusGET /memoriesPOST /ingestPOST /queryPOST /consolidateDELETE /memories/{memory_id}POST /clear
先启动后端:
python -m memory_agent再启动 Streamlit:
streamlit run dashboard.py如果后端不在默认地址,可以指定:
MEMORY_AGENT_URL=http://localhost:8890 streamlit run dashboard.pyqwen-always-on-memory-agent/
├── README.md
├── dashboard.py
├── requirements.txt
├── analysis/
│ └── gemini_always_on_memory_agent_analysis.md
├── data/
├── inbox/
└── memory_agent/
├── __init__.py
├── __main__.py
├── api.py
├── config.py
├── db.py
├── models.py
├── service.py
└── watcher.py
curl -X POST http://localhost:8890/ingest \
-H "Content-Type: application/json" \
-d '{
"text": "Anthropic reports 62% of Claude usage is code-related.",
"source": "news-note"
}'curl -X POST http://localhost:8890/query \
-H "Content-Type: application/json" \
-d '{
"question": "我最近关于 AI Agent 和记忆系统记录了什么?"
}'curl -X POST http://localhost:8890/consolidate- 优先把
.env、数据库和inbox/加到.gitignore - 如果后续要补前端,可以单独加 Streamlit 或 React 面板
- 如果要支持音频/视频,建议新增独立转写和抽帧流水线,而不是把所有逻辑堆进主服务
- 原理分析:docs/principle_analysis.md
- 使用文档:docs/usage_guide.md
- 和 Gemini 原版的区别与联系:docs/gemini_vs_qwen_comparison.md
- 博客版复盘:docs/blog_aliyun_terminology_memory_agent.md
- 外部 memory 方案调研:docs/references/deep-research-report.md
- Blog 重写参考稿:docs/references/agent-memory-blog-rewrite.md