Wardn Hub
MCP ServersSkillsCategoriesAPI docsSubmit server
Submit server
Wardn HubTrusted MCP server directory.

Registry

  • MCP Servers
  • Skills
  • Categories

Resources

  • API docs
  • Score method

Contribute

  • Submit server
  • Advertise
© 2026 Wardn Hub
Wardn Hub
MCP ServersSkillsCategoriesAPI docsSubmit server
Submit server
skills/LeoYeAI/openclaw-master-skills/amemo-skill-modules-amemo-save-memo

amemo-skill-modules-amemo-save-memo

1
LeoYeAI/openclaw-master-skills·Knowledge & Memory·Audit pending·Snapshot 82b7808ee60d

Summary

This source did not publish a separate summary. Review SKILL.md before using the skill.

SKILL.md

amemo-save-memo — 保存备忘录


接口信息

属性值
路由POST https://skill.amemo.cn/save-memo
BeanMemoBean
Content-Typeapplication/json

请求参数

⚠️ 服务端要求所有字段必须存在。userToken、memoTitle、memoContent 必填且有值,memoId 可选但字段必须存在。

参数类型必填说明
userTokenstr✅用户登录凭证
memoIdstr—备忘录 ID(新建传 null,更新时传入已有 ID)
memoTitlestr✅备忘录标题(不能为空)
memoContentstr✅备忘录内容(不能为空)

请求示例

# 新建备忘录
curl -X POST https://skill.amemo.cn/save-memo \
  -H "Content-Type: application/json" \
  -d '{
    "userToken": "<token>",
    "memoId": null,
    "memoTitle": "开会记录",
    "memoContent": "讨论了Q2计划"
  }'

# 更新备忘录(传入已有 memoId)
curl -X POST https://skill.amemo.cn/save-memo \
  -H "Content-Type: application/json" \
  -d '{
    "userToken": "<token>",
    "memoId": "123456",
    "memoTitle": "开会记录",
    "memoContent": "更新了内容"
  }'

响应示例

{
  "code": 200,
  "desc": "success",
  "data": {
    "memoId": "abc123"
  }
}

响应解析

字段类型说明
codeint状态码,200 表示成功
descstr状态描述
data.memoIdstr保存成功后返回的备忘录 ID,必须提取并保存到当前对话上下文 lastMemoId,用于后续更新操作

注意事项

📌 字段要求:所有字段必须存在,即使不传值也要传 null

📝 新建 vs 更新:新建时 memoId 传 null,更新时传入已有 memoId

🔐 认证要求:必须携带有效的 userToken


执行流程(由主模块调度)

内容提取规则

触发词去除规则: 从用户消息中移除"帮我记一下/保存笔记/记下这一条/记录笔记/保存备忘"等触发词,保留核心内容。

用户输入userContent
"帮我记一下这家火锅店味道很不错""这家火锅店味道很不错"
"保存笔记:今天开会讨论了Q2计划""今天开会讨论了Q2计划"

说明:

  • userContent:用户上一条消息去除触发词后的核心内容
  • aiContent:AI 助手上一条回复(完整保留)
  • 如果去除触发词后内容为空,则使用完整的用户消息作为 userContent

新建 vs 更新模式判断

判断逻辑:

1. 当前对话上下文中是否存在 lastMemoId?
   ├── 不存在 → 【新建模式】,跳到步骤 5
   └── 存在 → 进入意图指向判断

2. 意图指向判断(当 lastMemoId 存在时):
   • 用户当前消息是否对刚才保存的内容提出改动要求
   • 当前消息内容是否与 lastMemoTitle 主题相关
   └── 判断结果:
       ├── 指向刚才的笔记 → 【更新模式】,携带 lastMemoId
       └── 是全新内容 → 【新建模式】,清除 lastMemoId

意图指向判断规则

更新类信号词(指向刚才的笔记,将修改后的内容替换原文)

信号词示例
补充"补充一下刚才的笔记"
加上"再加上XXX"
修改"修改为XXX"
更新"更新一下笔记"
还有"还有一点要补充"
另外"另外还需要记录"
补充说明"补充说明一下"
遗漏"刚才漏了一条"
忘了"忘了说XXX"
换成"把XXX换成YYY"
改成"改成XXX"

新建类信号(创建新笔记)

信号词示例
新笔记"保存一条新笔记"
另一个"再记一个XXX"
主题明显不同上一个是"旅行攻略",现在说"做饭"

模糊场景处理

当无法明确判断时:

  • 用户消息与 lastMemoTitle 主题明显不同 → 新建
  • 用户消息与 lastMemoTitle 主题相关,且包含更新信号 → 更新
  • 用户消息主题相关但无明确信号 → 询问用户确认
🤔 您是想:
• 更新刚才的笔记「{lastMemoTitle}」
• 还是保存为一条新笔记?

笔记内容整理

模式memoContent 格式
新建模式"{userContent}\n\n【AI】\n{aiContent}"
更新模式"{修改后的完整内容}"

更新模式:将用户改动后的完整对话内容作为新内容,直接替换原始笔记内容


标题生成规则

  1. 提取用户消息中最核心的名词/动词
  2. 限制在 20 字以内
  3. 去除:助词、语气词、疑问词
  4. 更新模式下保留 lastMemoTitle
用户输入生成标题
"感冒了应该吃什么药""感冒用药建议"
"帮我记一下今天开会的内容""今日开会记录"
"红烧肉怎么做才好吃""红烧肉做法"

执行步骤汇总

1. 识别触发词(保存笔记/记下/记录)
    ↓
2. 检查 userToken 是否存在
    ├── 无 token → 引导登录流程
    ↓
3. 提取对话内容(userContent + aiContent)
    ↓
4. 判断新建还是更新
    ├── 新建模式:memoId = null
    └── 更新模式:memoId = lastMemoId
    ↓
5. 整理笔记内容
    ↓
6. 生成 memoTitle
    ↓
7. 调用 POST /save-memo 接口
    ↓
8. 保存返回的 memoId 到当前对话上下文(lastMemoId)
    ↓
9. 返回结果

回复模板

新建成功

✅ 已保存笔记:「{memoTitle}」

更新成功

✅ 已更新笔记:「{memoTitle}」(内容已替换)

失败

❌ 保存失败,请重试

对话上下文维护

需维护的状态(当前对话期间有效)

字段说明
lastMemoId最近一次保存的笔记 ID
lastMemoTitle最近一次保存的笔记标题
lastTaskId最近一次保存的任务 ID

追踪时机

  • 每次调用 amemo-save-memo 成功后,提取 memoId 并更新 lastMemoId
  • 用户切换到完全不同的话题时,自动清除 lastMemoId 和 lastTaskId

Related skills

homeassistant-skillgit-commitfinancial-analysis-agentk8s-fta-skillui-design