{
  "schemaVersion": "1.0",
  "item": {
    "slug": "feishu-mention-bot",
    "name": "飞书@机器人",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/pcjinglang/feishu-mention-bot",
    "canonicalUrl": "https://clawhub.ai/pcjinglang/feishu-mention-bot",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/feishu-mention-bot",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=feishu-mention-bot",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/feishu-mention-bot"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/feishu-mention-bot",
    "agentPageUrl": "https://openagent3.xyz/skills/feishu-mention-bot/agent",
    "manifestUrl": "https://openagent3.xyz/skills/feishu-mention-bot/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/feishu-mention-bot/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "飞书 @机器人 技能",
        "body": "在飞书群聊中 @其他机器人并发送消息，让被艾特的机器人收到通知并响应。"
      },
      {
        "title": "前提条件",
        "body": "确保飞书应用有以下权限：\n\nim:message 或 im:message:send_as_bot — 发送消息\nim:message.group_at_msg:readonly — 接收 @消息"
      },
      {
        "title": "文本消息",
        "body": "<at user_id=\"open_id\">名字</at> 你的消息内容"
      },
      {
        "title": "富文本消息（post）",
        "body": "在 markdown 内容中使用：\n\n<at user_id=\"open_id\">名字</at>"
      },
      {
        "title": "卡片消息（interactive）",
        "body": "在 lark_md 内容中使用：\n\n<at id=open_id></at>"
      },
      {
        "title": "如何获取机器人的 open_id",
        "body": "方法：从消息历史提取\n\n# 1. 获取 tenant_access_token\nTOKEN=$(curl -s -X POST \"https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"app_id\":\"YOUR_APP_ID\",\"app_secret\":\"YOUR_APP_SECRET\"}' | jq -r '.tenant_access_token')\n\n# 2. 获取群消息历史，提取 mentions\ncurl -s \"https://open.feishu.cn/open-apis/im/v1/messages?container_id_type=chat&container_id=CHAT_ID&page_size=50\" \\\n  -H \"Authorization: Bearer $TOKEN\" | \\\n  jq '[.data.items[]? | select(.mentions != null and .mentions != []) | .mentions[]?] | unique_by(.id)'\n\n关键点：\n\n飞书的群成员 API 不返回机器人信息\n必须从消息历史的 mentions 字段提取\n机器人在群里被艾特过的消息才会有 mentions"
      },
      {
        "title": "使用 message 工具",
        "body": "message action=send channel=feishu target=chat:CHAT_ID message=\"<at user_id=\\\"ou_xxx\\\">机器人名</at> 你好！\""
      },
      {
        "title": "使用飞书 API 直接调用",
        "body": "curl -X POST \"https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"receive_id\": \"CHAT_ID\",\n    \"msg_type\": \"text\",\n    \"content\": \"{\\\"text\\\":\\\"<at user_id=\\\\\\\"ou_xxx\\\\\\\">机器人名</at> 你好！\\\"}\"\n  }'"
      },
      {
        "title": "注意事项",
        "body": "必须使用 open_id：不能用 app_id，必须是 ou_ 开头的 open_id\n机器人必须在群里：被艾特的机器人必须是群成员\n机器人需要订阅事件：被艾特的机器人需要订阅 im.message.group_at_msg 事件才能收到通知\n缓存机器人 open_id：获取后建议保存到 TOOLS.md 或数据库，避免重复查询"
      },
      {
        "title": "当前群机器人列表",
        "body": "从 TOOLS.md 或消息历史中查找具体的 open_id\n\n示例：\n\n名称open_idOpenClaw唐ou_xxxLynnou_xxx"
      }
    ],
    "body": "飞书 @机器人 技能\n\n在飞书群聊中 @其他机器人并发送消息，让被艾特的机器人收到通知并响应。\n\n前提条件\n\n确保飞书应用有以下权限：\n\nim:message 或 im:message:send_as_bot — 发送消息\nim:message.group_at_msg:readonly — 接收 @消息\n核心：@机器人格式\n文本消息\n<at user_id=\"open_id\">名字</at> 你的消息内容\n\n富文本消息（post）\n\n在 markdown 内容中使用：\n\n<at user_id=\"open_id\">名字</at>\n\n卡片消息（interactive）\n\n在 lark_md 内容中使用：\n\n<at id=open_id></at>\n\n如何获取机器人的 open_id\n\n方法：从消息历史提取\n\n# 1. 获取 tenant_access_token\nTOKEN=$(curl -s -X POST \"https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"app_id\":\"YOUR_APP_ID\",\"app_secret\":\"YOUR_APP_SECRET\"}' | jq -r '.tenant_access_token')\n\n# 2. 获取群消息历史，提取 mentions\ncurl -s \"https://open.feishu.cn/open-apis/im/v1/messages?container_id_type=chat&container_id=CHAT_ID&page_size=50\" \\\n  -H \"Authorization: Bearer $TOKEN\" | \\\n  jq '[.data.items[]? | select(.mentions != null and .mentions != []) | .mentions[]?] | unique_by(.id)'\n\n\n关键点：\n\n飞书的群成员 API 不返回机器人信息\n必须从消息历史的 mentions 字段提取\n机器人在群里被艾特过的消息才会有 mentions\n使用示例\n使用 message 工具\nmessage action=send channel=feishu target=chat:CHAT_ID message=\"<at user_id=\\\"ou_xxx\\\">机器人名</at> 你好！\"\n\n使用飞书 API 直接调用\ncurl -X POST \"https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"receive_id\": \"CHAT_ID\",\n    \"msg_type\": \"text\",\n    \"content\": \"{\\\"text\\\":\\\"<at user_id=\\\\\\\"ou_xxx\\\\\\\">机器人名</at> 你好！\\\"}\"\n  }'\n\n注意事项\n必须使用 open_id：不能用 app_id，必须是 ou_ 开头的 open_id\n机器人必须在群里：被艾特的机器人必须是群成员\n机器人需要订阅事件：被艾特的机器人需要订阅 im.message.group_at_msg 事件才能收到通知\n缓存机器人 open_id：获取后建议保存到 TOOLS.md 或数据库，避免重复查询\n当前群机器人列表\n\n从 TOOLS.md 或消息历史中查找具体的 open_id\n\n示例：\n\n名称\topen_id\nOpenClaw唐\tou_xxx\nLynn\tou_xxx"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/pcjinglang/feishu-mention-bot",
    "publisherUrl": "https://clawhub.ai/pcjinglang/feishu-mention-bot",
    "owner": "pcjinglang",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/feishu-mention-bot",
    "downloadUrl": "https://openagent3.xyz/downloads/feishu-mention-bot",
    "agentUrl": "https://openagent3.xyz/skills/feishu-mention-bot/agent",
    "manifestUrl": "https://openagent3.xyz/skills/feishu-mention-bot/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/feishu-mention-bot/agent.md"
  }
}