Persistent memory and human approval for any AI agent — one API, any model, MCP-native.
This skill connects your agent to the AgentMemo cloud API ( api.agentmemo.net) to store and retrieve memories and request human approvals. Your agent's memory content is sent to and stored on AgentMemo's servers.
AGENTMEMO_API_KEY in your OpenClaw environmentapi.agentmemo.net over HTTPS. You own your data and can delete it at any time.agentmemo-mcp npm package is only needed for MCP client setups (Claude Desktop, Cursor, etc.) — not required for REST/SDK useIf you prefer fully local memory, this skill is not for you. If you're comfortable with a cloud API (like you'd use for any other SaaS tool), read on.
AgentMemo solves the two biggest pain points of autonomous AI agents:
npm install agentmemo for TypeScript/JavaScript projectsSign up at agentmemo.net → free tier, instant access.
Add to your MCP config ( claude_desktop_config.json or equivalent):
json
{
"mcpServers": {
"agentmemo": {
"command": "npx",
"args": ["agentmemo-mcp"],
"env": {
"AGENTMEMO_API_KEY": "your_api_key_here"
}
}
}
}
That's it. Your agent now has remember, recall, forget, request_approval, and check_approval tools.
Set your API key in OpenClaw config or workspace env:
bash
AGENTMEMO_API_KEY=am_your_key_here
AGENTMEMO_API_URL=https://api.agentmemo.net
Then reference this skill in your agent instructions — see Usage below.
bash
# Store a memory
curl -X POST https://api.agentmemo.net/memories \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"content": "User prefers dark mode and compact layouts", "namespace": "preferences"}'
# Search memories
curl "https://api.agentmemo.net/memories/search?q=user+preferences&namespace=preferences" \
-H "X-API-Key: YOUR_KEY"
# Request human approval
curl -X POST https://api.agentmemo.net/approve \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"action": "Send email to client@example.com", "context": "Draft is ready for review"}'
bash
npm install agentmemo
typescript
import AgentMemo from 'agentmemo';
const memo = new AgentMemo({ apiKey: process.env.AGENTMEMO_API_KEY });
// Store a memory
await memo.memories.store({
content: 'Project deadline is March 31st',
namespace: 'project-alpha'
});
// Search memories
const results = await memo.memories.search('deadline', { namespace: 'project-alpha' });
// Request human approval
const approval = await memo.approvals.request({
action: 'Delete 500 old log files',
context: 'Freeing up 2GB disk space'
});
When this skill is active, use AgentMemo to:
Save important context that should persist across sessions:
text
Remember: [something worth keeping]
Namespace: [project/user/agent — optional, default is "default"]
Use POST /memories with your AGENTMEMO_API_KEY.
Before starting any task, search for relevant prior context:
text
Recall: [what you're looking for]
Use GET /memories/search?q=QUERY&namespace=NAMESPACE.
Before any sensitive or irreversible action, request human approval:
text
Request approval for: [action description]
Context: [why this needs doing]
Use POST /approve. Poll GET /approve/:id or set a callback_url webhook.
Base URL: https://api.agentmemo.net
Auth: X-API-Key: YOUR_KEY header on all requests.
MethodEndpointDescriptionPOST``/memoriesStore a memoryGET``/memories/searchSemantic search across memoriesGET``/memories/:idRetrieve memory by IDDELETE``/memories/:idDelete a memoryGET``/usageCheck usage stats and limitsPOST``/approveSubmit action for human approvalGET``/approve/:idPoll approval status
json
{
"content": "string (required)",
"namespace": "string (optional, default: 'default')",
"metadata": {}
}
Returns { id, namespace, content, metadata, created_at }.
Query params: q (required), namespace (optional), limit (optional, max 50).
Returns { query, namespace, count, results: [{ id, content, score, metadata, created_at }] }.
json
{
"action": "string (required) — what the agent wants to do",
"context": "string (optional) — background/reasoning",
"callback_url": "string (optional) — webhook for decision notification"
}
Returns { id, status: 'pending', ... }.
Returns { id, status: 'pending'|'approved'|'rejected', decision_at, ... }.
When using the MCP server ( npx agentmemo-mcp), your agent gets these tools:
ToolDescriptionrememberStore a memoryrecallSearch stored memoriesforgetDelete a memory by IDlist_memoriesList recent memories in a namespacerequest_approvalSubmit action for human reviewcheck_approvalPoll approval status
PlanPriceMemoriesSearches/dayFree$010,000100Starter$19/mo250,0001,000Pro$99/mo2,000,00010,000Team$499/moUnlimitedUnlimited