Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

liuyuxin - Local Guide

v1.0.5

本地通推荐技能 - 利用互联网全域搜索,绕过商业评价平台,挖掘真正受当地人认可的地道去处。支持美食、小吃、酒店、景点、温泉、停车场等多种类型推荐。触发词:本地通推荐、本地人推荐、老字号、地道美食、小众景点、性价比酒店。

0· 72·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for pythonmango/liuyuxin.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "liuyuxin - Local Guide" (pythonmango/liuyuxin) from ClawHub.
Skill page: https://clawhub.ai/pythonmango/liuyuxin
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install liuyuxin

ClawHub CLI

Package manager switcher

npx clawhub@latest install liuyuxin
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
high confidence
!
Purpose & Capability
The skill's stated purpose (local recommendations via web-wide search) lines up with the included scripts that call a search backend and format Feishu cards. However the registry metadata declares no required environment variables while the SKILL.md and scripts clearly require EXA_API_KEY (core search) and optionally FEISHU_APP_ID / FEISHU_APP_SECRET for Feishu output. That metadata mismatch is an incoherence that could surprise users or automated installers.
!
Instruction Scope
SKILL.md confines instructions to configuring EXA and optionally Feishu which is reasonable, but the shipped code expands scope: search_module.py inserts a path to ~/.agents/skills and attempts to import skill_orchestrator (accessing other local skill code), and has a fallback that runs a constructed shell command via subprocess.run(..., shell=True). The subprocess command embeds the user search query in single quotes but is passed to a shell (shell=True), creating a potential command-injection vector if query strings are not sanitized. The scripts also perform network calls (Feishu API) and will send data externally when FEISHU credentials are configured — this is consistent with Feishu output but should be expected and authorized by the user.
Install Mechanism
There is no install spec (instruction-only skill plus local scripts), so nothing is downloaded during install. The code is included in the skill bundle and uses standard Python requests and subprocess; that is proportionate to the described functionality. No external arbitrary URL downloads or extract operations were found.
!
Credentials
The skill requires EXA_API_KEY (core search) and optionally FEISHU_APP_ID/FEISHU_APP_SECRET for card sending, but the registry lists no required environment variables. Requiring these secrets is plausible for the declared features, but the metadata omission is an inconsistency that could lead to users not realizing they need to provide credentials. Also the skill suggests adding EXA_API_KEY to shell rc files (persistence of secret) — users should be cautious about storing API keys globally.
Persistence & Privilege
always:false (no forced global presence) and autonomous invocation is allowed (platform default). The skill does not request to modify other skills or system-wide configs. However it attempts to import from ~/.agents/skills which reads other skills' code paths and may create unexpected interactions; this is a lateral-access concern (read-only behavior in code as shown, but worth noting).
What to consider before installing
This skill largely does what it promises (search EXA and format Feishu cards), but there are several red flags you should consider before installing: - Credential mismatch: The SKILL.md and scripts require EXA_API_KEY (and optionally FEISHU_APP_ID / FEISHU_APP_SECRET), but the registry metadata lists no required env vars. Don't supply secrets unless you trust the skill source. - Command execution risk: search_module.py may fall back to running a shell command via subprocess.run(..., shell=True) that embeds user-provided queries. If the skill is later invoked with crafted input this could enable command injection. Ask the author to remove shell=True or use a safe subprocess call with an argument list, or sanitize/escape queries. - Local-skill access: the code inserts ~/.agents/skills into sys.path and tries to import skill_orchestrator, which lets it access other local skill modules. That may be intended for orchestration but increases the blast radius; confirm why the skill needs this and whether it should be limited. - Network behavior: the skill will make outbound requests to EXA (and optionally Feishu). Only provide EXA/Feishu credentials you trust and consider using limited-scope or dedicated keys. Avoid exporting secrets into global shell rc files if you can use more limited storage. Recommendations before proceeding: 1) Verify the skill author/source before installing. The package lists no homepage and the owner id is unknown. 2) Ask the author to update registry metadata to declare required env vars (EXA_API_KEY and optional FEISHU_*). 3) Request code hardening: remove shell=True, use subprocess with an argv list, and properly escape/sanitize query inputs; avoid importing arbitrary local skill paths or explain why it's needed. 4) If you must run it, run in an isolated environment or VM and provide minimal, revocable API keys (not your primary account keys). For Feishu, use an app with limited permissions. 5) If unsure, do not set secrets globally; prefer ephemeral or per-session env vars and review network endpoints the skill contacts.

