Metadata-Version: 2.4
Name: agentrun-mem0ai
Version: 0.0.12
Summary: Long-term memory for AI Agents with Aliyun TableStore support
Author-email: AgentRun <mapenghui.mph@alibaba-inc.com>
License-Expression: Apache-2.0
License-File: LICENSE
Requires-Python: <4.0,>=3.9
Requires-Dist: mysql-connector-python==9.3.0
Requires-Dist: openai>=1.90.0
Requires-Dist: posthog>=3.5.0
Requires-Dist: protobuf<6.0.0,>=5.29.0
Requires-Dist: pydantic>=2.7.3
Requires-Dist: pytz>=2024.1
Requires-Dist: qdrant-client>=1.9.1
Requires-Dist: sqlalchemy>=2.0.31
Requires-Dist: tablestore-for-agent-memory>=1.0.1
Provides-Extra: dev
Requires-Dist: isort>=5.13.2; extra == 'dev'
Requires-Dist: pytest>=8.2.2; extra == 'dev'
Requires-Dist: ruff>=0.6.5; extra == 'dev'
Provides-Extra: extras
Requires-Dist: boto3>=1.34.0; extra == 'extras'
Requires-Dist: elasticsearch<9.0.0,>=8.0.0; extra == 'extras'
Requires-Dist: langchain-community>=0.0.0; extra == 'extras'
Requires-Dist: opensearch-py>=2.0.0; extra == 'extras'
Requires-Dist: sentence-transformers>=5.0.0; extra == 'extras'
Provides-Extra: graph
Requires-Dist: kuzu>=0.11.0; extra == 'graph'
Requires-Dist: langchain-aws>=0.2.23; extra == 'graph'
Requires-Dist: langchain-memgraph>=0.1.0; extra == 'graph'
Requires-Dist: langchain-neo4j>=0.4.0; extra == 'graph'
Requires-Dist: neo4j>=5.23.1; extra == 'graph'
Requires-Dist: rank-bm25>=0.2.2; extra == 'graph'
Provides-Extra: llms
Requires-Dist: google-genai>=1.0.0; extra == 'llms'
Requires-Dist: google-generativeai>=0.3.0; extra == 'llms'
Requires-Dist: groq>=0.3.0; extra == 'llms'
Requires-Dist: litellm>=1.74.0; extra == 'llms'
Requires-Dist: ollama>=0.1.0; extra == 'llms'
Requires-Dist: openai>=1.90.0; extra == 'llms'
Requires-Dist: together>=0.2.10; extra == 'llms'
Requires-Dist: vertexai>=0.1.0; extra == 'llms'
Provides-Extra: test
Requires-Dist: pytest-asyncio>=0.23.7; extra == 'test'
Requires-Dist: pytest-mock>=3.14.0; extra == 'test'
Requires-Dist: pytest>=8.2.2; extra == 'test'
Provides-Extra: vector-stores
Requires-Dist: azure-identity>=1.24.0; extra == 'vector-stores'
Requires-Dist: azure-search-documents>=11.4.0b8; extra == 'vector-stores'
Requires-Dist: chromadb>=0.4.24; extra == 'vector-stores'
Requires-Dist: databricks-sdk>=0.63.0; extra == 'vector-stores'
Requires-Dist: dbutils>=3.0.3; extra == 'vector-stores'
Requires-Dist: elasticsearch<9.0.0,>=8.0.0; extra == 'vector-stores'
Requires-Dist: faiss-cpu>=1.7.4; extra == 'vector-stores'
Requires-Dist: langchain-aws>=0.2.23; extra == 'vector-stores'
Requires-Dist: pinecone-text>=0.10.0; extra == 'vector-stores'
Requires-Dist: pinecone<=7.3.0; extra == 'vector-stores'
Requires-Dist: psycopg-pool<4.0.0,>=3.2.6; extra == 'vector-stores'
Requires-Dist: psycopg>=3.2.8; extra == 'vector-stores'
Requires-Dist: pymilvus<2.6.0,>=2.4.0; extra == 'vector-stores'
Requires-Dist: pymochow>=2.2.9; extra == 'vector-stores'
Requires-Dist: pymongo>=4.13.2; extra == 'vector-stores'
Requires-Dist: pymysql>=1.1.0; extra == 'vector-stores'
Requires-Dist: redis<6.0.0,>=5.0.0; extra == 'vector-stores'
Requires-Dist: redisvl<1.0.0,>=0.1.0; extra == 'vector-stores'
Requires-Dist: upstash-vector>=0.1.0; extra == 'vector-stores'
Requires-Dist: valkey>=6.0.0; extra == 'vector-stores'
Requires-Dist: vecs>=0.4.0; extra == 'vector-stores'
Requires-Dist: weaviate-client<4.15.0,>=4.4.0; extra == 'vector-stores'
Description-Content-Type: text/markdown

