Memory, search, geocoding, and enrichment settings
Operational and runtime-behavior settings for Configuration reference: MemoryConfig, SearchConfig, GeocodingConfig, EnrichmentConfig, and the integration-limits summary.
Memory behavior
The tables distinguish declared values from automatic runtime behavior. MemoryClient forwards multi_tenant, write_mode, and max_pending. Its ordinary store operations use their own method defaults. The remaining fields are not automatically applied; call the relevant operation explicitly.
multi_tenant guards selected writes accepting user_identifier; it does not enforce read isolation. write_mode controls client.buffered.submit(…), not ordinary store calls. TTL and auditing require explicit consolidation calls.
| Field | Type / values | Default | Constraints | Env var | Description |
|---|---|---|---|---|---|
|
|
|
ge 1 |
|
Default conversation message limit † |
|
|
|
— |
|
Enable message embeddings † |
|
|
|
ge 0.0, le 1.0 |
|
Preference confidence threshold † |
|
|
|
— |
|
Enable fact deduplication † |
|
|
|
— |
|
Enable reasoning trace embeddings † |
|
|
|
— |
|
Enable tool usage statistics † |
|
|
|
— |
|
Require user_identifier on the guarded bolt writes; does not add read authorization or scope semantic search. |
|
|
|
— |
|
How fire-and-forget writes via |
|
|
|
ge 1 |
|
Maximum number of buffered writes that can be in flight. When the queue is full, |
|
|
|
ge 1 |
|
Available to application code as a TTL value; pass it explicitly as |
|
|
|
— |
|
Available to application code as an audit preference; call |
† Not automatically applied by MemoryClient; see Integration limits.
Search configuration
These fields are accepted settings values but are not automatically read by the memory stores. Pass limit, threshold, and other supported options on individual search/traversal calls. NAMS honors a narrower option set; see the API references.
| Field | Type / values | Default | Constraints | Env var | Description |
|---|---|---|---|---|---|
|
|
|
ge 1 |
|
Default search limit † |
|
|
|
ge 0.0, le 1.0 |
|
Default similarity threshold † |
|
|
|
— |
|
Enable hybrid search † |
|
|
|
ge 1 |
|
Graph traversal depth for search † |
† Not automatically applied by MemoryClient; see Integration limits.
Geocoding configuration
Bolt only. When enabled, MemoryClient creates the selected geocoder and can enrich Location entities with coordinates. nominatim uses OpenStreetMap lookup; google requires a key. Provider usage limits/costs are separate from SDK defaults.
from neo4j_agent_memory.config.settings import GeocodingConfig
geocoding = GeocodingConfig(
enabled=True, provider="nominatim", user_agent="my-memory-app/1.0",
rate_limit_per_second=1.0, cache_results=True,
)
Store explicit coordinates with add_entity(…, coordinates=(latitude, longitude)), or query them through search_locations_near and search_locations_in_bounding_box. See Long-term API for exact arguments and result types.
| Field | Type / values | Default | Constraints | Env var | Description |
|---|---|---|---|---|---|
|
|
|
— |
|
Enable automatic geocoding of Location entities |
|
|
|
— |
|
Geocoding provider to use |
|
|
|
— |
|
API key for geocoding provider (required for Google) |
|
|
|
— |
|
Cache geocoding results to avoid repeated API calls |
|
|
|
gt 0 |
|
Client request rate limit for the configured geocoder; honor the provider service policy. |
|
|
|
— |
|
User-Agent sent by the configured geocoder. |
Enrichment configuration
Bolt only. Enabled providers enrich entities with external descriptions/identifiers; provider settings govern caching, rate control, and background work. An injected enrichment_provider can replace construction from these settings. providers is a JSON list in environment variables.
from neo4j_agent_memory.config.settings import EnrichmentConfig
enrichment = EnrichmentConfig(
enabled=True, providers=["wikimedia"], background_enabled=True,
entity_types=["PERSON", "ORGANIZATION", "LOCATION", "EVENT"],
min_confidence=0.7, cache_ttl_hours=168,
)
| Field | Type / values | Default | Constraints | Env var | Description |
|---|---|---|---|---|---|
|
|
|
— |
|
Enable automatic entity enrichment |
|
|
|
— |
|
Enrichment providers to use (in priority order) |
|
|
|
— |
|
API key for Diffbot Knowledge Graph |
|
|
|
gt 0 |
|
Seconds between Wikimedia API requests |
|
|
|
gt 0 |
|
Seconds between Diffbot API requests |
|
|
|
— |
|
Cache enrichment results to avoid repeated API calls |
|
|
|
ge 1 |
|
Hours to cache enrichment results |
|
|
|
— |
|
Run enrichment in background (non-blocking) |
|
|
|
ge 1 |
|
Maximum enrichment queue size |
|
|
|
ge 0 |
|
Maximum retry attempts for failed enrichments |
|
|
|
ge 1 |
|
Delay between retry attempts |
|
|
|
— |
|
Entity types to enrich (empty = all types) |
|
|
|
ge 0.0, le 1.0 |
|
Minimum entity confidence to trigger enrichment |
|
|
|
— |
|
Preferred language for enrichment data |
|
|
|
— |
|
User-Agent for API requests |
Integration limits
An accepted configuration field is not a guarantee that MemoryClient forwards it to a store or provider. The tables mark currently unapplied values. In particular, changing memory/search defaults does not override method defaults, TTL does not schedule cleanup, and audit_read does not instrument every query. Use explicit method arguments and verify the behavior you rely on.
On NAMS, local extraction, schema, resolution, geocoding, and enrichment settings do not configure the hosted pipeline. Client settings validation still runs, so an incompatible explicit llm=None can fail before the backend connects. Configure hosted ontologies through client.ontology; see Ontology API.