Like a lobster shell, security has layers — review code before you run it.

foodvk975fkkb9h0bkjm7hdsyz3ffbn84rw37guidevk975fkkb9h0bkjm7hdsyz3ffbn84rw37latestvk975fkkb9h0bkjm7hdsyz3ffbn84rw37localvk975fkkb9h0bkjm7hdsyz3ffbn84rw37parkingvk975fkkb9h0bkjm7hdsyz3ffbn84rw37restaurantvk975fkkb9h0bkjm7hdsyz3ffbn84rw37travelvk975fkkb9h0bkjm7hdsyz3ffbn84rw37
72downloads
0stars
5versions
Updated 2w ago
v1.0.5
MIT-0

本地通推荐 (Local Guide)

技能描述

利用互联网全域搜索,绕过商业评价平台,挖掘真正受当地人认可的地道去处。支持美食、小吃、酒店、景点、温泉等多种类型推荐。

环境配置(必需)

本技能使用 EXA 搜索引擎 作为核心数据来源,使用前必须配置 API Key。

获取 EXA API Key 步骤

步骤 1:注册账号

  1. 访问 EXA 官网:https://exa.ai
  2. 点击右上角 "Sign Up""Get Started"
  3. 选择注册方式:
    • Google 账号登录(推荐,最快)
    • GitHub 账号登录
    • 邮箱注册

步骤 2:进入 Dashboard

  1. 登录后自动跳转到 Dashboard
  2. 或点击右上角头像 → "Dashboard"

