iblai/api

iblai-api-agent-memory

Manage an ibl.ai agent's memories via the platform API — list and filter agent (mentor) memories (by category, user, email, date), curate global (cross-agent) memories, curate shared agent knowledge injected into every user's chat, add/edit/delete memories, manage memory categories, and toggle capture/recall settings.

First seen Jul 15, 2026

Installation

$ npx skills add iblai/api --skill iblai-api-agent-memory

Summary

  • Manage an ibl.ai agent's memories via the platform API — list and filter agent (mentor) memories (by category, user, email, date), curate global (cross-agent) memories, curate shared agent knowledge injected into every user's chat, add/edit/delete memories, manage memory categories, and toggle capture/recall settings.
  • Use when inspecting or curating what an agent remembers.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from iblai/api · top by installs.

npx skills add iblai/api

Browse all from iblai/api

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 15
License LICENSE
Default branch main
Open issues 1
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 11,763 B
  • docs SUMMARY.md 408 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 6 installs

SKILL.md

iblai-api-agent-memory

Manage an agent's memories through the API: browse and filter what an agent has remembered, curate global (cross-agent) memories, add / edit / delete individual memories, manage the categories memories are filed under, and control capture / recall settings. Use when inspecting or curating what an agent remembers.

Auth & conventions

  • Base URL: https://api.iblai.app
  • Header: Authorization: Api-Token $IBLAIAPIKEY on every request.
  • Path vars: {org} = $IBLAIORG, {username} = $IBLAIUSERNAME,

{mentor} = the agent's unique id (e.g. d17dc729-60fd-4363-81a0-f67d9318b03e).

  • Prefix / two spellings: endpoints live under the ai-mentor base

https://api.iblai.app/dm/api/ai-mentor/orgs/{org} (the leading … below). A twin ai-agent base mirrors every route with the mentor path token swapped for agent (…/mentors/{mentor}/mentor-memories/ ↔ …/agents/{agent}/agent-memories/); either works.

  • Two path bases: user-scoped routes hang off …/orgs/{org}/users/{username} (written

{u} below); memory categories hang off …/orgs/{org}/mentors/{mentor} directly (no user segment).

  • Not connected yet? Run /iblai-api-login first to populate IBLAI_ORG,

IBLAIUSERNAME, and IBLAIAPI_KEY.

Concepts

Two PGVector-backed memory stores ("memsearch") sit behind these endpoints:

  • Global memories (UserGlobalMemory) — scoped to a user + org, shared across every

agent; facts any agent should know about the user.

  • Agent (mentor) memories (UserMentorMemory) — scoped to a user + one agent + a

category; what a single agent remembers about the user.

  • Agent knowledge (MentorMemory) — scoped to one agent (org + mentor), not any

user and not categorized. Manually curated (never auto-extracted), it is injected into every user's chat with that agent as an ## Agent Knowledge block, gated by the agent's enablememorycomponent and each user's usememoryin_responses. This is shared "how the agent should behave / what it should always know" content, distinct from the per-user stores above.

