Skip to main content

chatdev-memorysync

MemorySync memory store for ChatDev 2.0 (DevAll) — OpenBMB's zero-code multi-agent platform.

One pip install adds type: memorysync to ChatDev's memory registry: usable from workflow YAML and the web console's store-type dropdown, no code changes to ChatDev required.

# inside your ChatDev checkout's environment
uv pip install chatdev-memorysync     # or: 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). The explicit alternative:

import chatdev_memorysync
chatdev_memorysync.register()

Workflow YAML

graph:
  nodes:
    - id: writer
      type: agent
      config:
        # ... model config ...
        memories:
          - name: user_memory
            top_k: 5
            retrieve_stage: [gen]
            read: true
            write: true
  memory:
    - name: user_memory
      type: memorysync
      config:
        api_key: ${MEMORYSYNC_API_KEY}
        user_id: customer-42        # REQUIRED — who these memories belong to
        session_id: support         # optional transcript scope

Retrieved memories arrive in the standard ===== Related Memories ===== block ChatDev injects into agent prompts.

Why this instead of the in-tree Mem0 store?

ChatDev ships a mem0 store in its repo. Verified against its source:

Behavior Mem0 (in-tree store) memorysync
User scoping ✗ demo YAML hardcodes user_id: project-user-123 — every operator shares one partition user_id is a REQUIRED config field
Slow/down backend ✗ SDK call with no timeout — the whole agent turn stalls hard recall_timeout budget (1.2 s), fails open to no memories
Timestamps ✗ every retrieved item stamped time.time()corrupts ChatDev's own time-decay scorer (0.7 of ranking weight) and unfairly outranks honest stores the row's real created_at
Agent outputs ✗ thrown away ("noise") — half the conversation lost stored, role-labeled; server-side gating handles noise (store_outputs: false to opt out)
Retries / re-runs ✗ duplicate extractions on every re-send deterministic idempotency seeds — retries converge
Failure diagnosis ✗ bare logger.error + [] — quota, auth, and network all look like "no memories" fail-open logs carry the HTTP status code
Multimodal snapshots ✗ ignored attachment overviews recorded in metadata

Memories stored here are recallable from every other MemorySync surface (LangChain, the CLI, voice agents, Dify…) and vice versa.

Configuration

Field Default Meaning
api_key ${MEMORYSYNC_API_KEY} MemorySync API key
user_id — (required) End user the memories belong to
session_id chatdev Transcript scope: chatdev::<session>
base_url https://api.memorysync.io Override for staging
recall_timeout 1.2 Hard recall budget in seconds
store_outputs true Persist agent outputs too
source chatdev Source label on stored rows

Per-agent knobs (top_k, similarity_threshold, read, write, retrieve_stage) come from ChatDev's own memories: attachment config and are honored — including similarity_threshold filtering on real scores.

Tests

git clone --depth 1 https://github.com/OpenBMB/ChatDev.git chatdev
pip install -e . pytest pydantic openai pyyaml tenacity numpy faiss-cpu fastmcp jinja2
pytest tests -q   # 24 checks against the real ChatDev 2.0 modules

The suite drives ChatDev's real config parser, registry, MemoryFactory, and MemoryManager — and reproduces each in-tree Mem0 store bug as a regression test.

License

MIT © MemorySync.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chatdev_memorysync-1.0.0.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chatdev_memorysync-1.0.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file chatdev_memorysync-1.0.0.tar.gz.

File metadata

  • Download URL: chatdev_memorysync-1.0.0.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.9

File hashes

Hashes for chatdev_memorysync-1.0.0.tar.gz
Algorithm Hash digest
SHA256 f0f1cee2ca7fab210db1739feb45c95ef399261ae3217ce1609ad3d0fc69d173
MD5 0d3c9283a408ce1f3b1367aaab4942a6
BLAKE2b-256 278018f2eeda2e614a9f8ddc1ccb5c6a4a3ba2283b2085ba5dfa2ed815bf71a3

See more details on using hashes here.

File details

Details for the file chatdev_memorysync-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for chatdev_memorysync-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7aabe44ff4f2aca382fe627d3fbe647bed6387bee77bd49464116c10e6832120
MD5 be015bd66e223d7c4d9e8f61f377a90a
BLAKE2b-256 4092206fef0a89966867668e4c29c2e8505b0acd5904696bdb5be415e3914426

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 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