Skip to main content

Give your Google ADK agent a June memory — a local-first MemoryService backed by a searchable, cited June knowledge canvas, plus a backfill CLI for existing session databases.

Project description

june-adk

Give your Google ADK agent a June memory. ADK already defines a pluggable memory seam — BaseMemoryService — but its production implementation sends your agent's conversations to Vertex AI RAG in Google's cloud. june-adk implements the same seam against Junê instead: your agent's history becomes a local-first, searchable, cited knowledge graph, canvas-fenced like everything else in June.

your ADK agent ──▶ JuneMemoryService ──▶ June canvas (graph · search · citations)
                   (ADK's own seam)       local by default — your machine, your data

The live seam — one object in your Runner

pip install june-adk
from google.adk.runners import Runner
from june_adk import JuneMemoryService

memory = JuneMemoryService(
    june_url="http://127.0.0.1:8799",    # the Junê desktop app's local engine
    api_key="local",
    canvas="agent-memory",
    state_file=".june_adk_pushed.json",  # dedupe ledger, survives restarts
)
runner = Runner(agent=agent, app_name="my-app",
                session_service=session_service, memory_service=memory)

That's the whole integration. ADK's own memory tools (load_memory, preload-memory) now read June, and add_session_to_memory / add_events_to_memory write it. JuneMemoryService.from_env() builds from the same JUNE_BASE_URL / JUNE_API_KEY / JUNE_CANVAS env vars that june-mcp and june-langgraph use.

Contract fidelity, verified against the installed google-adk (not docs):

  • add_session_to_memory — ADK says a session "may be added multiple times during its lifetime"; we honor that with per-event delta dedup, so repeated adds never duplicate and only new events ship.
  • add_events_to_memory — the incremental path, treated as a delta exactly as the base class demands.
  • search_memorySearchMemoryResponse of MemoryEntry items, with June provenance (score, node id) in custom_metadata.
  • Fail-soft by default: a memory write must never crash the agent — June being down logs one line and retries on the next add. Pass strict=True to raise instead. All HTTP runs in a worker thread; the event loop is never blocked.

The backfill — history your app already saved

If your app persists sessions with ADK's DatabaseSessionService, the history that already exists can be brought into June without touching your code:

pip install "june-adk[db]"
june-adk sync --db sessions.db          # one incremental catch-up pass
june-adk watch --db sessions.db         # keep syncing (Ctrl+C to stop)
june-adk doctor --db sessions.db        # PASS/FAIL every part of the setup

Discovery is metadata-only SQL (which app/user scopes exist); content is always read through ADK's own DatabaseSessionService, so ADK deserializes its events — never us. Bare file paths and sqlite:// URLs are quietly upgraded to the async driver ADK 2.x requires. Server databases (Postgres, MySQL) work too — pass --app and --user. Every pass is incremental via the same ledger the live seam uses; re-running never duplicates.

What you get on the June side

The canvas behaves like any other: search it, ask cited questions over it in the Junê app, and point june-mcp at the same canvas so Claude (or any MCP agent) can answer over your ADK agent's entire history. One memory, every agent.

Part of a family: june-langgraph does the same for LangGraph checkpointers.

License

MIT. The Junê engine itself is a separate, closed-source product — this connector is the open part, by design.

Project details


Download files

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

Source Distribution

june_adk-0.1.0.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

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

june_adk-0.1.0-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file june_adk-0.1.0.tar.gz.

File metadata

  • Download URL: june_adk-0.1.0.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for june_adk-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1e3ef461994dd9e35638c81f59fb3a0b8397f1d38c322d63a27189cd04b55cb3
MD5 836033da209a7f406b8d7891881a9eae
BLAKE2b-256 b51e56b6fba856ad64b7ac2f713a3d09b962d580dcb365cd57cf46d06601b382

See more details on using hashes here.

Provenance

The following attestation bundles were made for june_adk-0.1.0.tar.gz:

Publisher: publish.yml on Junemind/june-adk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file june_adk-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: june_adk-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for june_adk-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ed25ec8b1e25f027e8f60db90d406086d3301419bb5e76baca3404c62f27f0cc
MD5 6b21fa1064deb931e4a6c1f682642e05
BLAKE2b-256 8c430a261e0a9cacc3d8b6780ecdadbf50b4f7987f4ebd9d36980cdeafee9f54

See more details on using hashes here.

Provenance

The following attestation bundles were made for june_adk-0.1.0-py3-none-any.whl:

Publisher: publish.yml on Junemind/june-adk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page