LoomCycle Memory Tool icon

LoomCycle Memory Tool

Loomcycle Memory ops (full CRUD — read + write) as a tool the AI Agent can call

LoomCycle Memory Tool

AI-generated

Summary

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. op is required: listScopes, listScopeIDs, listEntries, getEntry, setEntry or deleteEntry. scope is required for every op except listScopes. scopeID is required for listEntries, getEntry, setEntry and deleteEntry. key is required for getEntry, setEntry and deleteEntry. value (any JSON) is required for setEntry. Optional: embed and ttlSeconds (setEntry), prefix and limit (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.

Links

Discussion