Conversation
There was a problem hiding this comment.
Some questions and requests:
- Please write a User Guide, which would be very helpful for describing the steps needed to install, configure, and use this.
- Does a user need a MemMachine Platform account and an API key for this to work, or do we expect them to have MemMachine Server running locally? Or both?
- How should this be distributed? (aka, how does a user install this in their environment?)
- Do we need to build and publish a separate/dedicated NPM package?
- Is
/srcthe best place for this, or should it live in/integrations?
Thanks.
|
Hi @malatewang, thanks for working on this. In addition to @sscargal's comment. It would be helpful if the commit message contains more useful description rather than a single line message. |
ce80999 to
db44996
Compare
sscargal
left a comment
There was a problem hiding this comment.
Mostly clarifications.
Should we consider adding some tests?
| @@ -0,0 +1,28 @@ | |||
| ## Setup | |||
There was a problem hiding this comment.
Can you add an Introduction that explains what this plugin is, what it does, and how it works? It'll help users better understand what we're offering. We should include a prerequisite that users need an API Token and a free account on our MemMachine platform (See below for instructions)
Assume the reader knows nothing about MemMachine and write accordingly.
This README.md becomes the package README when published, so it needs to contain more information for the users to follow. See https://www.npmjs.com/package/@openclaw/voice-call?activeTab=readme for an example.
| ## Setup | ||
|
|
||
| ```bash | ||
| openclaw plugins install @memmachine/openclaw-memmachine |
There was a problem hiding this comment.
This installation method assumes there is a published NPM package on npmjs.com, but I don't see anywhere that we publish this package to npmjs.com using the openclaw-memmachine package name within the memmachine organization. I expect to see a GitHub Actions Workflow file that publishes the package.
Once this PR is approved and merged, and the package is published, we should have a publicly available package at https://www.npmjs.com/package/@memmachine/openclaw-memmachine.
We have other packages published to the @memmachine org, such as https://www.npmjs.com/package/@memmachine/n8n-nodes-memmachine.
https://docs.openclaw.ai/tools/plugin#cli lists many options for installing plugins. I agree that the NPM approach is the best and easiest for users.
We should recommend that the user verify the plugin is installed successfully using openclaw plugins list.
integrations/openclaw/README.md
Outdated
| "baseUrl": "https://api.memmachine.ai", | ||
| "autoCapture": true, | ||
| "autoRecall": true, | ||
| "orgId": "openclaw", |
There was a problem hiding this comment.
Do we need the user to provide this value during initial setup/config, or is openclaw the default?
There was a problem hiding this comment.
This is configured on UI
There was a problem hiding this comment.
Thanks for the clarification. Suggest we update the documentation to provide guidance and the necessary steps and fields that are mandatory vs optional to help the user.
integrations/openclaw/README.md
Outdated
| "autoCapture": true, | ||
| "autoRecall": true, | ||
| "orgId": "openclaw", | ||
| "projectId": "openclaw", |
There was a problem hiding this comment.
Do we need the user to provide this value during initial setup/config, or is openclaw the default?
There was a problem hiding this comment.
Need user configuration
integrations/openclaw/README.md
Outdated
| "projectId": "openclaw", | ||
| "searchThreshold": 0.5, | ||
| "topK": 5, | ||
| "userId": "openclaw" |
There was a problem hiding this comment.
Do we need the user to provide this value during initial setup/config, or is openclaw the default?
| return jsonResult({ action: "candidates", candidates }); | ||
| }, | ||
| }), | ||
| { name: "memory_forget" }, |
There was a problem hiding this comment.
Should this be memory_delete? The other tools use the same names for both. Here, we register the tool with memory_delete, then use memory_forget.
| "@sinclair/typebox": "^0.34.48", | ||
| "jiti": "^2.6.1", | ||
| "openclaw": "^2026.2.6", | ||
| "pnpm": "^10.29.2" |
There was a problem hiding this comment.
Do we need pnmp? This package is so small that we're unlikely to benefit from it. It would reduce the dependency count by 1, likely reducing the package's disk space. pnpm has a large dependency that inflates the storage required for this package. This is more of a curiosity than a hard requirement, so removing it is not a hard requirement. If we do need it, then there's no problem.
Recommendation - pick npm or pnpm; We don’t ship both package-lock.json and pnpm dependency
integrations/openclaw/README.md
Outdated
|
|
||
| ### Platform (MemMachine Cloud) | ||
|
|
||
| Get an API key from [MemMachine Cloud](https://console.memmachine.ai), then add to your `openclaw.json`: |
There was a problem hiding this comment.
If the only requirement is to have the user enter their apikey, perhaps clarifying that they can copy/paste this snippet into their existing openclaw.json would be helpful. I assume/understand that all the required orgId, projectId, and owner fields would then default to openclaw. Is the user free to change this in the JSON or plugin config?
There was a problem hiding this comment.
I think it is easier to configure on UI?
There was a problem hiding this comment.
Likely, yes. Supporting the UI and 'manual' methods is okay with me
- If the user needs to copy/paste the JSON snippet anyway, including this 'manual' method is fine.
- If the user doesn't need to copy/paste into their master
openclaw.json, then documenting the UI approach is better.
There was a problem hiding this comment.
Not necessary. I think once the npm is installed, the entry is added automatically to the openclaw.json and it is disabled. The user just need to fill the value.
| } | ||
| }, | ||
|
|
||
| ``` |
There was a problem hiding this comment.
We should mention that this information could also be entered in the OpenClaw Plugins UI (as shown in your screenshot).
sscargal
left a comment
There was a problem hiding this comment.
We could consider whether it's worth moving this to a dedicated repository. It may be easier to maintain and version control independently. Just an idea, not a request.
integrations/openclaw/README.md
Outdated
|
|
||
| ```bash | ||
| openclaw plugins install ./memmachine/openclaw | ||
| cd ./memmachine/openclaw && pnpm install |
There was a problem hiding this comment.
Should the memmachine/openclaw directory not be integrations/openclaw?
There was a problem hiding this comment.
We could use https://www.npmjs.com/package/@supermemory/openclaw-supermemory as a guiding flow for this README.
There was a problem hiding this comment.
Should we consider if a slash command or CLI is necessary, similar to SuperMemory?
There was a problem hiding this comment.
We do support CLI commands. I updated the README
There was a problem hiding this comment.
Should we consider if a slash command or CLI is necessary, similar to SuperMemory?
9f454b0 to
111e528
Compare
Tianyang-Zhang
left a comment
There was a problem hiding this comment.
I see the memmachine API Key have some usage limits. Can't I use my own OpenAI API keys and AWS reranker key?
The API key is for MemMachine platform. It is required only if you use the platform. |
Purpose of the change
Add a plugin for openclaw so that openclaw can use MemMachine as longterm memory
Description
Add a plugin for openclaw for MemMachine. The openclaw can access MemMachine through the MemMachine Typescript rest client to store and search memory.
Fixes/Closes
Fixes #(issue number)
Type of change
[Please delete options that are not relevant.]
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.
[Please delete options that are not relevant.]
Test Results: [Attach logs, screenshots, or relevant output]
Checklist
[Please delete options that are not relevant.]
Maintainer Checklist
Screenshots/Gifs
[If applicable, add screenshots or GIFs that show the changes in action. This is especially helpful for API responses. Otherwise, delete this section or type "N/A".]
Further comments
[Add any other relevant information here, such as potential side effects, future considerations, or any specific questions for the reviewer. Otherwise, type "None".]