Categories (MentorMemoryCategory, per agent) file agent memories and steer capture: each has a slug, an extractionprompt (LLM hint for what to pull into that category), and isactive (whether it's used during extraction).

Capture & injection are controlled per user via memsearch-settings:

  • autocaptureenabled — agents auto-extract memories from conversations. Auto-extracted

rows carry isautogenerated: true; memories you add via the API are false.

  • usememoryin_responses — stored memories are injected into agent responses.

An org-wide enable_memsearch flag gates the whole feature (see memsearch-status).

Reads

Agent (mentor) memories

  • GET …/users/{username}/mentors/{mentor}/mentor-memories-list/?page={n}&pagesize={n}&category={slug}&mymemory={bool}&userid={id}&email={e}&startdate={yyyy-MM-dd}&end_date={yyyy-MM-dd} — paged flat list for one agent.
  • GET …/users/{username}/mentors/{mentor}/mentor-memories/?mymemory={bool}&userid={id}&email={e}&startdate=&enddate= — the same memories grouped by category.
  • GET {u}/mentor-memories/?mentor={agent}&userid={id}&email={e}&startdate=&end_date= — the user's agent memories across all agents; add ?mentor= to scope to one. Twin spelling: {u}/agent-memories/.

Categories

  • GET …/orgs/{org}/mentors/{mentor}/memory-categories/ — category list for one agent.

Agent knowledge (shared)

  • GET …/orgs/{org}/mentors/{mentor}/agent-memories/?page={n}&pagesize={n} — paged list of the agent's shared knowledge entries (DRF page envelope; pagesize default 20, max 100). This path has no users/{username} segment — do not confuse it with the user-scoped {u}/agent-memories/ twin spelling above, which lists one user's per-agent memories.

Global (cross-agent) memories

  • GET {u}/global-memories/?userid={id}&email={e}&sessionid={uuid}&content={substr}&startdate={yyyy-MM-dd}&enddate={yyyy-MM-dd} — user-level memories shared across every agent. Filters: sessionid (the source session), content (case-insensitive substring), and the startdate / end_date created-at range.

Settings

  • GET {u}/memsearch-settings/ — the user's capture / recall settings. Tenant admins may read another user's settings by putting that user's username in the {username} path segment; non-admins are restricted to their own (any other {username} resolves back to the caller).
  • GET {u}/memsearch-status/ — whether memsearch (enable_memsearch) is enabled for the org.

Writes

Agent (mentor) memories

  • POST …/users/{username}/mentors/{mentor}/mentor-memories/ — add a memory:

``json { "category_slug": "string (required, must match an existing category slug)", "content": "string (required, ≥10 chars)" } ``

  • PATCH …/users/{username}/mentors/{mentor}/mentor-memories/{memoryId}/ — edit a memory (send at least one field):

``json { "category_slug": "string", "content": "string (≥10 chars)" } ``

  • DELETE …/users/{username}/mentors/{mentor}/mentor-memories/{memoryId}/ — delete one memory (no body). Destructive — confirm with the user first. Bulk delete = one call per memory.

Categories

  • POST …/orgs/{org}/mentors/{mentor}/memory-categories/ — add a category:

``json { "name": "string (required)", "slug": "string (required, unique per agent)", "description": "string", "extractionprompt": "string", "isactive": "boolean (default true)" } ``

  • PATCH …/orgs/{org}/mentors/{mentor}/memory-categories/{categoryId}/ — edit a category (any subset of the create fields).
  • DELETE …/orgs/{org}/mentors/{mentor}/memory-categories/{categoryId}/ — delete a category (no body). Destructive — confirm with the user first.

Agent knowledge (shared)

  • POST …/orgs/{org}/mentors/{mentor}/agent-memories/ — add a shared knowledge entry:

``json { "content": "string (required, ≥10 chars)" } ` Dedups on a content hash: an identical entry returns 409 ({"error": "Memory already exists"}) rather than a duplicate; a new one returns 201` with the created object.

  • PATCH …/orgs/{org}/mentors/{mentor}/agent-memories/{memoryId}/ — replace an entry's content:

``json { "content": "string (required, ≥10 chars)" } ` If the new content collides with another of the agent's entries, returns 409`.

  • DELETE …/orgs/{org}/mentors/{mentor}/agent-memories/{memoryId}/ — delete one entry (no body, 204). Destructive — confirm with the user first.

Global (cross-agent) memories

  • POST {u}/global-memories/ — add a user-level memory: { "content": "string (required, ≥10 chars)" }.
  • DELETE {u}/global-memories/{memoryId}/ — delete one (no body). Destructive — confirm with the user first.

Settings

  • PUT {u}/memsearch-settings/ — update the user's capture / recall settings (send at least one field). Tenant admins may update another user's settings by putting that user's username in the {username} path segment; non-admins are restricted to their own (any other {username} resolves back to the caller):

``json { "autocaptureenabled": "boolean", "usememoryin_responses": "boolean" } ``

Example

List the first page of one agent's memories filed under the preferences category since the start of the year:

curl -s \
  "https://api.iblai.app/dm/api/ai-mentor/orgs/$IBLAI_ORG/users/$IBLAI_USERNAME/mentors/$MENTOR/mentor-memories-list/?page=1&page_size=20&category=preferences&start_date=2026-01-01" \
  -H "Authorization: Api-Token $IBLAI_API_KEY"

Notes

  • Memories are filed under categories; category_slug on an agent memory must match an

existing category's slug from the memory-categories/ endpoint.

  • The mentor-memories-list/ filters stack — combine category, user_id, email, and

the date range to narrow results; my_memory=true scopes the list to the caller's own memories.

  • Global memories filter by userid / email plus sessionid, content (substring),

and a startdate / enddate range — but not category or my_memory, which are agent-memory-only (global memories aren't categorized).

  • Categories are org- + agent-scoped (…/orgs/{org}/mentors/{mentor}/…), not user-scoped

like the memory endpoints.

  • Two things share the agent-memories name. The user-scoped {u}/agent-memories/ (under

…/users/{username}) is the twin spelling of one user's per-agent memories; the org+agent-scoped …/orgs/{org}/mentors/{mentor}/agent-memories/ (no user segment) is the shared agent knowledge store. Different data, different path — pick by whether a users/{username} segment is present.

  • There is no bulk-delete endpoint: to clear several memories, issue one DELETE per id.
  • Flat list reads (global memories, agent/mentor memories, categories) return a DRF page

envelope — { "count": n, "results": [...] }; iterate results. The grouped mentor-memories/ read instead buckets memories by category (see Reads). DELETEs return 204.

Schema

Memory object (every memory read returns this; UserMentorMemory / UserGlobalMemory):

field mode notes
id ro integer
content req (write) the memory text; ≥10 chars
username, email ro resolved from the user
mentor_id ro agent memories only
platform ro global memories only (org key)
category ro agent memories only; nested category object
sourcesessionid ro session the memory was extracted from, or null
isautogenerated ro true = LLM-extracted, false = added via API
createdat, updatedat ro ISO 8601

Agent-knowledge object (MentorMemory; returned by the shared agent-memories endpoints):

field mode notes
id ro integer
mentor_id ro the agent's unique id
mentor_name ro the agent's name
content req (write) the knowledge text; ≥10 chars
created_by ro username of the curator, or null (service/API-key callers)
createdat, updatedat ro ISO 8601

No category, isautogenerated, or user fields — agent knowledge is shared and manually curated.

Category object (MentorMemoryCategory): id (ro), name, slug (unique per agent), description, extractionprompt, isactive (default true), created_at (ro).

Settings (memsearch-settings): autocaptureenabled, usememoryinresponses (both boolean, default true), updatedat (ro).

Reference material

Background that complements the endpoints above (not required to call the API):

  • [references/concepts.md](references/concepts.md) — how extraction and injection actually behave (background capture, single-LLM-call, 3-layer dedup, top-5 semantic recall), the default categories, the org → agent → user enablement cascade, embedding/dedup specs, and a symptom→fix table.