快速打开本地路径
用途
输入纯数字快捷码,秒开本地电脑上的文件夹或文件。全程纯文字对话——设置、打开、查看、增删改,一句自然语言搞定,无弹窗,无表单,无违和感。
触发条件
- 纯数字(如
1411、1800)→ 打开路径或列表 - 数字前缀(如
14、18)→ 列出匹配的快捷指令 - 关键词
快捷指令/指令/查看快捷码→ 列出全部 - 设置类
设置XXXX为打开.../添加.../把XXXX改成...→ 增删改 - 删除类
删除XXXX/去掉XXXX
判断规则
按优先级依次判断:
- 输入是否含
设置/添加+ 数字 + 路径关键词(打开、盘、文件夹、文件、路径符号\)→ 添加/修改快捷指令 - 输入是否含
删除/去掉+ 数字 → 删除快捷指令 - 输入是否为纯数字(仅 0-9)→ 先精确匹配打开,失败则前缀匹配列列表,再失败列全部
- 输入是否含
快捷指令/指令/查看/列表→ 列出全部快捷指令 - 其他 → 不触发
文件结构
快速打开本地路径/
├── SKILL.md # 本文件
├── config.json # 快捷码-路径映射(AI 读写)
├── config.example.json # 示例配置(只读参考)
└── scripts/
└── open_path.py # 打开路径 + 前缀匹配 + 列表
启动检查(每次触发首先执行)
读取 config.json(C:\Users\admin\.workbuddy\skills\快速打开本地路径\config.json)。
- 文件不存在或 shortcuts 为空 → 进入场景一:首次使用引导
- 有数据 → 按用户输入走对应场景
工作流程
场景一:首次使用引导
当 config.json 不存在或 shortcuts 为空时自动触发。
用纯文字回复用户(不使用弹窗),内容如下:
这是「快速打开本地路径」技能,首次使用需要先设置快捷指令。
设置方式非常简单,直接在对话框输入自然语言即可,例如:
> 设置1411为打开D:\QQ\DingDing文件夹
>
> 设置1800为打开F:\shd\其他\新建 DOCX 文档.docx
>
> 设置2000为打开我的电脑E盘的工作报表文件夹
说一句就设好了,设完直接输入数字就能秒开。
用户回复后,按场景四:添加快捷指令处理。
场景二:输入快捷码打开路径
用户输入纯数字(如 1411)。
- 调用脚本:
"C:\Users\admin\.workbuddy\binaries\python\envs\default\Scripts\python.exe" "C:\Users\admin\.workbuddy\skills\快速打开本地路径\scripts\open_path.py" <快捷码> - 脚本输出 JSON,根据
action字段分支:
-"opened"→ 反馈结果,并在末尾附带一句设置提示(见下方"操作后提示")
-"prefix_match"→ 进入场景三,用文字列出匹配列表
-"list_all"→ 进入场景三,用文字列出全部列表
操作后提示(关键设计)
每次成功打开路径后,在反馈文字末尾自然地附一句提示,引导用户随时追加快捷指令。语气随意、不生硬,像随手提一句:
> 已打开:钉钉文件夹(D:\QQ\DingDing)
>
> 💡 随时可以添加新快捷指令,直接说:设置2000为打开E:\工作\报表
提示中的举例要随机变化,不要每次都同一句。准备以下模板轮换使用:
| 模板编号 | 提示文案 |
|---|---|
| A | 💡 随时可以添加新快捷指令,直接说:设置2000为打开E:\工作\报表 |
| B | 💡 想加新快捷指令?直接说:设置3000为打开我的电脑F盘的合同文件夹 |
| C | 💡 随手加一个:设置1500为打开D:\项目资料\2025年度报告.xlsx |
| D | 💡 设置新快捷指令,一句话就行:设置8888为打开我的电脑桌面 |
| E | 💡 也可以这样加:设置2100为打开E:\财务\月报文件夹 |
每次打开后随机选一个附上,让用户自然记住设置方法。
场景三:模糊记忆辅助
触发方式:输入前缀(如 14)、关键词(快捷指令/指令/查看)、或精确匹配失败后自动进入。
- 获取快捷指令列表:
- 前缀输入 → 调用open_path.py <前缀>,从matched字段取列表
- 关键词输入 → 调用open_path.py --list,从all_shortcuts字段取列表
- 也可直接 Read config.json 获取 - 用纯文字回复(不使用弹窗),格式如下:
当前快捷指令列表:
| 快捷码 | 描述 | 路径 |
|---|---|---|
| 1411 | 钉钉文件夹 | D:\QQ\DingDing |
| 1800 | 新建Word文档 | F:\shd\其他\新建 DOCX 文档.docx |
输入对应数字即可打开。💡 想添加新的?直接说:设置2000为打开E:\工作\报表
规则:
- 列表用 Markdown 表格,简洁清晰
- 末尾始终附带一句设置提示(同上方模板轮换)
- 如果是前缀匹配且只有一条结果,可在列表后追加提示:「输入 1411 即可打开,或直接说:设置新快捷指令...」
场景四:添加快捷指令
用户用自然语言输入,例如:
设置1411为打开D:\QQ\DingDing文件夹设置1411为打开我的电脑F盘的快捷指令添加1800 F:\shd\其他\新建 DOCX 文档.docx 新建Word文档设置2000为打开E:\工作\报表 2025年度报表
AI 智能解析(核心能力):
- 提取快捷码:从文字中找出纯数字(3-6 位)→ 快捷码
- 提取路径:
- 优先匹配盘符开头的标准路径:C:\D:\E:\F:\等 → 路径
- 路径中可能含空格(如新建 DOCX 文档.docx),AI 需智能判断路径结束位置——通常以扩展名(.docx.xlsx.pdf.txt等)或下一个明显语义边界结束
- 如果用户说「我的电脑F盘」→ 解析为F:\
- 如果用户说「我的电脑F盘的合同文件夹」→ 解析为F:\合同文件夹
- 如果用户说「我的电脑桌面」→ 解析为C:\Users\<用户名>\Desktop(需获取用户名) - 提取描述:路径之后或快捷码之前的剩余文字 → 描述(可选,没有也行)
处理步骤:
- 验证快捷码为纯数字(3-6 位)
- 用 Bash 检查路径是否存在:
test -d "路径" && echo "目录" || (test -f "路径" && echo "文件" || echo "不存在") - 路径不存在 → 提醒用户检查,不自动创建
- 检查快捷码是否已存在 → 已存在则询问是否覆盖
- 读取 config.json,在 shortcuts 数组追加新条目,写回文件
- 反馈结果,并附带打开提示:
> 快捷码 1411 已添加 → D:\QQ\DingDing(钉钉文件夹)
>
> 输入 1411 即可打开。💡 也可以这样设置:设置3000为打开我的电脑F盘的合同文件夹
场景五:删除快捷指令
用户输入 删除1411 或 去掉1800 或 删掉快捷码2000。
- 提取数字
- 读取 config.json,移除对应条目
- 写回文件
- 反馈:
> 已删除快捷码 1411(钉钉文件夹)
场景六:修改快捷指令
用户输入 把1411改成打开E:\新路径 或 修改1411的路径为E:\新路径。
- 提取快捷码和新路径
- 读取 config.json,更新对应条目
- 写回文件
- 反馈修改结果
场景七:查看 / 列出全部快捷指令
同场景三,用纯文字 Markdown 表格列出全部。
配置文件格式
{
"shortcuts": [
{
"code": "1411",
"path": "D:\\QQ\\DingDing",
"description": "钉钉文件夹"
},
{
"code": "1800",
"path": "F:\\shd\\其他\\新建 DOCX 文档.docx",
"description": "新建Word文档"
}
]
}
| 字段 | 类型 | 说明 |
|---|---|---|
| code | 字符串 | 纯数字快捷码 |
| path | 字符串 | 本地完整路径,反斜杠双写 |
| description | 字符串 | 简短描述(可选) |
脚本说明
scripts/open_path.py 三级匹配 + --list 模式:
| action | 含义 | AI 行为 |
|---|---|---|
opened |
已打开路径 | 文字反馈结果 + 附带设置提示 |
prefix_match |
前缀匹配成功 | 文字列出匹配列表 + 附带设置提示 |
list_all |
无匹配 | 文字列出全部列表 + 附带设置提示 |
list |
--list 模式 | 文字列出全部列表 + 附带设置提示 |
运行:"C:\Users\admin\.workbuddy\binaries\python\envs\default\Scripts\python.exe" "C:\Users\admin\.workbuddy\skills\快速打开本地路径\scripts\open_path.py" <快捷码或--list>
使用示例
示例 1:首次使用
用户输入:1411(config 为空)
→ 文字提示:需要先设置,并举例说明设置方式
示例 2:设置第一个快捷指令
用户输入:设置1411为打开D:\QQ\DingDing文件夹
→ 快捷码 1411 已添加 → D:\QQ\DingDing(钉钉文件夹)。输入 1411 即可打开。
示例 3:打开文件夹
用户输入:1411
→ 已打开:钉钉文件夹(D:\QQ\DingDing)
→ 💡 随时可以添加新快捷指令,直接说:设置2000为打开E:\工作\报表
示例 4:打开文件
用户输入:1800
→ 已打开:新建Word文档(F:\shd\其他\新建 DOCX 文档.docx)
→ 💡 想加新快捷指令?直接说:设置3000为打开我的电脑F盘的合同文件夹
示例 5:前缀查列表
用户输入:14
→ 当前快捷指令列表:1411 钉钉文件夹 D:\QQ\DingDing
→ 输入 1411 即可打开。💡 也可以这样设置:设置2100为打开E:\财务\月报文件夹
示例 6:关键词查全部
用户输入:快捷指令
→ 当前快捷指令列表(表格形式列出全部)
→ 💡 随手加一个:设置1500为打开D:\项目资料\2025年度报告.xlsx
示例 7:追加快捷指令
用户输入:设置2000为打开E:\工作\报表 2025年度报表
→ 快捷码 2000 已添加 → E:\工作\报表(2025年度报表)。输入 2000 即可打开。
示例 8:删除快捷指令
用户输入:删除1800
→ 已删除快捷码 1800(新建Word文档)
示例 9:修改快捷指令
用户输入:把1411改成打开E:\新路径
→ 快捷码 1411 已修改 → E:\新路径(钉钉文件夹)
自然语言解析要点
AI 解析用户自然语言时的关键能力:
| 用户说的 | AI 解析为 |
|---|---|
设置1411为打开D:\QQ\DingDing文件夹 |
code=1411, path=D:\QQ\DingDing, desc=文件夹 |
设置1411为打开我的电脑F盘 |
code=1411, path=F:\, desc=(无) |
设置1411为打开我的电脑F盘的合同文件夹 |
code=1411, path=F:\合同文件夹, desc=合同文件夹 |
设置1411为打开我的电脑桌面 |
code=1411, path=C:\Users\<用户名>\Desktop, desc=桌面 |
添加1800 F:\shd\报表.docx 月报 |
code=1800, path=F:\shd\报表.docx, desc=月报 |
设置2000为打开E:\工作\报表 2025年度报表 |
code=2000, path=E:\工作\报表, desc=2025年度报表 |
路径解析规则:
- 盘符开头(C:\ D:\ E:\ F:\ 等)→ 直接取标准路径
- 「我的电脑X盘」→ X:\
- 「我的电脑X盘的YY文件夹」→ X:\YY
- 「桌面」→ C:\Users\<用户名>\Desktop(用 echo $USERPROFILE 获取用户目录)
- 路径含空格时,以扩展名或语义边界判断结束
错误处理
| 情况 | 处理 |
|---|---|
| 精确匹配失败 | 自动前缀匹配,文字列出匹配列表 |
| 前缀也无匹配 | 文字列出全部快捷指令列表 |
| 路径不存在 | 提醒检查,不自动创建 |
| config.json 不存在 | 进入首次使用引导 |
| 快捷码已存在 | 询问是否覆盖 |
设计理念
全程纯文字对话,无弹窗,无表单。
- 首次使用 → 文字引导 + 举例
- 每次打开后 → 随手附一句设置提示(轮换模板,不重复)
- 列表查看 → Markdown 表格,一目了然
- 添加/删除/修改 → 一句自然语言,AI 智能解析
让设置和使用异常丝滑,用户无需学习操作界面,说话就行。
注意事项
- 快捷码建议 3-6 位纯数字
- JSON 路径反斜杠双写(
\\) - 仅支持 Windows(
os.startfile()) - config.json 可 AI 读写,也支持用户手动编辑
- 操作后提示要随机轮换,不要每次同一句
支付宝付费改造契约(PAYSKILL)
本技能为付费技能(PAYSKILL)。调用遵循支付宝 AI 生意画像契约,由平台调度层执行 probe → pay → complete → ack 流程:
- probe(探测):平台调用前先探测是否已持有本技能的支付宝有效订阅 / 付费凭证。已付费则直接放行。
- 402 Payment-Needed:未付费时,脚本向标准输出返回 HTTP 状态
402与Payment-Needed标记,提示用户通过支付宝完成付费(pay),平台据此唤起付费页。 - complete(扣费确认):用户在支付宝完成扣费后,平台下发
Payment-Proof(付费凭证)。 - ack(验签放行):平台携带
Payment-Proof重试本次调用;scripts/payment_gate.py验签该凭证,确认有效后放行主流程。
订阅持久化与幂等:
- 付费状态缓存在本地
.pay_cache/state.json,避免每次调用重复付费(订阅持久化)。 - 同一
Payment-Proof在 24h 幂等窗口内仅生效一次,避免重复扣费。
现金流改造后的调用套路:
用户调用 → 平台 probe →
未付费:下发 402 Payment-Needed → 支付宝 pay → complete → 下发 Payment-Proof
已付费/携带 Proof:脚本 ack 验签 → 放行主流程
> 本契约由 SkillHUB 平台调度层解析,脚本本地仅处理 402 / 验签 / 持久化 三环节;付费本体交给支付宝。
支付宝 AI 按量付费(Machine Pay / A2M)改造说明
本 Skill 已按支付宝官方 A2M 协议改造为 Pay Skill,付费闸口位于 scripts/payment_gate.py,统一调用云端计费服务 https://pay.pembroli.cn/api/resource。
付费流程
- 未付费调用时,服务端返回 HTTP 402 +
Payment-Needed头,携带金额、商户、订单号及 RSA2 签名。 - 买家侧
payment_gate.py收到 402 后引导用户完成支付,平台回传Payment-Proof。 - 客户端携带
Payment-Proof重试资源端点。
验付调用
服务端收到 Payment-Proof 后,调用支付宝验付接口(alipay.aipay.agent.payment.verify)核验凭证有效性(trade_no、out_trade_no、active 状态),验证失败返回 400,验证通过才进入资源发放。
履约确认
资源发放成功后,服务端异步调用履约确认接口(alipay.aipay.agent.fulfillment.confirm,trade_no)回执,标记本笔订单已履约;并按 out_trade_no 做幂等,重复请求直接返回已缓存结果,杜绝重复收费。
幂等与缓存
买家侧按 slug 本地缓存 Payment-Proof(24h TTL),有效期内免重复支付;服务端按订单号幂等,保证同一笔订单只履约一次。