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
Metadata
Release files for agenticdisco 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| agenticdisco-1.0.0.tar.gz | 10.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agenticdisco-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.8 kB
Release files / agenticdisco-1.0.0.tar.gz
| Download URL | agenticdisco-1.0.0.tar.gz |
|---|---|
| Size | 10.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
089eaa3521a19b20f9ac39510da9d7a9b619b653cd53eed90c14c7212c8c53c9
|
|
BLAKE2b-256 checksum How to use checksums |
ad8ec3b7a797340bc7524589e094bb5d6c3b911624d3444465f0fd63595c6ced
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.0rc1
|
Release files / agenticdisco-1.0.0-py3-none-any.whl
| Download URL | agenticdisco-1.0.0-py3-none-any.whl |
|---|---|
| Size | 9.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7d21b599a75fdf2925c02b0feb38d3cb3e9f584bf1faf43843c364d9edcfe74c
|
|
BLAKE2b-256 checksum How to use checksums |
25b410548d517425c6276af896ef92625e3976ffed41747db43cef4ed536bc83
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.0rc1
|
Security for agenticdisco 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.