Skip to main content

Agno DB and toolkit integration backed by MuBit memory engine

Project description

mubit-agno

Agno (v2) DB and toolkit integration backed by the MuBit memory engine.

Targets Agno v2's agno.db.base.BaseDb. (The pre-2.0 adapter implemented agno.memory.v2.db.base.MemoryDb, which was removed in Agno 2.0.)

Installation

pip install mubit-agno[agno]   # installs agno>=2.6,<3

Quick Start

DB — Persistent User Memory + Sessions

Use MubitAgnoDb as the db for an Agno agent. User memories persist to MuBit and sessions are mirrored as MuBit checkpoints:

from agno.agent import Agent
from agno.models.openai import OpenAIChat
from mubit_agno import MubitAgnoDb

agent = Agent(
    model=OpenAIChat(id="gpt-4o"),
    db=MubitAgnoDb(
        api_key="mbt_...",
        session_id="user-session-1",
        user_id="user-42",
    ),
    enable_user_memories=True,
)

agent.run("Remember that I prefer concise answers")
agent.run("What are my preferences?")  # Recalls from MuBit

MubitAgnoDb is a genuine BaseDb subclass: user-memory and session methods are MuBit-backed; the remaining BaseDb surfaces (metrics, evals, knowledge, culture, learnings, traces, spans) use lightweight local storage so the class is fully concrete.

Toolkit — Direct Memory Tools

Give agents LLM-callable tools for fine-grained memory control:

from agno.agent import Agent
from agno.models.openai import OpenAIChat
from mubit_agno import MubitToolkit

agent = Agent(
    model=OpenAIChat(id="gpt-4o"),
    tools=[MubitToolkit(api_key="mbt_...", session_id="research-run-1")],
)

# Tools: mubit_remember, mubit_recall, mubit_reflect, mubit_get_context,
# mubit_checkpoint, mubit_record_outcome, mubit_diagnose, mubit_memory_health.
# mubit_recall surfaces `citations` + `entry_ids` so the agent can close the
# loop with mubit_record_outcome(entry_ids=...).
agent.run("Store a lesson: always validate input before processing")
agent.run("What lessons have we learned?")

Convenience Wrapper — Full Integration

MubitAgnoMemory bundles both surfaces and adds MAS extensions:

from agno.agent import Agent
from agno.models.openai import OpenAIChat
from mubit_agno import MubitAgnoMemory

mubit = MubitAgnoMemory(api_key="mbt_...", session_id="crew-run-1", user_id="user-42")

agent = Agent(
    model=OpenAIChat(id="gpt-4o"),
    db=mubit.as_db(),
    tools=[mubit.as_toolkit()],
    enable_user_memories=True,
)

# MAS coordination
mubit.register_agent("researcher", role="researcher",
                     read_scopes=["fact", "lesson"], write_scopes=["trace", "lesson"])
mubit.checkpoint("Phase 1", "Research complete")

Closing the Attribution Loop (v0.7.0)

Recall, act, then credit the exact entries that helped — verified-in-production lessons get a ranking boost:

result = mubit.recall("deployment runbook")
entry_ids = mubit.extract_entry_ids(result, cited_only=True)  # only cited evidence
mubit.record_outcome(
    "success",
    entry_ids=entry_ids,
    verified_in_production=True,
    rationale="Followed the recalled runbook and the deploy passed",
)

# Per-step process rewards
mubit.record_step_outcome("validate-inputs", outcome="success")

Writes are idempotent: user-memory upserts thread both an upsert_key and an idempotency_key, so retried writes don't double-count reinforcement.

Extended Features

The MubitAgnoMemory wrapper provides full MAS capabilities:

  • Recall: recall(query) — evidence + citations + entry_ids
  • Context: get_context(query) — pre-assembled memory context
  • Reflection: reflect() — extract lessons from evidence
  • Lessons: lessons() / learned() / forget()
  • Checkpoints: checkpoint(label, snapshot) — durable snapshots
  • Outcomes: record_outcome(outcome, entry_ids=..., verified_in_production=...)
  • Step Outcomes: record_step_outcome(step_id) — per-step rewards
  • Strategies: surface_strategies() — pattern discovery
  • Agent Registration: register_agent(id, role, scopes) — MAS setup
  • Handoffs: handoff(from, to, content) — agent coordination
  • Feedback: feedback(handoff_id, verdict) — async evaluation
  • Archive: archive(content, kind) / dereference(ref_id)
  • Diagnostics: diagnose(error) — failure analysis
  • Health: memory_health() — quality assessment

Environment Variables

Variable Description Default
MUBIT_ENDPOINT MuBit server URL http://127.0.0.1:3000
MUBIT_API_KEY MuBit API key (empty for local dev)

License

Apache-2.0

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

mubit_agno-0.6.0.tar.gz (21.1 kB view details)

Uploaded Source

Built Distribution

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

mubit_agno-0.6.0-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file mubit_agno-0.6.0.tar.gz.

File metadata

  • Download URL: mubit_agno-0.6.0.tar.gz
  • Upload date:
  • Size: 21.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for mubit_agno-0.6.0.tar.gz
Algorithm Hash digest
SHA256 76140ac05080abbedc4aaf4d4823ace98dc89b37a661d6d1be268a07c9f82704
MD5 cdcf6ab3f1ec050251d61f90def14b9b
BLAKE2b-256 7300d2d2f48f345e6918c48cb4bba57a0ce20a36b811bff074ff228ae222fff4

See more details on using hashes here.

File details

Details for the file mubit_agno-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: mubit_agno-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for mubit_agno-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d0a78ce60ee6e8db560896f072e84f14f9d50330bff65497a558629196cbf430
MD5 ea54eb3f6f707c13651a327e1603c428
BLAKE2b-256 488d393416d0d3cfca15d9bfa8eff3c53f3e4745274db60c505242f3898feb1c

See more details on using hashes here.

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