<p align="center">
  <a href="https://github.com/mem0ai/mem0">
    <img src="docs/images/banner-sm.png" width="800px" alt="Mem0 - The Memory Layer for Personalized AI">
  </a>
</p>
<p align="center" style="display: flex; justify-content: center; gap: 20px; align-items: center;">
  <a href="https://trendshift.io/repositories/11194" target="blank">
    <img src="https://trendshift.io/api/badge/repositories/11194" alt="mem0ai%2Fmem0 | Trendshift" width="250" height="55"/>
  </a>
</p>

<p align="center">
  <a href="https://mem0.ai">Learn more</a>
  ·
  <a href="https://mem0.dev/DiG">Join Discord</a>
  ·
  <a href="https://mem0.dev/demo">Demo</a>
  ·
  <a href="https://mem0.dev/openmemory">OpenMemory</a>
</p>

<p align="center">
  <a href="https://mem0.dev/DiG">
    <img src="https://img.shields.io/badge/Discord-%235865F2.svg?&logo=discord&logoColor=white" alt="Mem0 Discord">
  </a>
  <a href="https://pepy.tech/project/mem0ai">
    <img src="https://img.shields.io/pypi/dm/mem0ai" alt="Mem0 PyPI - Downloads">
  </a>
  <a href="https://github.com/mem0ai/mem0">
    <img src="https://img.shields.io/github/commit-activity/m/mem0ai/mem0?style=flat-square" alt="GitHub commit activity">
  </a>
  <a href="https://pypi.org/project/mem0ai" target="blank">
    <img src="https://img.shields.io/pypi/v/mem0ai?color=%2334D058&label=pypi%20package" alt="Package version">
  </a>
  <a href="https://www.npmjs.com/package/mem0ai" target="blank">
    <img src="https://img.shields.io/npm/v/mem0ai" alt="Npm package">
  </a>
  <a href="https://www.ycombinator.com/companies/mem0">
    <img src="https://img.shields.io/badge/Y%20Combinator-S24-orange?style=flat-square" alt="Y Combinator S24">
  </a>
</p>

<p align="center">
  <a href="https://mem0.ai/research"><strong>📄 Building Production-Ready AI Agents with Scalable Long-Term Memory →</strong></a>
</p>
<p align="center">
  <strong>⚡ +26% Accuracy vs. OpenAI Memory • 🚀 91% Faster • 💰 90% Fewer Tokens</strong>
</p>

> **🎉 mem0ai v1.0.0 is now available!** This major release includes API modernization, improved vector store support, and enhanced GCP integration. [See migration guide →](MIGRATION_GUIDE_v1.0.md)

