← 返回 Skills 市场
dddwinter

Generic Drug

作者 DDDWinter · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
89
总下载
0
收藏
1
当前安装
1
版本数
在 OpenClaw 中安装
/install generic-drug
功能描述
查询药品名称对应的通用名,若无结果则返回原名称,基于本地 SearXNG 搜索结果智能分析识别。
使用说明 (SKILL.md)

generic_drug 技能

描述

通过搜索查询药品的通用名。当用户提供药品名称时,尝试查询其通用名。

功能

  • 接受药品名称作为参数
  • 使用 SearXNG 本地搜索服务进行查询
  • 搜索该药品的通用名信息
  • 如果查不到通用名,则默认该名称本身就是通用名

使用方法

# 查询药品通用名
~/.openclaw/workspace/skills/generic_drug/tool.sh \x3C药品名称>

# 示例
~/.openclaw/workspace/skills/generic_drug/tool.sh 乳膏基质一号
~/.openclaw/workspace/skills/generic_drug/tool.sh 头孢克洛胶囊

查询逻辑

  1. 使用 SearXNG 搜索:\x3C药品名称> 药品通用名
  2. 返回原始搜索结果,由当前会话(LLM)智能分析:
    • LLM 基于完整上下文判断通用名
    • 能理解"一般指"、"又称"、"俗称"等多种表述
    • 能区分药品和辅料
    • 能处理复杂情况

返回格式

脚本返回 JSON 格式(包含原始搜索结果):

{
  "drug_name": "药品原始名称",
  "search_count": 搜索结果数量,
  "search_context": "格式化后的搜索结果摘要",
  "note": "需要 LLM 分析"
}

LLM 最终输出格式

{
  "drug_name": "药品原始名称",
  "generic_name": "智能识别的通用名",
  "found": true/false,
  "type": "非药品(可选)",
  "note": "LLM 智能识别/未找到/非药品"
}

配置

  • SearXNG URL: http://localhost:8080
  • 搜索格式: \x3Cquery> 药品通用名
  • 分析方式: 由当前会话 LLM 智能分析搜索结果上下文

注意事项

  • 药品名称应该准确输入
  • 对于非药品(如辅料、基质),可能查不到通用名,将返回原名称
  • SearXNG 服务需要正常运行

示例

# 查询"乳膏基质一号"
$ generic_drug 乳膏基质一号
{
  "drug_name": "乳膏基质一号",
  "generic_name": "乳膏基质一号",
  "found": true,
  "note": "未找到其他通用名,原名称即为通用名"
}

# 查询"头孢克洛胶囊"
$ generic_drug 头孢克洛胶囊
{
  "drug_name": "头孢克洛胶囊",
  "generic_name": "头孢克洛",
  "found": true,
  "note": "查得通用名为:头孢克洛"
}
安全使用建议
主要关注点: 1) 此技能期望本地运行 SearXNG(http://localhost:8080),仅在可信的本地搜索服务可用时才有意义。确认该服务安全且可访问。 2) tool.sh 实际依赖 curl 和 jq(README 还误提到 python3),但技能元数据未声明这些依赖——在部署前确保系统安装 curl 和 jq,或让技能作者更新元数据。 3) 输入/输出安全:脚本仅把空格替换为 %20,未进行完整 URL 编码;也未对输出做 JSON 转义。攻击者构造的特殊药品名称(包含 &、"、换行等)可能导致查询参数注入或生成无效/可被利用的 JSON。建议在安装前修复脚本,使用正确的 URL 编码(如 printf '%s' "$VAR" | jq -s -R -r @uri 或使用 urlencode 函数)并使用 jq/python 等库安全地构造 JSON。 4) 由于脚本输出包含供 LLM 使用的提示,确认 LLM 环境不会将这些提示与敏感上下文混用。 5) 如果你不打算审查/修复脚本,建议不要运行在含敏感本地服务的环境中;若仅用于个人离线查询且信任本地 SearXNG,则风险较低。
功能分析
Type: OpenClaw Skill Name: generic-drug Version: 1.0.0 The skill contains a shell injection vulnerability in `tool.sh` where the `$DRUG_NAME` input is used within a subshell command (`$(echo ...)`) without sanitization, allowing for arbitrary command execution if a malicious drug name is provided. While the script's intended purpose of querying a local SearXNG instance (http://localhost:8080) appears legitimate, the insecure handling of user input poses a significant security risk.
能力评估
Purpose & Capability
技能声明通过本地 SearXNG 查询药品通用名,实际也仅请求本地 SearXNG 服务,目的与能力总体一致。但元数据声明“无需二进制/环境变量”,而脚本实际依赖 curl 和 jq(README 还提到 python3),出现不一致,应在元数据中声明这些依赖。
Instruction Scope
tool.sh 会将検索结果格式化并把原始摘要与一个供 LLM 使用的提示一起打印,LLM 负责最终识别。脚本对传入的药品名称仅用简单的空格替换为 %20(sed 's/ /%20/g'),未做完整 URL 编码,且在构造 JSON 输出时未对搜索上下文或名称做 JSON 转义,可能导致生成畸形 JSON 或通过特殊字符干扰查询参数(例如注入额外的查询参数)。这是输入编码与输出转义不足的实际安全/可靠性问题。
Install Mechanism
无安装规范(instruction-only + 提供脚本),不会自动把外部可执行档下载到系统,风险较低。但因脚本存在,用户需要手动确保运行环境与依赖。
Credentials
技能不请求任何环境变量或外部凭据,也不访问系统配置路径,所需权限与功能匹配。唯一外部依赖是本地 SearXNG HTTP 服务(http://localhost:8080/search),这是技能说明中明确的。
Persistence & Privilege
没有设置 always:true 或其他在每次代理运行中强制启用的特权;技能不会修改其他技能或系统级配置,权限范围有限。
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install generic-drug
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /generic-drug 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release of the generic_drug skill: - Supports querying the generic name of a drug based on user-provided product names. - Uses a local SearXNG search service to find generic name information. - Returns original search results and lets the LLM analyze context for intelligent generic name extraction. - If no generic name is found, returns the original name as the generic name by default. - Outputs results in a structured JSON format for easy interpretation. - Handles drug names, excipients, and complex naming situations intelligently.
元数据
Slug generic-drug
版本 1.0.0
许可证 MIT-0
累计安装 1
当前安装数 1
历史版本数 1
常见问题

Generic Drug 是什么?

查询药品名称对应的通用名,若无结果则返回原名称,基于本地 SearXNG 搜索结果智能分析识别。 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 89 次。

如何安装 Generic Drug?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install generic-drug」即可一键安装,无需额外配置。

Generic Drug 是免费的吗?

是的,Generic Drug 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Generic Drug 支持哪些平台?

Generic Drug 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Generic Drug?

由 DDDWinter(@dddwinter)开发并维护,当前版本 v1.0.0。

💬 留言讨论