Social memory for multi-agent systems: who remembers what, about whom, visible to whom.
Project description
kith
Social memory for multi-agent systems — who remembers what, about whom, visible to whom.
Working draft README. Not yet published.
Why
Agent memory today answers one question: what facts should I remember? (Mem0, Zep, LangMem — all excellent at it.)
But when agents work with other agents (or with you, across contexts), the failures that actually hurt are not fact-retrieval failures:
- Your planner delegates to the same flaky coder agent for the fifth time, because nothing remembers the first four failures.
- A negotiation agent's private read on its counterpart leaks into a shared channel, because memory has no notion of where a memory may go.
- Every session, your agents meet each other as strangers.
Research on multi-agent failures (the MAST taxonomy) puts inter-agent misalignment and weak verification at the top of the list. These are relationship-state failures: the system has no memory of who anyone is to anyone.
kith is that memory.
Install
pip install kith-ai # imports as `kith`
What it is
A small Python library (sqlite by default, zero heavy deps) that gives your agents:
- Observations — append-only records of what happened between principals: interactions, claims, emotional reads
- Relationship views — trust, reliability, sentiment, capabilities: derived from observations with decay and full provenance (
view.explain()shows its work) - Scope contracts — every memory has an explicit visibility boundary, enforced at a single gate below every read path (retrieval, errors, exports — no leaks through side doors)
import kith
store = kith.Store("sqlite:///team.db")
me = store.principal("agent:planner-7")
me.observe(subject="agent:coder-2", kind="interaction",
payload={"promised": "fix by 5pm", "delivered": False},
context="task:deploy-42")
v = me.view("agent:coder-2")
if v.reliability < 0.4:
plan.add_verification_step() # remembered, not repeated
It is not a Mem0 replacement — run it beside your fact store. Facts are what happened; kith is what it did to the relationship.
Design commitments
- Access boundaries are contracts, not filters. One visibility gate under every read surface, with a leak-path test suite to prove it. (Battle-tested design: grew out of hermes-agent #71224, where snapshot-only filtering was shown to leak through error inventories.)
- Identity comes from the runtime, never from the model. Models say
current/peer; the runtime resolves who that is. LLMs don't get to invent IDs. - Psychology is pluggable. Default trust/reliability/sentiment derivers are documented and swappable — bring your own model of a mind.
- Useful at n=2. One user, one assistant, cross-context privacy: already worth it. Scales to agent teams from there.
Status
Design phase. See docs/DESIGN.md. Adapters planned: LangGraph, hermes-agent (MemoryProvider), A2A.
Author
Yan Liu (@theNamek) — PhD researcher on group emotion dynamics in multi-agent LLM systems.
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 kith_ai-0.1.0.tar.gz.
File metadata
- Download URL: kith_ai-0.1.0.tar.gz
- Upload date:
- Size: 20.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff588abd7d9a0adf6515eb95400a57cd9d425308911b47139f6261145ef5c3ff
|
|
| MD5 |
e391c4a25d764d996153274b75f7fec2
|
|
| BLAKE2b-256 |
01dbfe17b687e18d25a21a611cda8dfa5dacf3247580a9a6cf23567a10ab88b2
|
File details
Details for the file kith_ai-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kith_ai-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe2edfc58ab7d50b2c772f2662580bdf834f26d88ea422f71fb4ef1d8f244224
|
|
| MD5 |
4fe1d7764c7671de3735e3b26bc06db4
|
|
| BLAKE2b-256 |
05b84aeb1f7f2092184ff5be3a7fb9a5f61db9ba6e66381f29912cd1e532c292
|