快速打开本地路径
用途
输入纯数字快捷码,秒开本地应用(微信、钉钉等)或在指定浏览器中打开网页。全程纯文字对话——设置、打开、查看、增删改,一句自然语言搞定。每次操作后自动列出全部快捷指令,方便随时对照,无弹窗,无表单,无违和感。
触发条件
- 纯数字(如
1411、1800、2000)→ 打开应用/网页或列表 - 数字前缀(如
14、18、20)→ 列出匹配的快捷指令 - 关键词
快捷指令/指令/查看快捷码/快捷码→ 列出全部 - 设置类
设置XXXX为打开.../添加.../把XXXX改成...→ 增改 - 删除类
删除XXXX/去掉XXXX
判断规则
按优先级依次判断:
- 输入是否含
设置/添加+ 数字 + 动作关键词(打开、浏览器、Edge、Chrome、访问)→ 添加/修改快捷指令 - 输入是否含
删除/去掉+ 数字 → 删除快捷指令 - 输入是否为纯数字(仅 0-9)→ 先精确匹配打开,失败则前缀匹配列列表,再失败列全部
- 输入是否含
快捷指令/指令/查看/列表→ 列出全部快捷指令 - 其他 → 不触发
文件结构
快速打开本地路径/
├── SKILL.md # 本文件
├── config.json # 快捷码映射配置(AI 读写)
├── config.example.json # 示例配置(只读参考)
└── scripts/
└── open_path.py # 打开应用/网页 + 前缀匹配 + 列表
启动检查(每次触发首先执行)
读取 config.json(C:\Users\admin\.workbuddy\skills\快速打开本地路径\config.json)。
- 文件不存在或 shortcuts 为空 → 进入场景一:首次使用引导
- 有数据 → 按用户输入走对应场景
核心规则:每次操作后列出全部快捷指令
任何操作(打开、添加、删除、修改)完成后,AI 必须在回复末尾列出当前全部快捷指令的 Markdown 表格,格式如下:
当前全部快捷指令:
| 快捷码 | 类型 | 描述 | 目标 |
|--------|------|------|------|
| 1411 | 应用 | 微信 | WeChat |
| 1800 | 应用 | 钉钉 | DingTalk |
| 2000 | 网页 | 山东省电子税务局 | msedge → https://... |
- "目标"列:应用显示可执行名,网页显示"浏览器 → URL"
- 表格前加一句自然的过渡语,如"当前全部快捷指令:"、"目前已设置的快捷指令:"、"📋 快捷指令清单:"
- 表格后附带一句设置提示(轮换模板,见下方)
工作流程
场景一:首次使用引导
当 config.json 不存在或 shortcuts 为空时自动触发。
用纯文字回复用户(不使用弹窗),内容如下:
这是「快速打开本地路径」技能,首次使用需要先设置快捷指令。支持两种类型:
- 打开应用:输入数字直接打开本地应用
- 打开网页:输入数字用浏览器打开指定网页
设置方式非常简单,直接在对话框输入自然语言即可,例如:
> 设置1411为打开微信
>
> 设置1800为打开钉钉
>
> 设置2000为打开Microsoft Edge浏览器并打开山东省电子税务局
说一句就设好了,设完直接输入数字就能秒开。
用户回复后,按场景四:添加快捷指令处理。
场景二:输入快捷码打开应用/网页
用户输入纯数字(如 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"→ 进入场景三
打开成功后的回复模板:
> 已打开:微信(应用)
>
> 当前全部快捷指令:
> | 快捷码 | 类型 | 描述 | 目标 |
> |--------|------|------|------|
> | 1411 | 应用 | 微信 | WeChat |
> | 1800 | 应用 | 钉钉 | DingTalk |
> | 2000 | 网页 | 山东省电子税务局 | msedge → https://... |
>
> 💡 随时可以添加新快捷指令,直接说:设置3000为打开Microsoft Edge浏览器并打开淘宝
操作后提示模板(轮换使用):
| 编号 | 提示文案 |
|---|---|
| A | 💡 随时添加新快捷指令,直接说:设置3000为打开Microsoft Edge浏览器并打开淘宝 |
| B | 💡 想加新快捷指令?直接说:设置4000为打开Chrome浏览器并访问百度 |
| C | 💡 随手加一个:设置5000为打开QQ |
| D | 💡 设置新快捷指令,一句话就行:设置6000为打开企业微信 |
| E | 💡 也可以这样加:设置7000为打开Microsoft Edge浏览器并打开金蝶云 |
每次操作后随机选一个附上。
场景三:模糊记忆辅助
触发方式:输入前缀(如 14)、关键词(快捷指令/指令/查看)、或精确匹配失败后自动进入。
- 获取快捷指令列表:
- 前缀输入 → 调用open_path.py <前缀>,从matched字段取列表
- 关键词输入 → 调用open_path.py --list,从all_shortcuts字段取列表
- 也可直接 Read config.json 获取 - 用纯文字 Markdown 表格回复(不使用弹窗)
模板:
> 快捷码 99 未找到。当前全部快捷指令:
>
> | 快捷码 | 类型 | 描述 | 目标 |
> |--------|------|------|------|
> | 1411 | 应用 | 微信 | WeChat |
> | 1800 | 应用 | 钉钉 | DingTalk |
> | 2000 | 网页 | 山东省电子税务局 | msedge → https://... |
>
> 输入对应数字即可打开。💡 想添加新的?直接说:设置4000为打开Microsoft Edge浏览器并打开金蝶云
如果是前缀匹配且只有一条,可在表格后追加:「输入 1411 即可打开,或直接说:设置新快捷指令...」
场景四:添加快捷指令
用户用自然语言输入,AI 智能解析。
添加应用,例如:
设置1411为打开微信设置1800为打开钉钉添加3000 QQ设置4000为打开企业微信
添加网页,例如:
设置2000为打开Microsoft Edge浏览器并打开山东省电子税务局设置2000为打开Edge浏览器并访问https://etax.shandong.chinatax.gov.cn设置3000为打开Chrome浏览器并打开淘宝设置5000为用Edge打开百度
AI 智能解析(核心能力):
- 提取快捷码:从文字中找出纯数字(3-6 位)→ 快捷码
- 判断类型:
- 文字含浏览器/Edge/Chrome/Firefox/访问/网站/网址/http→ type: "url"
- 否则 → type: "app" - type: "url" 解析:
- 浏览器:从文字中提取浏览器名(Microsoft Edge/Edge/msedge→ msedge;Chrome/谷歌浏览器→ chrome;Firefox→ firefox)
- URL:优先取http://或https://开头的完整网址。如用户没给网址(如"山东省电子税务局")→ 提取网站名称,回复时请用户补充网址
- 描述:网站名称或用户给的描述 - type: "app" 解析:
- target:提取应用名(如"微信" → WeChat、"钉钉" → DingTalk、"QQ" → QQ)
- 如果用户给了完整路径(如C:\Program Files\...exe),直接使用
- 否则存应用名,脚本通过 Windowsstart命令打开
- 描述:用户给的应用名
处理步骤:
- 验证快捷码为纯数字(3-6 位)
- 对于 type: "url",如果未提取到 URL,回复:「请补充山东省电子税务局的网址,例如:https://etax.shandong.chinatax.gov.cn」
- 检查快捷码是否已存在 → 已存在则询问是否覆盖
- 读取 config.json,在 shortcuts 数组追加新条目,写回文件
- 反馈结果,并列出全部快捷指令:
> 快捷码 2000 已添加 → Microsoft Edge 浏览器打开山东省电子税务局
>
> 当前全部快捷指令:
> | 快捷码 | 类型 | 描述 | 目标 |
> |--------|------|------|------|
> | ... | ... | ... | ... |
>
> 💡 也可以这样设置:设置3000为打开Microsoft Edge浏览器并打开金蝶云
场景五:删除快捷指令
用户输入 删除1411 或 去掉1800 或 删掉快捷码2000。
- 提取数字
- 读取 config.json,移除对应条目
- 写回文件
- 反馈删除结果,并列出剩余全部快捷指令:
> 已删除快捷码 1411(微信)。当前全部快捷指令:
>
> | 快捷码 | 类型 | 描述 | 目标 |
> |--------|------|------|------|
> | ... | ... | ... | ... |
场景六:修改快捷指令
用户输入 把1411改成打开QQ 或 修改1411为打开Chrome浏览器并打开百度。
- 提取快捷码和新内容
- 重新解析新内容(同场景四)
- 读取 config.json,更新对应条目
- 写回文件
- 反馈修改结果,并列出全部快捷指令
场景七:查看 / 列出全部快捷指令
同场景三,用纯文字 Markdown 表格列出全部,末尾附带设置提示。
配置文件格式
type: "app"(打开应用)
{
"code": "1411",
"type": "app",
"target": "WeChat",
"description": "微信"
}
| 字段 | 类型 | 说明 |
|---|---|---|
| code | 字符串 | 纯数字快捷码 |
| type | "app" | 类型标识 |
| target | 字符串 | 应用可执行文件名(如 WeChat、DingTalk、QQ),或完整 .exe 路径 |
| description | 字符串 | 显示用的应用名(可选) |
type: "url"(打开网页)
{
"code": "2000",
"type": "url",
"browser": "msedge",
"url": "https://etax.shandong.chinatax.gov.cn",
"description": "山东省电子税务局"
}
| 字段 | 类型 | 说明 |
|---|---|---|
| code | 字符串 | 纯数字快捷码 |
| type | "url" | 类型标识 |
| browser | 字符串 | 浏览器标识:msedge / chrome / firefox |
| url | 字符串 | 完整网址(含 https://) |
| description | 字符串 | 网站描述 |
完整示例
{
"shortcuts": [
{
"code": "1411",
"type": "app",
"target": "WeChat",
"description": "微信"
},
{
"code": "1800",
"type": "app",
"target": "DingTalk",
"description": "钉钉"
},
{
"code": "2000",
"type": "url",
"browser": "msedge",
"url": "https://etax.shandong.chinatax.gov.cn",
"description": "山东省电子税务局"
}
]
}
脚本说明
scripts/open_path.py 三级匹配 + --list 模式,支持三种快捷指令类型:
| action | 含义 | AI 行为 |
|---|---|---|
opened |
已打开应用/网页 | 文字反馈结果 + 列出全部快捷指令 |
prefix_match |
前缀匹配成功 | 文字列出匹配列表(含全部) |
list_all |
无匹配 | 文字列出全部列表 |
list |
--list 模式 | 文字列出全部列表 |
执行逻辑:
- type: "app" → subprocess.run('start "" "WeChat"', shell=True) 打开应用
- type: "url" → subprocess.run('start msedge "https://..."', shell=True) 浏览器打开网页
- 无 type(旧格式)→ 兼容 os.startfile(path) 打开路径
运行:"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为打开微信
→ 快捷码 1411 已添加 → 微信(应用)。列出全部快捷指令。
示例 3:设置网页快捷指令
用户输入:设置2000为打开Microsoft Edge浏览器并打开山东省电子税务局
→ AI 解析:code=2000, type=url, browser=msedge, url 需用户补充
→ 「请补充山东省电子税务局的网址,例如:https://etax.shandong.chinatax.gov.cn」
→ 用户回复网址后保存,列出全部快捷指令
示例 4:打开应用
用户输入:1411
→ 已打开:微信(应用)
→ 当前全部快捷指令:(表格列出全部)
示例 5:打开网页
用户输入:2000
→ 已在 msedge 中打开:山东省电子税务局
→ 当前全部快捷指令:(表格列出全部)
示例 6:前缀查列表
用户输入:14
→ 快捷码 14 未找到。当前全部快捷指令:(表格)
→ 💡 输入 1411 即可打开,或直接说:设置新快捷指令...
示例 7:关键词查全部
用户输入:快捷指令
→ 当前全部快捷指令:(表格)
→ 💡 随手加一个:设置5000为打开QQ
示例 8:追加快捷指令
用户输入:设置3000为打开Chrome浏览器并打开https://www.baidu.com 百度
→ 解析:code=3000, type=url, browser=chrome, url=https://www.baidu.com, desc=百度
→ 快捷码 3000 已添加 → Chrome 浏览器打开百度。列出全部快捷指令。
示例 9:删除快捷指令
用户输入:删除1800
→ 已删除快捷码 1800(钉钉)。列出剩余全部快捷指令。
示例 10:修改快捷指令
用户输入:把1411改成打开QQ
→ 快捷码 1411 已修改 → QQ(应用)。列出全部快捷指令。
自然语言解析要点
AI 解析用户自然语言时的关键能力:
| 用户说的 | AI 解析为 |
|---|---|
设置1411为打开微信 |
type=app, target=WeChat, desc=微信 |
设置1800为打开钉钉 |
type=app, target=DingTalk, desc=钉钉 |
添加3000 QQ |
type=app, target=QQ, desc=QQ |
设置2000为打开Microsoft Edge浏览器并打开山东省电子税务局 |
type=url, browser=msedge, url=需补充, desc=山东省电子税务局 |
设置2000为打开Edge浏览器并访问https://etax.shandong.chinatax.gov.cn |
type=url, browser=msedge, url=https://..., desc=山东省电子税务局 |
设置3000为打开Chrome浏览器并打开淘宝 |
type=url, browser=chrome, url=需补充, desc=淘宝 |
设置5000为用Edge打开百度 |
type=url, browser=msedge, url=需补充, desc=百度 |
类型判断规则:
- 含 浏览器/Edge/Chrome/Firefox/访问/网站/网址/http → type: "url"
- 默认 → type: "app"
浏览器映射:
- Microsoft Edge / Edge / msedge → "msedge"
- Chrome / 谷歌浏览器 → "chrome"
- Firefox / 火狐 → "firefox"
URL 补充规则:
- 如果用户给了完整 URL(含 http:// 或 https://),直接使用
- 如果用户只说了网站名称(如"山东省电子税务局"、"百度"、"淘宝"),AI 需请用户补充网址
错误处理
| 情况 | 处理 |
|---|---|
| 精确匹配失败 | 自动前缀匹配,文字列出匹配列表 |
| 前缀也无匹配 | 文字列出全部快捷指令列表 |
| 应用打开失败 | 提示"应用名可能不正确,请检查。也可以提供完整路径如 C:\Program Files..." |
| URL 未提供 | 请用户补充网址 |
| config.json 不存在 | 进入首次使用引导 |
| 快捷码已存在 | 询问是否覆盖 |
设计理念
全程纯文字对话,无弹窗,无表单。
- 首次使用 → 文字引导 + 应用/网页两种类型的设置举例
- 每次操作后 → 自动列出全部快捷指令表格,方便随时对照
- 列表查看 → Markdown 表格,一目了然(快捷码、类型、描述、目标)
- 添加/删除/修改 → 一句自然语言,AI 智能解析
- 操作后提示 → 轮换模板,让用户自然记住设置方法
让设置和使用异常丝滑,用户无需学习操作界面,说话就行。
注意事项
- 快捷码建议 3-6 位纯数字
- 应用名建议用标准英文可执行名(WeChat、DingTalk、QQ),也可用完整路径
- URL 必须以
https://或http://开头 - 浏览器支持:msedge(Microsoft Edge)、chrome(Google Chrome)、firefox
- 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),有效期内免重复支付;服务端按订单号幂等,保证同一笔订单只履约一次。