docs(skills): refresh mem0 skills against SDK 2.2.1 / TS 3.3.1 (#7548)
This commit is contained in:
@@ -15,7 +15,7 @@ description: >
|
||||
license: Apache-2.0
|
||||
metadata:
|
||||
author: mem0ai
|
||||
version: "0.1.0"
|
||||
version: "0.1.1"
|
||||
category: ai-memory
|
||||
tags: "memory, integration, tdd, platform, oss"
|
||||
mem0_tested_versions: "mem0ai (PyPI) >=2.0.0,<3.0.0; mem0ai (npm) >=3.0.0,<4.0.0"
|
||||
@@ -36,7 +36,7 @@ of the Mem0 API.
|
||||
- Scope-tagged docs index: https://docs.mem0.ai/llms.txt
|
||||
- Full docs (single file, deep dives): https://docs.mem0.ai/llms-full.txt
|
||||
- OpenAPI spec (Platform REST, machine-readable): https://docs.mem0.ai/openapi.json
|
||||
- Hosted MCP server: https://mcp.mem0.ai (requires Platform API key)
|
||||
- Hosted MCP server: https://mcp.mem0.ai/mcp (requires Platform API key)
|
||||
- Integrations index: https://docs.mem0.ai/integrations
|
||||
|
||||
### Published Mem0 skills — delegate; do not reimplement
|
||||
@@ -109,7 +109,7 @@ the target stack. If yes, delegate — copy its call-site pattern into
|
||||
|---|---|---|
|
||||
| `@ai-sdk/*` + `ai` in `package.json` | `skills/mem0-vercel-ai-sdk` | Integration is via `createMem0` provider wrapper, not raw `MemoryClient`. |
|
||||
| CLI-only repo (Typer, Commander, Click, Cobra) with no LLM call sites | `skills/mem0-cli` | Call sites are command handlers, not model wrappers. Consider whether mem0 actually fits first. |
|
||||
| Target is an MCP client / editor config (Claude Code, Cursor, Codex settings) | `integrations/mem0-agent-plugin` | Wire via MCP server URL + hooks; no SDK code usually needed. |
|
||||
| Target is an MCP client / editor config (Claude Code, Cursor, Codex settings) | `integrations/mem0-agent-plugin` | Local stdio MCP server (one search tool) plus skills, no hooks or automatic capture; for a hosted endpoint use `https://mcp.mem0.ai/mcp`. No SDK code usually needed. |
|
||||
| Any other Python or TS repo with an LLM call site | `skills/mem0` | Default SDK integration path. |
|
||||
|
||||
Record the delegated skill's raw URL in `plan.md` under a
|
||||
@@ -168,7 +168,7 @@ start executing a step; the summary below is only for routing.
|
||||
| `trace.jsonl` | Every tool call, decision, and subagent exchange this run. | Overwritten per run. |
|
||||
| `diff.patch` | The committed integration as a reviewable patch. | Overwritten per run. |
|
||||
| `heal-trace.md` | Per-attempt record of the self-healing loop (step 10). | Overwritten per run. |
|
||||
| `product.json` | `{"product": "platform"\|"oss", "language": "...", "mem0_version": "...", "write_site": "file:line", "read_site": "file:line", "feature_flag": "MEM0_ENABLED"}` — consumed by the verification skill. | Overwritten per run. |
|
||||
| `product.json` | `{"product": "platform"\|"oss", "language": "...", "mem0_version": "...", "write_site": "file:line", "read_site": "file:line", "feature_flag": "MEM0_ENABLED", "preferred_site": "<surface index from step 2>"}`, consumed by the verification skill. | Overwritten per run. |
|
||||
|
||||
`.mem0-integration/` is added to `.gitignore` on first run. Nothing is
|
||||
written outside this directory and the repo's source tree.
|
||||
|
||||
@@ -116,8 +116,11 @@ Present in env, continue.
|
||||
Mode**: run `mem0 init --agent --agent-caller <your-name> --json` (after
|
||||
`pip install mem0-cli` or `npm install -g @mem0/cli`), substituting your agent
|
||||
identity such as `claude-code`, `cursor`, `codex`. If you forgot
|
||||
`--agent-caller`, run `mem0 identify <your-name>` after init. Cache the key to
|
||||
`.env` with user consent and continue. Tell the user to claim it later with
|
||||
`--agent-caller`, run `mem0 identify <your-name>` after init. Init does not
|
||||
print the key: it saves it to `~/.mem0/config.json` (`platform.api_key`, file
|
||||
mode 0600) and reuses a valid key already there instead of minting a new one,
|
||||
so read the key from that file. Cache the key to `.env` with user consent and
|
||||
continue. Tell the user to claim it later with
|
||||
`mem0 init --email <their-email>`: same key, no agent disruption.
|
||||
|
||||
Missing and **CI mode** (`MEM0_INTEGRATE_CI=1`), exit code 2 with the name of
|
||||
@@ -184,8 +187,8 @@ Then write `.mem0-integration/plan.md`:
|
||||
call client.add([user_msg, assistant_msg], user_id=<source>).">
|
||||
|
||||
**Read pattern:** <one sentence, e.g. "Before building the LLM prompt,
|
||||
call client.search(query=latest_user_msg, user_id=<source>, limit=5)
|
||||
and inject results as a system message.">
|
||||
call client.search(latest_user_msg, filters={"user_id": <source>},
|
||||
top_k=5) and inject results["results"] as a system message.">
|
||||
|
||||
**User identifier source:** <code path, e.g. `req.auth.userId`,
|
||||
`session.user.email`, `ctx.params.user_id`. If none, ask the user.>
|
||||
@@ -276,7 +279,8 @@ test framework:
|
||||
Test assertion shapes must match the **canonical signatures**:
|
||||
|
||||
- Platform method signatures: `https://docs.mem0.ai/openapi.json`, the request
|
||||
body schemas for `/v1/memories/` and `/v1/memories/search/`.
|
||||
body schemas for `/v3/memories/add/` and `/v3/memories/search/` (the
|
||||
`/v1/memories/` POST and `/v1/memories/search/` paths are deprecated).
|
||||
- OSS method signatures: the delegated skill named in `plan.md` (fetched from
|
||||
its raw URL), or `skills/mem0/SKILL.md` as the default.
|
||||
- Do not hand-roll request shapes. If the delegated skill has an example
|
||||
@@ -341,7 +345,8 @@ Otherwise loop:
|
||||
|
||||
1. **Categorize the failing check** from `scorecard.json` and route:
|
||||
- `install` / `static_checks`, dependency or import fix.
|
||||
- `unit_tests`, wiring or assertion fix.
|
||||
- `unit_tests_flag_on`, wiring or assertion fix. (`unit_tests_flag_off`
|
||||
failing is the non-invasiveness case below.)
|
||||
- `smoke_test`, API key or SDK call-shape fix.
|
||||
- `e2e_test`, recipe, flag-wiring, or integration-point fix.
|
||||
- **Pre-existing test failure** (test skill exit code 7,
|
||||
@@ -351,7 +356,7 @@ Otherwise loop:
|
||||
|
||||
2. **Spawn a remediation subagent** with fresh context. Inputs: `plan.md`,
|
||||
`goal.md`, `scorecard.md`, `scorecard.json`, the last committed diff, and
|
||||
the relevant log for the failing category (`test-stdout.log` /
|
||||
the relevant log for the failing category (`test-stdout-flag-on.log` /
|
||||
`smoke-stdout.log` / `e2e-app.log` / `e2e-calls.log`). Use the remediation
|
||||
prompt in [`subagent-prompts.md`](subagent-prompts.md) verbatim.
|
||||
|
||||
|
||||
@@ -31,7 +31,8 @@ so paraphrasing them drops constraints the review step then has to catch.
|
||||
6. Preserve everything listed under plan.md's "Preserved behavior"
|
||||
and "Coexistence."
|
||||
7. Lazy client construction. `MemoryClient()` validates the API
|
||||
key in `__init__` (it makes a network call). Never instantiate
|
||||
key in `__init__` (Python pings the API; TS throws on a missing
|
||||
or blank key and pings in the background). Never instantiate
|
||||
it at module-import time, construct on first use inside the
|
||||
request / handler path. The same rule applies to OSS `Memory()`,
|
||||
which can eagerly initialize embedding and LLM providers. Use
|
||||
|
||||
Reference in New Issue
Block a user