ChatDev Memory
A memorysync store type for ChatDev 2.0 (DevAll), OpenBMB’s zero-code multi-agent platform: one pip install adds it to workflow YAML and the web console’s dropdown — semantic recall under a hard budget, honest timestamps, both-side capture, and idempotent writes. Install chatdev-memorysync from PyPI.
What installs
# inside your ChatDev 2.0 checkout’s environmentuv pip install chatdev-memorysync
Activation is automatic: a .pth hook registers the store whenever ChatDev’s modules are importable and silently no-ops anywhere else — type: memorysync becomes valid in YAML AND appears in the web console’s store-type dropdown. Retrieved memories arrive in ChatDev’s standard ===== Related Memories ===== prompt block.
| Mem0 (in-tree store) | Zep | Supermemory | MemorySync | |
|---|---|---|---|---|
| User scoping | ✗ demo YAML hardcodes user_id: project-user-123 — every operator shares one partition | — nothing at all | — nothing at all | ✓ user_id is a REQUIRED config field |
| Slow or down backend | ✗ SDK call with no timeout — the whole agent turn stalls | — | — | ✓ hard 1.2s budget, fails open to no memories |
| Timestamps | ✗ every item stamped time.time() — corrupts ChatDev’s own time-decay scorer (0.7 of ranking weight) | — | — | ✓ the row’s real created_at |
| Agent outputs | ✗ thrown away — half the conversation lost | — | — | ✓ stored role-labeled; server-side gating handles noise |
| Retries / re-runs | ✗ duplicate extractions on every re-send | — | — | ✓ deterministic seeds — re-runs converge |
| Failure diagnosis | ✗ bare log + [] — quota, auth, network all look identical | — | — | ✓ fail-open logs carry the HTTP status |
| Multimodal snapshots | ✗ ignored | — | — | ✓ attachment overviews recorded |
Configuration
| Field | Default | Meaning |
|---|---|---|
api_key | ${MEMORYSYNC_API_KEY} | MemorySync API key |
user_id | — (required) | End user the memories belong to — the config parser rejects a store without it |
session_id | chatdev | Transcript scope: chatdev::<session> |
recall_timeout | 1.2 | Hard recall budget in seconds |
store_outputs | true | Persist agent outputs too |
base_url | cloud | Override for staging |
Per-agent knobs (top_k, similarity_threshold, read, write, retrieve_stage) come from ChatDev’s own attachment config and are honored — similarity_threshold filters on real scores.
Supported versions
| Surface | Requires | Verified on |
|---|---|---|
chatdev-memorysync 1.0.0 | A ChatDev 2.0 (DevAll) checkout, Python 3.12 | 29 CI checks against a FRESH clone of OpenBMB/ChatDev main on every push: its real config parser (rejects a missing user_id), registry + dropdown schema visibility, MemoryFactory construction, MemoryManager end to end (our fact lands in the Related Memories block), read/write attachment flags, honest timestamps, budget fail-open with status-bearing logs, seed idempotency, quota modes, and the .pth autoload no-op outside ChatDev |