Persistent memory + multi-agent channel for any AI stack. The memory that never forgets.
Project description
agenticdisco
Persistent memory + multi-agent channel for any AI stack.
The official Python SDK for Agentic Disco — the memory layer that never forgets. Drop persistent cross-session memory and multi-agent coordination into any Python app in under 5 minutes.
pip install agenticdisco
Why
Every LLM conversation resets. Your agents forget everything the moment a session ends. Agentic Disco fixes that with a simple HTTP API — write memory, read it back from any agent, any session, any time.
| Without Agentic Disco | With Agentic Disco |
|---|---|
| Every conversation starts blank | Agents recall past sessions |
| Each agent is isolated | All agents share a memory layer |
| You build custom memory logic | Two method calls handle it |
| Context lost on restart | Persistent across all sessions |
Quickstart
from agenticdisco import AgenticDisco
disco = AgenticDisco("your_disco_key") # Get yours free at agenticdisco.com
# Store a memory
disco.remember("user_goal", "build a web app", category="goals")
disco.remember("preferred_language", "Python", category="preferences")
# Recall all memories
memories = disco.recall()
for m in memories:
print(f"[{m.category}] {m.key}: {m.value}")
# Recall as a flat dict
context = disco.recall(as_dict=True)
print(context["user_goal"]) # "build a web app"
# Post to the agent channel
disco.post("SCOUT", "Research complete — 12 sources found")
disco.post("FORGE", "Code generated and tested")
# Read the channel
for msg in disco.listen():
print(f"[{msg.agent_name}] {msg.message}")
OpenAI Integration — 2 Lines
The most common use case: give your ChatGPT-powered app a persistent memory that survives across sessions.
from openai import OpenAI
from agenticdisco import AgenticDisco
client = OpenAI(api_key="your_openai_key")
disco = AgenticDisco("your_disco_key")
def chat(user_input: str, user_id: str) -> str:
messages = [{"role": "user", "content": user_input}]
# ✨ Inject persistent memory — one line
messages = disco.inject_memory(messages)
response = client.chat.completions.create(
model="gpt-4",
messages=messages
)
reply = response.choices[0].message.content
# ✨ Save the conversation — one line
messages.append({"role": "assistant", "content": reply})
disco.save_conversation(messages, agent_name="my-gpt-bot")
return reply
That's it. Your GPT now remembers user goals, preferences, and past conversations — forever.
All Methods
Memory
| Method | Description |
|---|---|
disco.remember(key, value, category=None) |
Write a memory entry |
disco.recall(category=None, as_dict=False) |
Read all memory entries |
disco.forget(key) |
Clear a memory entry |
disco.inject_memory(messages) |
Inject memory into an OpenAI messages list |
disco.save_conversation(messages, agent_name) |
Save a conversation to memory |
Channel
| Method | Description |
|---|---|
disco.post(agent_name, message) |
Post a message to the agent channel |
disco.listen(limit=None) |
Read all channel messages |
Multi-Agent Example
Multiple agents sharing the same memory layer — coordinated via the channel.
from agenticdisco import AgenticDisco
# All agents use the same Disco Key — they share memory automatically
scout = AgenticDisco("your_disco_key")
forge = AgenticDisco("your_disco_key")
vera = AgenticDisco("your_disco_key")
# SCOUT does research, writes findings to memory
scout.remember("research_topic", "persistent memory for AI agents")
scout.remember("sources_found", "12", category="research")
scout.post("SCOUT", "Research complete. 12 sources found.")
# FORGE reads SCOUT's memory and builds on it
context = forge.recall(as_dict=True)
print(context["research_topic"]) # "persistent memory for AI agents"
forge.post("FORGE", f"Building on SCOUT's research: {context['research_topic']}")
# VERA validates and reads the full channel history
for msg in vera.listen():
print(f"[{msg.agent_name}] {msg.message}")
Error Handling
from agenticdisco import AgenticDisco, DiscoAuthError, DiscoRateLimitError, DiscoAPIError
disco = AgenticDisco("your_disco_key")
try:
memories = disco.recall()
except DiscoAuthError:
print("Invalid Disco Key — get yours at agenticdisco.com")
except DiscoRateLimitError:
print("Rate limit hit — upgrade at agenticdisco.com/pricing")
except DiscoAPIError as e:
print(f"API error: {e}")
Pricing
| Plan | Price | Memory Entries | Channel Messages |
|---|---|---|---|
| Free | $0/mo | 500 | 1,000/mo |
| Builder | $19/mo | 50,000 | 100,000/mo |
| Pro | $79/mo | Unlimited | Unlimited |
No credit card required to start. Get your free key →
Links
- Website: agenticdisco.com
- API Docs: agenticdisco.com/docs
- Get API Key: agenticdisco.com/get-key
- Issues: GitHub Issues
MIT License © 2026 Agentic Disco
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agenticdisco-1.0.0.tar.gz.
File metadata
- Download URL: agenticdisco-1.0.0.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0rc1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
089eaa3521a19b20f9ac39510da9d7a9b619b653cd53eed90c14c7212c8c53c9
|
|
| MD5 |
9d180ef3f33fa47b35a11dea910309b1
|
|
| BLAKE2b-256 |
ad8ec3b7a797340bc7524589e094bb5d6c3b911624d3444465f0fd63595c6ced
|
File details
Details for the file agenticdisco-1.0.0-py3-none-any.whl.
File metadata
- Download URL: agenticdisco-1.0.0-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0rc1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d21b599a75fdf2925c02b0feb38d3cb3e9f584bf1faf43843c364d9edcfe74c
|
|
| MD5 |
ab6a140a6f382f10fc68591e1d0b4f01
|
|
| BLAKE2b-256 |
25b410548d517425c6276af896ef92625e3976ffed41747db43cef4ed536bc83
|