amber_store_memory
Retain text across conversations by storing it as long-term memory. The text is processed into atomic facts, expanded, and embedded; returns a task ID to track and retrieve the resulting memories.
Instructions
Store text as long-term memory. Returns a task_id for tracking. Use amber_get_store_task_status with the task_id to check progress and get the resulting memory IDs when complete. The text is processed in background: chunked into atomic facts, each fact expanded and embedded in parallel, topics resolved (parallel search + sequential creation), then memories inserted in parallel. Typically completes in 10-30 seconds.
Provide metadata when there are specific values worth filtering on later.
TOPICS vs METADATA -- different purposes:
topics = broad subject areas this memory belongs to (like folders). Matched SEMANTICALLY: "career" will find an existing "work" topic automatically, no need to guess exact names. Pick 1-3 areas. Auto-created if no similar topic exists. Examples: "work", "health", "preferences", "family", "cooking", "finances".
metadata = concrete values for EXACT-MATCH filtering in amber_search_memories. Only useful for specific, structured data you want to filter on later: person names, dates, project names, sources. These are NOT semantic -- metadata: {person: "Sarah"} only matches searches filtered by person = "Sarah", not "Sara" or "S. Johnson". Do NOT put categories, importance levels, or topic names in metadata -- that is what topics are for.
Examples: amber_store_memory({ content: "User prefers dark mode in all apps", topics: ["preferences"] })
amber_store_memory({ content: "Meeting with Sarah on Friday to discuss Q3 budget", metadata: {person: "Sarah", date: "2026-05-09", project: "Q3 budget"}, topics: ["work", "meetings"] })
amber_store_memory({ content: "User is allergic to peanuts", topics: ["health"] })
Rate-limited (drip bucket: 1000 capacity, refills ~1 token per 86 seconds. You can burst up to 1000 stores before hitting the limit).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The text to remember, 1-50000 characters. | |
| metadata | No | Concrete values for exact-match filtering in searches. Only useful for structured data like person names, dates, project names, sources. NOT for categories or topic names. Example: {person: "Sarah", date: "2026-05-09"}. | |
| topics | No | Optional broad categories for this memory (e.g. 'work', 'health', 'travel'). Only needed when the category can't be inferred from the text itself -- most memories don't need this. Matched semantically, so you don't need to guess exact names. Do NOT use topics for specific names, dates, or values -- use `metadata` for those (e.g. {"person": "Sarah"}). Topics are searched semantically; metadata is filtered by exact match. |