##  🔥 Research Highlights
- **+26% Accuracy** over OpenAI Memory on the LOCOMO benchmark
- **91% Faster Responses** than full-context, ensuring low-latency at scale
- **90% Lower Token Usage** than full-context, cutting costs without compromise
- [Read the full paper](https://mem0.ai/research)

# Introduction

[Mem0](https://mem0.ai) ("mem-zero") enhances AI assistants and agents with an intelligent memory layer, enabling personalized AI interactions. It remembers user preferences, adapts to individual needs, and continuously learns over time—ideal for customer support chatbots, AI assistants, and autonomous systems.

### Key Features & Use Cases

**Core Capabilities:**
- **Multi-Level Memory**: Seamlessly retains User, Session, and Agent state with adaptive personalization
- **Developer-Friendly**: Intuitive API, cross-platform SDKs, and a fully managed service option

**Applications:**
- **AI Assistants**: Consistent, context-rich conversations
- **Customer Support**: Recall past tickets and user history for tailored help
- **Healthcare**: Track patient preferences and history for personalized care
- **Productivity & Gaming**: Adaptive workflows and environments based on user behavior

## 🚀 Quickstart Guide <a name="quickstart"></a>

Choose between our hosted platform or self-hosted package:

### Hosted Platform

Get up and running in minutes with automatic updates, analytics, and enterprise security.

1. Sign up on [Mem0 Platform](https://app.mem0.ai)
2. Embed the memory layer via SDK or API keys

### Self-Hosted (Open Source)

> **✨ agentrun-mem0ai**：基于 `mem0ai` 的扩展版本，增加了阿里云 TableStore (OTS) 支持。
> 
> **重要**：使用独立的模块名 `agentrun_mem0`，与官方 `mem0` 包**无冲突**，可以共存！

Install the sdk via pip:

```bash
# 使用扩展版本（支持阿里云 OTS）
pip install agentrun-mem0ai
```

官方版本：
```bash
# 官方 Python SDK
pip install mem0ai

# 官方 npm SDK
npm install mem0ai
```

### Basic Usage

Mem0 requires an LLM to function, with `gpt-4.1-nano-2025-04-14 from OpenAI as the default. However, it supports a variety of LLMs; for details, refer to our [Supported LLMs documentation](https://docs.mem0.ai/components/llms/overview).

First step is to instantiate the memory:

```python
from openai import OpenAI
from agentrun_mem0 import Memory

openai_client = OpenAI()
memory = Memory()

def chat_with_memories(message: str, user_id: str = "default_user") -> str:
    # Retrieve relevant memories
    relevant_memories = memory.search(query=message, user_id=user_id, limit=3)
    memories_str = "\n".join(f"- {entry['memory']}" for entry in relevant_memories["results"])

    # Generate Assistant response
    system_prompt = f"You are a helpful AI. Answer the question based on query and memories.\nUser Memories:\n{memories_str}"
    messages = [{"role": "system", "content": system_prompt}, {"role": "user", "content": message}]
    response = openai_client.chat.completions.create(model="gpt-4.1-nano-2025-04-14", messages=messages)
    assistant_response = response.choices[0].message.content

    # Create new memories from the conversation
    messages.append({"role": "assistant", "content": assistant_response})
    memory.add(messages, user_id=user_id)

    return assistant_response

def main():
    print("Chat with AI (type 'exit' to quit)")
    while True:
        user_input = input("You: ").strip()
        if user_input.lower() == 'exit':
            print("Goodbye!")
            break
        print(f"AI: {chat_with_memories(user_input)}")

if __name__ == "__main__":
    main()
```

For detailed integration steps, see the [Quickstart](https://docs.mem0.ai/quickstart) and [API Reference](https://docs.mem0.ai/api-reference).

## 🔗 Integrations & Demos

- **ChatGPT with Memory**: Personalized chat powered by Mem0 ([Live Demo](https://mem0.dev/demo))
- **Browser Extension**: Store memories across ChatGPT, Perplexity, and Claude ([Chrome Extension](https://chromewebstore.google.com/detail/onihkkbipkfeijkadecaafbgagkhglop?utm_source=item-share-cb))
- **Langgraph Support**: Build a customer bot with Langgraph + Mem0 ([Guide](https://docs.mem0.ai/integrations/langgraph))
- **CrewAI Integration**: Tailor CrewAI outputs with Mem0 ([Example](https://docs.mem0.ai/integrations/crewai))

## 📚 Documentation & Support

- Full docs: https://docs.mem0.ai
- Community: [Discord](https://mem0.dev/DiG) · [Twitter](https://x.com/mem0ai)
- Contact: founders@mem0.ai

## Citation

We now have a paper you can cite:

```bibtex
@article{mem0,
  title={Mem0: Building Production-Ready AI Agents with Scalable Long-Term Memory},
  author={Chhikara, Prateek and Khant, Dev and Aryan, Saket and Singh, Taranjeet and Yadav, Deshraj},
  journal={arXiv preprint arXiv:2504.19413},
  year={2025}
}
```

## 📦 PyPI 自动发布

使用自动化脚本快速发布到 PyPI：

### 1. 安装发布工具

```bash
pip install --upgrade build twine
```

### 2. 运行发布脚本

```bash
./publish.sh
```

脚本会自动完成以下步骤：
- 清理旧的构建文件
- 构建新的发行包
- 检查包的完整性
- 可选：先上传到测试环境验证
- 上传到正式 PyPI

发布 PyPI 所需 Token 可查看文件 [.pypirc](.pypirc)

## ⚖️ License

Apache 2.0 — see the [LICENSE](https://github.com/mem0ai/mem0/blob/main/LICENSE) file for details.