步骤 3:获取 API Key

  1. 在 Dashboard 左侧菜单找到 "API Keys"
  2. 或直接访问:https://exa.ai/dashboard/api-keys
  3. 点击 "Create new API Key" 按钮
  4. 输入 Key 名称(如:local-guide
  5. 点击 "Create" 生成 Key
  6. 复制生成的 API Key(格式类似:xxxxx-xxxxx-xxxxx-xxxxx

步骤 4:配置环境变量

# Linux / Mac
export EXA_API_KEY=你复制的API_Key

# 添加到配置文件永久保存
echo 'export EXA_API_KEY=你复制的API_Key' >> ~/.bashrc
source ~/.bashrc

# Windows PowerShell
$env:EXA_API_KEY="你复制的API_Key"

# Windows CMD
set EXA_API_KEY=你复制的API_Key

免费额度说明:

  • EXA 提供免费试用额度
  • 每月有 1000 次免费搜索请求
  • 超出后需付费订阅

验证配置:

# 检查环境变量是否设置成功
echo $EXA_API_KEY

# 测试 EXA 搜索
python3 scripts/search_module.py

触发词

  • 本地通推荐 [类型] [地名]
  • 本地通 [类型] [地名]
  • [地名] 本地通 [类型]

支持的类型:

  • 美食 / 小吃
  • 甜品 / 糖水
  • 酒店 / 住宿 / 民宿
  • 好玩 / 景点 / 玩乐
  • 温泉 / 泡温泉
  • 购物 / 商场
  • 咖啡 / 咖啡馆
  • 酒吧 / 夜生活
  • 停车 / 停车场 / 停车位

使用示例

# 美食推荐
本地通 美食 南海桂城
本地通推荐 小吃 佛山市南海区桂城
本地通 糖水 广州天河

# 景点推荐
本地通 好玩 佛山南海
本地通推荐 景点 广州市番禺区
本地通 小众景点 深圳

# 停车场推荐
本地通 停车 佛山南海千灯湖公园
本地通推荐 停车场 广州天河城
本地通 停车位 广东省中医院

# 温泉推荐
本地通 温泉 广州从化
本地通推荐 泡温泉 佛山三水

# 酒店推荐
本地通 酒店 佛山南海
本地通推荐 性价比酒店 广州越秀

核心逻辑

1. 严格的来源排除 (Anti-Spam Filter)

严禁引用:

  • 大众点评
  • 美团
  • 携程(美食林/酒店/景点)
  • 小红书商业推广笔记
  • 马蜂窝商业推广

理由: 避开算法推荐、商业竞价排名及刷单污染的数据。

2. 深度搜索渠道 (Source Targeting)

优先检索并分析以下来源:

官方权威来源(优先级最高):

  • 地方政府官方推荐(如文旅局、商务局、旅游局)
  • 地方新闻媒体的专题报道(如南方+、南方网、本地日报等)
  • 地方政府认定的"老店"、"老字号"名录
  • 官方评选活动(如"十大名店"、"最佳景点"等)

生活方式社区:

  • 豆瓣同城/小组
  • 知乎(搜索"本地人推荐"、"从小去到大"等话题)

社交媒体原生态内容:

  • 微博实时搜索
  • Bilibili 探店/探景视频评论区
  • 本地生活博主(非营销号)的非赞助分享

地方性平台:

  • 地方性论坛(如上海宽带山、广州妈妈网等)
  • 当地街坊社区讨论

3. 搜索关键词策略 (Search Query Strategy)

根据类型使用不同的关键词组合:

官方推荐类(优先):

[地名] 官方推荐 [类型]
[地名] 文旅 推荐 [类型]
[地名] 旅游局 推荐 [类型]
[地名] 政府 推荐 [类型]
南方+ [地名] [类型]

本地人口碑类:

[地名] 本地人推荐 [类型]
[地名] 本地人常去 [类型]
[地名] 街坊推荐 [类型]
[地名] 只有本地人才知道的 [类型]
[地名] 从小去到大 [类型]
[地名] 老字号 [类型]
[地名] 排队 [类型]

类型特定关键词:

美食/小吃:

[地名] 老店 美食
[地名] 十大名小吃
[地名] 苍蝇小馆
[地名] 居民楼 美食

甜品/糖水:

[地名] 老字号 糖水
[地名] 本地人推荐 甜品
[地名] 老店 糖水
[地名] 传统糖水
[地名] 榴莲甜品
[地名] 双皮奶 姜撞奶
[地名] 糖水铺 推荐

酒店/住宿:

[地名] 本地人推荐 酒店
[地名] 性价比高 酒店
[地名] 特色民宿
[地名] 老牌酒店

好玩/景点:

[地名] 本地人常去 景点
[地名] 免费景点
[地名] 小众景点
[地名] 周末去哪玩

温泉:

[地名] 本地人推荐 温泉
[地名] 性价比高 温泉
[地名] 老牌温泉
[地名] 温泉酒店

停车/停车场:

[地名] 停车位 便宜
[地名] 停车场 收费标准
[地名] 停车 地下停车场
[地名] 停车 免费停车
[地名] 商场 停车
[地名] 医院 停车
[地名] 停车攻略

4. 输出标准 (Output Format)

对于搜寻到的每一个推荐,给出:

基本信息:

  • 名称与大致位置(具体的街道或标志物)
  • 联系电话
  • 导航地址(可以直接在高德导航的地址)
  • 人均消费(价格区间,如:¥10-20、¥30-50、¥80-150等)
  • 营业/开放时间

推荐理由: 必须包含该地被认为是"地道"或"本地人喜欢"的证据,例如:

  • 政府官方推荐(如文旅局推荐、官方评选等)
  • 开了多年的老店/老景点(10年以上即可)
  • 本地人常去、街坊口碑好
  • 隐藏在居民区或老街区
  • 本地人从小去到大
  • 本地媒体多次报道
  • 性价比高、不宰客

避雷参考: 提及可能存在的缺点,增加信息真实性:

  • 服务态度一般
  • 环境简陋/设施老旧
  • 不接受预约
  • 营业时间不固定
  • 只收现金
  • 周末人多需排队
  • 交通不便

输出格式示例

通用类型格式(美食/酒店/景点/温泉/购物/咖啡/酒吧)

# 🎯 [地名] 本地通推荐 - [类型]

根据官方推荐([来源])和本地口碑,为您精选以下地道去处:

---

## 🏆 官方认证推荐

### 1. [名称] ⭐⭐⭐
📍 **位置**:[具体街道/标志物]
📞 **电话**:[联系电话]
🗺️ **导航**:[高德地址]
⏰ **营业时间**:[营业时间]
💰 **人均消费**:[人均价格]

✨ **推荐理由**:
- [地道证据1]
- [地道证据2]
- [地道证据3]

⚠️ **避雷参考**:
- [缺点1]
- [缺点2]

---

### 2. [名称] ⭐⭐
...

---

## 🏅 [其他分类](如:本地口碑推荐)

### 3. [名称] ⭐⭐
...

---

## 📝 温馨提示

1. **官方认证优先**:[说明]
2. **避开高峰**:[建议]
3. **提前确认**:[提醒]
4. **交通建议**:[建议]
5. **支付方式**:[说明]

**搜索来源**:[列出来源](已排除大众点评、美团、携程等商业平台)

停车场专用格式

# 🚗 [地名] 本地通推荐 - 停车场

根据官方信息和本地车主反馈,为您整理以下停车选择:

---

## 🏆 性价比推荐

### 1. [停车场名称] ⭐⭐⭐
📍 **位置**:[具体街道/标志物]
🗺️ **导航**:[高德地址]
🅿️ **车位数量**:[约XX个]
💰 **收费标准**:[如:首小时5元,之后2元/小时;或:全天封顶20元]
⏰ **开放时间**:[24小时/XX:XX-XX:XX]
🔌 **充电桩**:[有/无,如有注明数量]

✨ **推荐理由**:
- [优点1:如收费便宜]
- [优点2:如车位充足]
- [优点3:如位置便利]

⚠️ **注意事项**:
- [注意1:如限高2.2米]
- [注意2:如只支持现金/微信]

---

### 2. [停车场名称] ⭐⭐
...

---

## 🏅 免费停车

### 3. [停车场名称] ⭐⭐
📍 **位置**:[位置]
⏰ **免费时段**:[如:消费满50元免2小时]
📝 **使用条件**:[条件说明]

---

## 📝 停车小贴士

1. **高峰时段**:[如:周末10:00-14:00车位紧张]
2. **省钱建议**:[如:周边商场消费可免停车费]
3. **充电提醒**:[如:XX停车场有快充桩]
4. **限高注意**:[如:地下停车场限高2.0-2.2米]
5. **支付方式**:[如:大部分支持微信/支付宝]

**搜索来源**:[列出来源]

重要规则:

  1. 必须包含完整的基本信息(位置、电话、导航、营业时间、人均消费)
  2. 必须包含推荐理由(至少3条)
  3. 必须包含避雷参考(至少2条)
  4. 必须按照官方认证、本地口碑等分类组织
  5. 不得简化为列表形式,必须保持详细格式
  6. 每个推荐必须独立成段,用分隔线分开
  7. 停车场类型:重点标注收费标准、车位数量、充电桩等关键信息

飞书卡片输出

当检测到用户来自飞书渠道时,必须:

  1. 生成完整的详细内容(与 webchat 相同)
  2. 将内容转换为 JSON 格式
  3. 调用飞书卡片脚本发送卡片

JSON 数据格式

通用类型:

{
  "location": "广州天河",
  "type": "温泉",
  "sources": "广州市文旅局、南方+报道",
  "items": [
    {
      "name": "某某温泉度假村",
      "category": "官方认证推荐",
      "stars": 3,
      "address": "天河区某某路123号",
      "phone": "020-12345678",
      "navigation": "广州市天河区某某路123号",
      "hours": "09:00-22:00",
      "price": "¥128-298",
      "reasons": [
        "广州市文旅局官方推荐温泉度假村",
        "开业15年,本地人常去",
        "水质好,性价比高"
      ],
      "warnings": [
        "周末人多需提前预约",
        "部分设施较老旧"
      ]
    }
  ]
}

停车场类型:

{
  "location": "广州某医院",
  "type": "停车",
  "sources": "医院官网、本地车主反馈",
  "items": [
    {
      "name": "医院配套停车场",
      "category": "性价比推荐",
      "stars": 3,
      "address": "越秀区某某路88号",
      "navigation": "广州市越秀区某某路88号",
      "spaces": "约55个",
      "hour_rate": "5元/小时",
      "first_hour": "5元",
      "after_hour": "5元/小时",
      "daily_cap": "无封顶",
      "free_time": "无",
      "hours": "全天开放",
      "charging": "无",
      "reasons": [
        "距离医院最近",
        "收费相对便宜",
        "步行可达门诊"
      ],
      "warnings": [
        "车位紧张,高峰期难找位",
        "需注意停车时限规定"
      ]
    }
  ]
}

停车场JSON字段说明:

字段说明示例
hour_rate每小时费用(必填)"5元/小时"、"10元/小时"
first_hour首小时费用"免费"、"5元"
after_hour后续每小时费用"3元/小时"、"5元/小时"
daily_cap全天封顶"20元封顶"、"无封顶"
free_time免费时长"首15分钟免费"、"无"
spaces车位数量"约55个"
charging充电桩"有,5个快充"、"无"

飞书卡片脚本

使用 scripts/send_feishu_card.py 发送卡片:

echo '{JSON数据}' | python3 scripts/send_feishu_card.py {receive_id} {reply_to}

飞书渠道识别

当用户来自飞书时,在生成完整内容后,额外生成 JSON 数据并调用卡片脚本。


实施步骤

  1. 接收指令:识别"本地通推荐 [类型] [地名]"
  2. 类型识别:判断用户要查找的类型(美食/酒店/景点/温泉等)
  3. 多轮全面搜索(至少5-8轮):
    • 第1轮:官方推荐("[地名] 官方推荐 [类型]"、"[地名] 文旅 推荐 [类型]")
    • 第2轮:老店/老牌("[地名] 老字号 [类型]"、"[地名] 老牌 [类型]")
    • 第3轮:本地口碑("[地名] 本地人推荐 [类型]"、"[地名] 街坊常去 [类型]")
    • 第4轮:特色推荐("[地名] 特色 [类型]"、"[地名] 性价比高 [类型]")
    • 第5轮:补充搜索(根据前面结果补充不足的分类)
    • 第6-8轮:深度搜索(针对结果不足的分类,使用更多关键词组合搜索)
  4. 来源过滤:排除商业平台内容,优先采纳官方和本地社区来源
  5. 信息整合:汇总所有搜索结果,去重,按分类组织
  6. 数量检查:确保每个分类至少有10个推荐,如果不足则继续搜索(除非该类型在当地确实没有这么多)
  7. 信息提取:提取名称、位置、电话、地址、营业时间、人均消费
  8. 证据收集:收集"地道"证据(官方认证、本地口碑、开业年限等)和真实缺点
  9. 格式化输出严格按照输出格式示例生成回复,不得简化或改变结构
  10. 渠道一致性检查:确保飞书、webchat、群聊、私聊等所有渠道输出完全一致

注意事项

  • 不强求老字号:只要是本地人喜欢、常去的地方就可以推荐
  • 优先官方推荐:政府文旅、旅游局推荐的优先级最高
  • 多源验证:优先推荐有多个独立来源验证的地方
  • 避免网红化:排除过度商业化、主要靠营销的地方
  • 信息时效性:提醒用户可能已搬迁/关闭/装修,建议提前确认
  • 真实性:必须包含真实缺点,增加可信度
  • 格式统一:无论在任何渠道,都必须使用完整的详细格式,不得简化为列表
  • 数量要求:每个分类至少推荐10个地方,提供足够的选择(除非该类型在当地确实没有这么多)
  • 结果稳定性:使用相同的搜索关键词和来源,确保每次返回的结果基本一致
  • 全面搜索:必须进行至少5-8轮搜索,覆盖不同关键词组合,确保找到足够多的推荐(每分类至少10个)
  • 类型适配:根据不同类型调整搜索关键词和输出重点
    • 美食:重点关注口味、老店历史、本地口碑
    • 酒店:重点关注位置便利性、设施、性价比
    • 景点:重点关注独特性、人流量、最佳游览时间
    • 温泉:重点关注水质、环境、服务
    • 停车场:重点关注收费标准、车位数量、距离目的地远近、充电桩

Comments

Loading comments...