adk-inspeximus
A Google ADK memory service backed by inspeximus.
ADK's built-in InMemoryMemoryService says what it is in its own docstring: "for prototyping purpose
only. Uses keyword matching instead of semantic search." The alternatives shipped with ADK are Vertex AI
services. This is the local one: a file on disk, no server, no cloud account.
pip install adk-inspeximus
from google.adk.runners import Runner
from adk_inspeximus import InspeximusMemoryService
runner = Runner(
agent=agent,
app_name="my_app",
session_service=session_service,
memory_service=InspeximusMemoryService(path="memory.json"),
)
Or without writing any Python glue, if you launch through the ADK CLI:
# services.py — loaded by `adk web`
from adk_inspeximus import register
register() # enables inspeximus://
adk web --memory_service_uri=inspeximus://memory.json
What it does that the built-in does not
- Survives a restart. The built-in service holds everything in a dict; when the process exits, the memory is gone.
- Erases one user on request.
forget_subject_for(app_name, user_id, request_id=...)hard-deletes that user's memories across every session and leaves a content-free tombstone behind, so the deletion is provable and the value is no longer in the bytes on disk. No ADK memory service offers this. - Ranked retrieval instead of counting shared words.
Parity
ADK ships no conformance suite for BaseMemoryService, so the claim "drop-in replacement" is checked
against ADK's own InMemoryMemoryService in adk_audit.py:
eight scenarios, three repeats each, covering ingestion, user and app isolation, empty and missed
queries, repeated ingestion, incremental event deltas, and retrieval from a store crowded with other
users' memories. Running it with ADK_FALSIFY=1 breaks the service on purpose and the checks must fail —
without that, the audit would only prove it can print "PASS".
Two of those scenarios failed when the audit was first written, and both are fixed: re-adding a session
stored it a second time (ADK documents that a session "may be added multiple times during its
lifetime"), and the incremental add_events_to_memory path was not implemented at all.
MIT licensed.
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 adk_inspeximus-0.1.0.tar.gz.
File metadata
- Download URL: adk_inspeximus-0.1.0.tar.gz
- Upload date:
- Size: 2.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca5cf35a9efffe5cc4ae12ea05294419c183f05bfeef9c32cfc6fd0b660c1e51
|
|
| MD5 |
37e2898dc9c18bb5d72b22c88274f97d
|
|
| BLAKE2b-256 |
942c97c4351c15fa2186c19ca7071f07902182f73d667ee97fd14859dde672c4
|
Provenance
The following attestation bundles were made for adk_inspeximus-0.1.0.tar.gz:
Publisher:
release.yml on DanceNitra/inspeximus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
adk_inspeximus-0.1.0.tar.gz -
Subject digest:
ca5cf35a9efffe5cc4ae12ea05294419c183f05bfeef9c32cfc6fd0b660c1e51 - Sigstore transparency entry: 2214154334
- Sigstore integration time:
-
Permalink:
DanceNitra/inspeximus@8f710e85e80531dfe23da8cf79d4068d94bafdb4 -
Branch / Tag:
refs/tags/adk-inspeximus-v0.1.0 - Owner: https://github.com/DanceNitra
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8f710e85e80531dfe23da8cf79d4068d94bafdb4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file adk_inspeximus-0.1.0-py3-none-any.whl.
File metadata
- Download URL: adk_inspeximus-0.1.0-py3-none-any.whl
- Upload date:
- Size: 3.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e12e233278386ee103fb1ac992f89c94fba0408dc95bcaecb61c68052c3b05a3
|
|
| MD5 |
32e038060447a19af8587792a830a6f6
|
|
| BLAKE2b-256 |
c1a5b47065ca9333c9ccbbabc36c8ef59badf4a7ca8068947b6fa63ab69f2c63
|
Provenance
The following attestation bundles were made for adk_inspeximus-0.1.0-py3-none-any.whl:
Publisher:
release.yml on DanceNitra/inspeximus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
adk_inspeximus-0.1.0-py3-none-any.whl -
Subject digest:
e12e233278386ee103fb1ac992f89c94fba0408dc95bcaecb61c68052c3b05a3 - Sigstore transparency entry: 2214154489
- Sigstore integration time:
-
Permalink:
DanceNitra/inspeximus@8f710e85e80531dfe23da8cf79d4068d94bafdb4 -
Branch / Tag:
refs/tags/adk-inspeximus-v0.1.0 - Owner: https://github.com/DanceNitra
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8f710e85e80531dfe23da8cf79d4068d94bafdb4 -
Trigger Event:
push
-
Statement type: