Back to Mem0

Camel AI

docs/integrations/camel-ai.mdx

2.0.13.6 KB
Original Source

Camel AI integration

Connect Camel's agent framework to Mem0 so every agent can persist and recall conversation context across sessions with minimal setup.

<Info> **Prerequisites** - Mem0: `MEM0_API_KEY` (or self-hosted endpoint), `pip install mem0ai` - Camel AI: `pip install camel-ai` (requires Python 3.9+) - Optional: OpenAI API key if you run LLM-backed agents </Info>

<Note>Camel provides a Python SDK today. A TypeScript path is not available yet.</Note>

Configure credentials

<Tabs> <Tab title="Mem0"> <Steps> <Step title="Export your API key"> ```bash export MEM0_API_KEY="sk-..." ``` </Step> <Step title="(Self-host) Point to your Mem0 API"> ```bash export MEM0_BASE_URL="https://your-mem0-domain" ``` </Step> </Steps> </Tab> <Tab title="Camel"> <Steps> <Step title="Install Camel with Mem0 dependency"> ```bash pip install "camel-ai>=0.2.0" mem0ai ``` </Step> <Step title="(Optional) Add your model credentials"> ```bash export OPENAI_API_KEY="sk-openai..." ``` </Step> </Steps> </Tab> </Tabs> <Tip> Mem0Storage reads `MEM0_API_KEY` automatically. Pass `api_key` explicitly only when you need to override the environment. </Tip>

Wire Mem0 into a Camel agent

<Steps> <Step title="Create a Mem0-backed memory store"> ```python import os from camel.storages import Mem0Storage

mem0_store = Mem0Storage( api_key=os.environ.get("MEM0_API_KEY"), agent_id="travel_agent", user_id="alice", metadata={"source": "camel-demo"}, )

</Step>
<Step title="Attach it to Camel memory">
```python
from camel.memories import ChatHistoryMemory, ScoreBasedContextCreator
from camel.utils import OpenAITokenCounter
from camel.types import ModelType

memory = ChatHistoryMemory(
    context_creator=ScoreBasedContextCreator(
        token_counter=OpenAITokenCounter(ModelType.GPT_4O_MINI),
        token_limit=1024,
    ),
    storage=mem0_store,
    agent_id="travel_agent",
)
</Step> <Step title="Let your agent read and write Mem0"> ```python from camel.agents import ChatAgent from camel.messages import BaseMessage

agent = ChatAgent( system_message=BaseMessage.make_assistant_message( role_name="Agent", content="You are a helpful travel assistant. Reuse stored memories." ) )

agent.memory = memory

response = agent.step( BaseMessage.make_user_message( role_name="User", content="I prefer boutique hotels in Paris." ) )

print(response.msgs[0].content)

</Step>
</Steps>

<Info icon="check">
  Run `python camel_mem0_demo.py` (or the snippet above in a REPL). You should see the agent respond and the memory persisted to Mem0. Re-running with a new prompt should include the stored preference.
</Info>

## Verify the integration

- Mem0 dashboard shows new memories under `agent_id=travel_agent` and `user_id=alice`.
- `mem0_store.load()` returns the records you just wrote.
- Camel agent replies reference prior user preferences on subsequent runs.

## Troubleshooting

- **Missing MEM0_API_KEY** — set `export MEM0_API_KEY="sk-..."` or pass `api_key` into `Mem0Storage`.
- **No memories returned** — ensure `agent_id`/`user_id` in your query match what you used when writing.
- **Network errors to Mem0** — if self-hosting, set `MEM0_BASE_URL` to your deployment URL.

<CardGroup cols={2}>
  <Card
    title="Memory types in Mem0"
    description="Choose between chat history and semantic search for your Camel agents."
    icon="sparkles"
    href="/core-concepts/memory-types"
  />
  <Card
    title="Try LangChain next"
    description="Wire the same Mem0 project into LangChain workflows."
    icon="rocket"
    href="/integrations/langchain"
  />
</CardGroup>