法律元力 Skill 管家
此技能用于在法律元力平台检索法律领域 Skill,并基于用户法律问题推荐可用技能;同时管理本地已安装 Skill 的全生命周期。
适用范围
- 用户提出法律问题时,先定位可用的法律 Skill
- 用户明确要“找某类法律 Skill”时,返回匹配结果与推荐理由
- 查看本地已管理 Skill 清单(
list) - 盘点本地智能体环境中已有的元力 Skill(
scan) - 用户确认后,执行安装、删除、更新 Skill 操作
- 批量检查更新,并引导用户配置定时检测更新机制
触发场景
- “帮我找一个可以做合同审查的 skill”
- “我在做劳动争议,应该用哪个法律 skill”
- “有没有能处理股权协议起草的法律能力”
- “先帮我找合适 skill,再安装”
- “我本地装了哪些法律 skill”
- “检查一下元力 skill 有没有更新”
兼容性说明
- 兼容任意智能体平台(如自建 Agent、工作流编排器、CLI Agent、IDE Agent、桌面助手等)
- 只要求具备以下任一能力:
- 能执行命令行脚本,或
- 能直接发起 HTTP 请求
- 该技能的核心是统一 API 协议 + 本地状态管理
默认域名
- 法律元力站点:
https://yuanli.ailaw.cn/ - API 基础地址默认值:
https://yuanli.ailaw.cn
环境变量配置
执行命令前,建议配置:
YUANLI_API_BASE_URL:后台 API Base URL(默认https://yuanli.ailaw.cn)YUANLI_API_TOKEN:可选,若后端鉴权开启则填写 Bearer TokenYUANLI_TIMEOUT_SECONDS:请求超时秒数(可选,默认30)YUANLI_AGENT_SKILL_STATE_PATH:本地安装状态文件路径(默认~/.yuanli/agent_skills.json)YUANLI_AGENT_SKILL_PACKAGE_DIR:技能包下载目录(默认~/.yuanli/packages)YUANLI_AGENT_SKILLS_DIR:智能体本地技能目录(默认~/.workbuddy/skills,可按平台覆盖)
命令接口(CLI 适配层)
在任意支持 Python 的环境执行:
python "legal-yuanli-skill-manager/scripts/yuanli_skill_api.py" <subcommand> [args]
子命令:
search--query <text>:关键词模糊检索--category <text>:分类过滤(可选)--limit <n>:返回数量,默认20
list--detail:补充 API 详情(分类、作者、下载量)--format json|text:输出格式,默认json
scan--register:将本地技能目录中未纳入管理的元力 Skill 注册到状态文件--register-all:批量注册所有未管理 Skill- 识别逻辑:优先读
yuanli_skill_id;若无该字段,则用 SKILL.md 中的技能名称在元力平台检索并比对,判断是否来自元力 --register时,对通过名称匹配识别的 Skill 会回写yuanli_skill_id到 SKILL.md
--register会将远端当前版本写入状态文件(优先读 SKILL.mdversion,否则请求GET /api/skills/{id}),避免check-updates误报
status- 一键输出远端 Skill 总数、本地已管理数量、本地已落地数量、可更新列表
check-updates--auto-update:对可更新 Skill 自动执行 update--download-package:自动更新时同步下载 zip--accept-license:自动下载更新前确认接受 license--format json|text:输出格式,默认json
license--skill-id <id>:查看 Skill 的 license 信息(来自GET /api/skills/{id}的license字段)--format json|text:输出格式,默认json
install--skill-id <id>:法律元力 Skill ID--download-package:可选,下载 zip 技能包--register-to-workbuddy:可选,解压并落地到本地技能目录(兼容旧参数名)--accept-license:安装者确认 license 后附加;下载/落地前必填
remove--skill-id <id>:要删除的已安装 Skill ID
update--skill-id <id>:要更新的已安装 Skill ID--download-package:可选,更新时同步下载 zip 并刷新本地技能目录--force:可选,强制覆盖更新--accept-license:下载更新包前必填(license 变更时需重新确认)
标准执行流程(面向所有智能体)
- 识别用户意图,优先判断是否为“法律问题找 Skill”
- 如果用户描述的是法律问题,先抽取检索要素:
- 法律领域(合同、劳动、争议解决、合规等)
- 任务类型(检索、审查、起草、分析)
- 场景关键词(行业、主体、争议类型)
- 调用法律元力真实公开接口进行检索:
GET /api/skillsGET /api/skills/{skill_id}GET /api/skills/{skill_id}/download(可选)
- 输出推荐结果(建议 3-5 个):
skillId、名称、版本、分类- 匹配理由(为何适合当前法律问题)
- 使用建议(先试用哪个,何时安装)
- 若用户准备安装,先调用
GET /api/skills/{skill_id}获取license并向用户说明 4.5. 下载前 license 确认(强制): - 任何会触发下载的动作(
install --download-package、install --register-to-workbuddy、update --download-package、check-updates --auto-update --download-package)前,必须先:- 调用
license --skill-id <id>(或GET /api/skills/{id})读取license字段 - 向安装者明确展示 license 名称、SPDX、链接、版权说明
- 获得安装者明确同意后再继续,并在 CLI 中附加
--accept-license
- 调用
- 若安装者未确认,不得下载;仅可继续检索与推荐
- 若用户明确执行管理动作,再进入对应子命令:
- 查看清单 →
list - 盘点本地技能目录 →
scan - 健康检查 →
status - 安装/删除/更新 →
install/remove/update
- 查看清单 →
- 将安装状态写入本地状态文件,形成“当前智能体已安装技能清单”
6.5. 首次
install或scan --register完成后,主动引导用户设置定时检测更新机制:- 提示用户:"你的元力 Skill 已就绪。要不要我帮你设置一个每周自动检查更新的定时任务?有新版时会主动通知你。"
- 引导时机:
- ✅ 首次 install 或 scan --register 后 → 必须主动引导(强提醒)
- ✅
list发现未配置自动化且无auto_update_configured→ 轻提示一次 - ❌ 用户已配置
auto_update_configured: true→ 不再提示
- 若用户同意,使用当前智能体平台可用的定时/自动化能力创建任务(不绑定某一平台):
- 识别平台能力:cron、systemd timer、CI 定时流水线、平台内置 automation/schedule API、Agent 定时 prompt 等
- 统一任务目标:周期性执行
python "<本技能脚本路径>/yuanli_skill_api.py" check-updates --format text - 若用户希望自动更新(需明确授权),再使用:
python "<本技能脚本路径>/yuanli_skill_api.py" check-updates --auto-update --download-package --format text - 建议频率:每周一次(如每周一 09:00)
- 任务执行后要求:读取命令输出,用简洁表格汇总“已更新 / 无变化 / 失败项”
- 配置完成后:
- 执行
python yuanli_skill_api.py status做一次确认 - 将状态文件
auto_update_configured设为true
- 执行
- 若用户拒绝:保持
auto_update_configured: false,不反复打扰;每次新 install 后可再次询问是否扩大检查范围
- 输出结构化结果:
- 成功/失败
- 关键标识(
skillId、version、stateFile) - 后端返回消息
- 错误处理:
- 返回 HTTP 状态码与错误信息
- 提示检查 Token、Base URL、网络连通性
备注
- 本技能为 API 协议层能力,可复用于多种智能体产品形态。
- 当前后端未提供“远端智能体安装列表管理”专用 API,因此
remove/update以本地状态文件为准管理。 install --register-to-workbuddy(或平台等价落地流程)会在 SKILL.md frontmatter 注入yuanli_skill_id字段,便于scan识别来源。scan在无yuanli_skill_id时会按 SKILL.md 技能名称检索元力平台并比对;scan --register对名称匹配项也会回写yuanli_skill_id。- 下载任何 Skill 前必须完成 license 告知与确认;脚本会在未附加
--accept-license时阻断下载。 - 详细 API 与状态文件字段说明见 reference.md。
定时检测更新:通用智能体运行机制
定时检测更新应设计为平台无关的后台任务,不依赖当前对话上下文:
- 触发时机:按约定周期执行(建议每周一 09:00)
- 执行内容:统一调用
check-updates子命令 - 结果处理:将“可更新列表”通知用户;仅在用户授权时使用
--auto-update - 状态共享:
~/.yuanli/agent_skills.json作为全局状态文件,供不同智能体读取同一安装清单
平台落地示例(任选其一):
| 平台类型 | 落地方式 |
|---|---|
| Linux 服务器 | crontab / systemd timer |
| CI/CD | GitHub Actions schedule / Jenkins 定时任务 |
| 桌面智能体 | 平台 automation/schedule API |
| IDE Agent | 任务调度插件 + CLI 脚本 |
无论使用哪种平台,任务核心命令保持一致,确保跨智能体可复用。