HoneyHive
Wrap the GoodMem REST API in a traced Python client so every GoodMem call surfaces as a HoneyHive span.
Overview
GoodMem is a memory layer for AI agents that handles embedding, vector search, reranking, and
LLM-powered answering server-side. The HoneyHive integration wraps the GoodMem REST API in a Python
client whose every operation is decorated with HoneyHive's @trace, so each GoodMem call —
creating spaces, storing memories, semantic retrieval — shows up as a span in the active HoneyHive
session for tracing and observability.
Installation
pip install honeyhive-goodmemThe pip package is honeyhive-goodmem; the import name is honeyhive_goodmem.
Configuration
GoodMem connection settings are passed to the client through a GoodMemConfig object rather than
environment variables:
| Setting | Description |
|---|---|
base_url | Base URL of your GoodMem server (no /v1 suffix), e.g. https://your-goodmem-server.example.com. |
api_key | GoodMem API key used to authenticate requests. |
verify_ssl | Set to false to skip TLS verification for self-signed dev certs (default: true). |
In addition, HoneyHive tracing is initialized separately via HoneyHiveTracer.init(), which
requires your HoneyHive credentials:
| Argument | Description |
|---|---|
api_key | HoneyHive API key (e.g. hh_...). |
project | HoneyHive project name that spans are reported under. |
Quick start
from honeyhive import HoneyHiveTracer
from honeyhive_goodmem import GoodMemClient, GoodMemConfig
HoneyHiveTracer.init(api_key="hh_...", project="my-project")
client = GoodMemClient(
GoodMemConfig(
base_url="https://your-goodmem-server.example.com",
api_key="gm_xxxxxxxxxxxxxxxxxxxxxxxx",
)
)
embedders = client.list_embedders()
embedder_id = embedders["embedders"][0]["embedder_id"]
space = client.create_space(name="quickstart", embedder_id=embedder_id)
space_id = space["space_id"]
client.create_memory(
space_id=space_id,
text_content="The capital of France is Paris.",
)
results = client.retrieve_memories(
query="What is the capital of France?",
space_ids=[space_id],
max_results=3,
)
print(results)Local development. The example above uses a TLS-verified production URL. If you are running
GoodMem locally with a self-signed certificate, use https://localhost:8080 and disable TLS
verification with the client's verify-SSL option (see the Configuration table above). Keep TLS
verification enabled for any deployed server.
Retrieval post-processing
GoodMem's retrieval call accepts these optional post-processing parameters (each framework exposes them under its own naming convention):
| Parameter | Range | Description |
|---|---|---|
reranker_id | UUID | Reranker model that reorders matched chunks by relevance. |
llm_id | UUID | LLM that generates a contextual answer (abstractReply) alongside the chunks. |
relevance_threshold | 0–1 | Minimum relevance score for a result to be included. |
llm_temperature | 0–2 | Sampling temperature for the LLM post-processor. |
max_results | integer | Maximum number of results to return. |
chronological_resort | boolean | Re-sort the final results by creation time instead of relevance. |
Learn more
The full README, examples, and API reference are available on the PyPI package page.