LoomCycle Memory Tool
AI-generatedSummary
Exposes loomcycle Memory (full read/write CRUD) as an AI tool for a parent n8n AI Agent. The agent picks an op (list scopes, list scope IDs, list entries, get, set, delete) and the node calls the loomcycle server's memory admin API.
Inputs
- toolName (required) — Name of the tool shown to the parent AI Agent (default "loomcycle_memory"). Must be unique among sibling tools.
- toolDescription — Text the AI Agent sees when deciding whether to call the tool. The default describes each op and its required arguments. Edit it to steer the model.
- Agent-supplied arguments (tool schema) (required) — Not node fields. The LLM fills them per call.
opis required: listScopes, listScopeIDs, listEntries, getEntry, setEntry or deleteEntry.scopeis required for every op except listScopes.scopeIDis required for listEntries, getEntry, setEntry and deleteEntry.keyis required for getEntry, setEntry and deleteEntry.value(any JSON) is required for setEntry. Optional:embedandttlSeconds(setEntry),prefixandlimit(listEntries). - Credentials: loomCycleApi (required) — Supplies the loomcycle base URL and bearer token used for all requests.
Output shape
A single tool result that is JSON-stringified for the agent. listScopes, listScopeIDs, listEntries and getEntry return the loomcycle server's JSON response. setEntry returns the server's PUT response (the response may be null when the server returns 204). deleteEntry returns {ok:true, scope, scope_id, key}.
Errors do not throw. They come back as {error: message}, with bearer tokens and API key fragments redacted. Missing required args produce errors such as "scope + scopeID + key required for getEntry". In direct execute() mode, each input item's JSON is parsed as the tool args and yields one output item. deleteEntry is idempotent, so deleting a missing key is not an error. ttlSeconds only applies when greater than 0, and embed only when true.
Examples
Example 1: Agent remembers a user preference across runs
Keep the defaults. The agent calls op=setEntry with scope="user", scopeID="u123", key="tone", value={"style":"concise"}, and later op=getEntry with the same scope, scopeID and key.
Example 2: Semantic memory with expiry
Agent calls setEntry with embed=true and ttlSeconds=86400 so the entry is embedded by loomcycle's embedder and expires after a day.
Example 3: Browse stored notes
Agent calls listEntries with scope="agent", scopeID="research", prefix="notes/", limit=20, then getEntry for a chosen key.