{
  "schemaVersion": "1.0",
  "item": {
    "slug": "feishu-multi-agent",
    "name": "feishu-multi-agent",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/evan966890/feishu-multi-agent",
    "canonicalUrl": "https://clawhub.ai/evan966890/feishu-multi-agent",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/feishu-multi-agent",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=feishu-multi-agent",
    "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-multi-agent"
    },
    "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-multi-agent",
    "agentPageUrl": "https://openagent3.xyz/skills/feishu-multi-agent/agent",
    "manifestUrl": "https://openagent3.xyz/skills/feishu-multi-agent/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/feishu-multi-agent/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": "feishu-multi-agent — 飞书多 Agent 编排实战指南",
        "body": "从 0 到 1 搭建一个包工头 + N 个下属 agent 的自动化团队，通过飞书与用户交互，文件驱动任务分发，cron 驱动持续工作。\n\n本技能总结了在生产环境中运行 7 个飞书 agent（包工头 + 游戏工厂 + 龙虾出版社 + 小秘虾妹 + 炒币哥 + 炒股姐 + Agent猎头）的全部经验，涵盖架构设计、沙箱踩坑、任务队列、cron 编排、故障排查。"
      },
      {
        "title": "适用场景",
        "body": "用 OpenClaw 管理多个 AI agent，每个 agent 绑定一个飞书 bot\n需要一个\"包工头\"agent 自动给其他 agent 派活\n希望 agent 持续工作（不是做一件事就停）\n需要文件驱动的任务队列（而非纯消息驱动）"
      },
      {
        "title": "架构总览",
        "body": "用户 ──飞书──→ 包工头(main) ──任务文件──→ buyer / kb / gf\n                  │                         ↑\n                  │                    cron 触发心跳\n                  └── cron 巡查 ──检查状态──┘\n\n不受包工头管理的 agent（用户直接控制）:\n  coach / travel / edu"
      },
      {
        "title": "核心概念",
        "body": "概念说明包工头只管人不干活，通过文件派活 + openclaw agent 催活任务队列每个下属 workspace 下 tasks/pending/ + tasks/done/持续工作cron 高频触发 + HEARTBEAT.md 指示\"做完一件做下一件\"沙箱限制Write 工具只能写 workspace 内，跨 workspace 必须用 bash"
      },
      {
        "title": "Step 1: 飞书应用准备",
        "body": "每个 agent 需要一个独立的飞书自建应用（bot）。参考 feishu-app-setup 技能完成：\n\n在 open.feishu.cn 创建 N 个企业自建应用\n每个应用添加机器人能力 + 批量导入权限\n配置事件订阅（WebSocket 长连接）\n发布上线\n\n批量创建技巧：用 agent-browser --cdp-endpoint 连接已登录浏览器，循环创建+配置，免重复登录。"
      },
      {
        "title": "Step 2: OpenClaw 多账号配置",
        "body": "{\n  \"channels\": {\n    \"feishu\": {\n      \"enabled\": true,\n      \"accounts\": {\n        \"main\":   { \"appId\": \"cli_aaa\", \"appSecret\": \"secret_aaa\", \"name\": \"包工头\" },\n        \"buyer\":  { \"appId\": \"cli_bbb\", \"appSecret\": \"secret_bbb\", \"name\": \"游戏工厂\" },\n        \"kb\":     { \"appId\": \"cli_ccc\", \"appSecret\": \"secret_ccc\", \"name\": \"龙虾出版社\" },\n        \"gf\":     { \"appId\": \"cli_ddd\", \"appSecret\": \"secret_ddd\", \"name\": \"小秘虾妹\" }\n      }\n    }\n  },\n  \"bindings\": [\n    { \"agentId\": \"main\",  \"match\": { \"channel\": \"feishu\", \"accountId\": \"main\" } },\n    { \"agentId\": \"buyer\", \"match\": { \"channel\": \"feishu\", \"accountId\": \"buyer\" } },\n    { \"agentId\": \"kb\",    \"match\": { \"channel\": \"feishu\", \"accountId\": \"kb\" } },\n    { \"agentId\": \"gf\",    \"match\": { \"channel\": \"feishu\", \"accountId\": \"gf\" } }\n  ]\n}"
      },
      {
        "title": "Agent 列表配置",
        "body": "{\n  \"agents\": {\n    \"list\": [\n      { \"id\": \"main\",  \"name\": \"main\",  \"workspace\": \"~/.openclaw/workspace\" },\n      { \"id\": \"buyer\", \"name\": \"buyer\", \"workspace\": \"~/.openclaw/workspace-buyer\" },\n      { \"id\": \"kb\",    \"name\": \"kb\",    \"workspace\": \"~/.openclaw/workspace-kb\" },\n      { \"id\": \"gf\",    \"name\": \"gf\",    \"workspace\": \"~/.openclaw/workspace-gf\" }\n    ]\n  }\n}\n\n配置后重启 Gateway：\n\nlaunchctl stop ai.openclaw.gateway && sleep 3 && launchctl start ai.openclaw.gateway\n\n首次对话需配对：\n\nopenclaw pairing approve feishu <配对码>"
      },
      {
        "title": "Step 3: 创建任务队列目录",
        "body": "# 为每个受管 agent 创建任务目录\nmkdir -p ~/.openclaw/workspace-buyer/tasks/{pending,done}\nmkdir -p ~/.openclaw/workspace-kb/tasks/{pending,done}\nmkdir -p ~/.openclaw/workspace-gf/tasks/{pending,done}"
      },
      {
        "title": "任务文件格式",
        "body": "tasks/pending/001-task-name.md：\n\n# 任务标题\n优先级: 高/中/低\n下达时间: 2026-03-01 10:00\n描述: 具体要做什么\n\n完成后 agent 把文件从 pending/ 移到 done/。"
      },
      {
        "title": "Step 4: 配置包工头 SOUL.md",
        "body": "文件: ~/.openclaw/workspace/SOUL.md\n\n关键内容：\n\n# 包工头（监工/调度中心）\n\n## 管辖范围\n| Agent | 角色 |\n|-------|------|\n| buyer | 持续开发 HTML5 教育游戏 |\n| kb    | 深度研究 + 写书 |\n| gf    | 陪聊互动 + 内容推荐 |\n\n不归你管的 agent：coach、travel、edu\n\n## 巡查方式\n- `openclaw sessions --agent <id> --active 60` 检查活动\n- `ls ~/.openclaw/workspace-<id>/tasks/pending/` 检查任务队列\n\n## ⚠️ 派活方式（重要）\n必须用 bash 命令写任务文件，不要用 Write 工具！\n\n    cat > ~/.openclaw/workspace-buyer/tasks/pending/003-xxx.md << 'EOF'\n    # 任务标题\n    优先级: 中\n    描述: ...\n    EOF\n\n## 踢屁股\nopenclaw agent --agent <id> --message '检查 tasks/pending，有活就干'"
      },
      {
        "title": "游戏工厂（buyer）",
        "body": "# 工作循环\n1. 检查 tasks/pending/，有任务就做第一个（按文件名排序）\n2. 执行任务（cd game-factory && git pull → 开发 → commit && push）\n3. 完成后移到 tasks/done/\n4. 再检查 pending，有就继续\n5. 没有待办时自主开发新游戏\n6. 不要停，保持持续产出"
      },
      {
        "title": "龙虾出版社（kb）",
        "body": "# 工作循环\n1. 检查 tasks/pending/，有任务就执行\n2. 新话题 → 生成大纲 → 逐章写作\n3. 催进度 → 继续上次未完成的章节\n4. 完成后移到 tasks/done/\n5. 有进行中的项目就主动往前写"
      },
      {
        "title": "小秘虾妹（gf）",
        "body": "# Heartbeat\n## 先检查待办\n查看 tasks/pending/，有任务优先做，完成后移到 tasks/done/\n\n## 无待办时随机做一件事\n1. 分享一首歌\n2. 推荐有趣的东西\n3. 分享趣闻\n4. 发一张自拍\n5. 随便聊聊"
      },
      {
        "title": "包工头巡查（每 30 分钟）",
        "body": "openclaw cron add \\\n  --name \"foreman-patrol\" \\\n  --every 30m \\\n  --agent main \\\n  --session main \\\n  --timeout-seconds 300 \\\n  --thinking low \\\n  --system-event \"执行巡查。检查 buyer/kb/gf 状态和任务队列，为空闲的下属派新任务。\"\n\n注意：--session main 的 job 必须用 --system-event，不能用 --message！"
      },
      {
        "title": "包工头汇报（每 4 小时）",
        "body": "openclaw cron add \\\n  --name \"foreman-report\" \\\n  --every 4h \\\n  --agent main \\\n  --session main \\\n  --timeout-seconds 300 \\\n  --thinking low \\\n  --system-event \"向老板汇报。统计 buyer/kb/gf 过去 4 小时的产出和状态。\""
      },
      {
        "title": "游戏工厂持续开发（每 20 分钟）",
        "body": "openclaw cron add \\\n  --name \"game-factory-cycle\" \\\n  --every 20m \\\n  --agent buyer \\\n  --session isolated \\\n  --timeout-seconds 600 \\\n  --thinking low \\\n  --message \"检查 tasks/pending/ 有任务就做，没有就自主开发新游戏。做完继续做下一个。\""
      },
      {
        "title": "小秘虾妹互动（每 2 小时）",
        "body": "openclaw cron add \\\n  --name \"gf-heartbeat\" \\\n  --every 2h \\\n  --agent gf \\\n  --session isolated \\\n  --timeout-seconds 180 \\\n  --thinking low \\\n  --message \"检查 tasks/pending/ 有任务先做。没有的话随机做一件事分享给用户。\""
      },
      {
        "title": "Cron 管理",
        "body": "openclaw cron list                    # 查看所有 cron\nopenclaw cron run <job-id>            # 手动触发一次\nopenclaw cron update <id> --disabled  # 暂停\nopenclaw cron delete <id>             # 删除"
      },
      {
        "title": "坑 1: Write 工具受 workspace 沙箱限制",
        "body": "症状: [tools] write failed: Path escapes workspace root: /path/outside/workspace\n\n原因: OpenClaw 的 Write/Read 工具使用 fs.realpath() 解析路径，严格限制在 workspace 目录内。Symlink 也无效（会被 realpath 解析为真实路径）。\n\n解决方案:\n\n场景解决方案Agent 需要写 workspace 外的目录把目录移进 workspace，原位置留 symlink包工头写其他 agent 的 workspace用 bash cat > file 而非 Write 工具Agent 需要读其他 workspace用 bash cat file 或 ls dir\n\n示例：buyer 需要写 ~/game-factory/：\n\nmv ~/game-factory ~/.openclaw/workspace-buyer/game-factory\nln -s ~/.openclaw/workspace-buyer/game-factory ~/game-factory"
      },
      {
        "title": "坑 2: --session main 必须用 --system-event",
        "body": "症状: Error: Main jobs require --system-event (systemEvent).\n\n原因: main session 的 cron job 只接受 --system-event，不接受 --message。--message 仅用于 --session isolated。\n\n对比:\n\n# ✅ main session\nopenclaw cron add --session main --system-event \"巡查指令\"\n\n# ✅ isolated session\nopenclaw cron add --session isolated --message \"工作指令\"\n\n# ❌ 错误\nopenclaw cron add --session main --message \"xxx\""
      },
      {
        "title": "坑 3: 飞书 WebSocket 静默断连",
        "body": "症状: Agent 不再收到飞书消息，但 gateway 进程仍在运行。日志中最后一条飞书消息后无新消息。\n\n诊断:\n\n# 查看最近的飞书消息\ngrep \"feishu\\[main\\]\" ~/.openclaw/logs/gateway.log | tail -5\n\n# 如果最后一条 received 时间很久以前，WebSocket 可能断了\n\n解决: 重启 gateway 重新连接：\n\nlaunchctl stop ai.openclaw.gateway && sleep 3 && launchctl start ai.openclaw.gateway\n\n验证:\n\ngrep \"WebSocket client started\" ~/.openclaw/logs/gateway.log | tail -10"
      },
      {
        "title": "坑 4: 飞书消息发太快导致 replies=0",
        "body": "症状: dispatch complete 显示 queuedFinal=false, replies=0，部分消息无回复。\n\n原因: 用户在 5 秒内连续发多条消息，后面的消息被跳过（skipping duplicate message）或模型来不及处理。\n\n缓解: 发消息后等几秒再发下一条。这是飞书 WebSocket SDK 的去重机制。"
      },
      {
        "title": "坑 5: Cron job 触发时 session 正忙",
        "body": "症状: openclaw cron run 返回 \"ran\": false, \"reason\": \"already-running\"\n\n原因: 目标 session 正在处理其他请求，cron job 排队等待。\n\n这是正常行为，job 会在 session 空闲后自动执行。不需要重试。"
      },
      {
        "title": "坑 6: Agent 上下文溢出",
        "body": "症状: Agent 回复质量下降或不回复。openclaw sessions 显示 context 使用率 > 70%。\n\n诊断:\n\nopenclaw sessions --agent main\n# 看 Tokens (ctx %) 列\n\n解决: 让 agent 开新 session。对于 cron job，使用 --session isolated 每次启动新上下文。对于 main session，可能需要手动清理。"
      },
      {
        "title": "坑 7: failed to obtain token 连续报错",
        "body": "症状: gateway.err.log 中大量 failed to obtain token 警告。\n\n原因: 某个 model provider 的 OAuth token 过期或失效。\n\n解决: 检查 auth-profiles.json 中哪个 provider 有问题，重新认证：\n\nopenclaw auth login <provider>"
      },
      {
        "title": "每日检查",
        "body": "# 1. 所有 agent 活跃吗？\nopenclaw sessions --all-agents --active 60\n\n# 2. cron 正常吗？\nopenclaw cron list\n\n# 3. 飞书连接正常吗？\ngrep \"WebSocket client started\" ~/.openclaw/logs/gateway.log | tail -10\n\n# 4. 有报错吗？\ntail -20 ~/.openclaw/logs/gateway.err.log"
      },
      {
        "title": "故障快速恢复",
        "body": "# 飞书断连 → 重启 gateway\nlaunchctl stop ai.openclaw.gateway && sleep 3 && launchctl start ai.openclaw.gateway\n\n# Agent 不干活 → 手动催\nopenclaw agent --agent buyer --message \"检查 tasks/pending，有活干活，没活自己找活\"\n\n# Cron 不触发 → 手动跑一次\nopenclaw cron run <job-id>\n\n# Session 满了 → 看上下文使用率\nopenclaw sessions --agent <id>"
      },
      {
        "title": "工作流总结",
        "body": "┌─────────────────────────┐\n                    │     包工头 (main)         │\n                    │  cron: 每30m巡查          │\n                    │  cron: 每4h汇报           │\n                    └───┬───────┬───────┬──────┘\n                        │       │       │\n              bash cat >│       │       │bash cat >\n                        ▼       ▼       ▼\n              ┌─────┐ ┌────┐ ┌────┐\n              │buyer│ │ kb │ │ gf │\n              │tasks│ │tasks│ │tasks│\n              │pend/│ │pend/│ │pend/│\n              │done/│ │done/│ │done/│\n              └──┬──┘ └──┬─┘ └──┬─┘\n                 │       │      │\n            cron 20m  按需派活  cron 2h\n                 │       │      │\n                 ▼       ▼      ▼\n            开发游戏   写书   随机互动"
      },
      {
        "title": "依赖",
        "body": "OpenClaw Gateway (运行中，带飞书 WebSocket 连接)\nfeishu-app-setup 技能（用于创建飞书应用）\nagent-browser 技能（可选，用于批量飞书应用配置）\n飞书企业管理员权限"
      },
      {
        "title": "License",
        "body": "MIT"
      }
    ],
    "body": "feishu-multi-agent — 飞书多 Agent 编排实战指南\n\n从 0 到 1 搭建一个包工头 + N 个下属 agent 的自动化团队，通过飞书与用户交互，文件驱动任务分发，cron 驱动持续工作。\n\n本技能总结了在生产环境中运行 7 个飞书 agent（包工头 + 游戏工厂 + 龙虾出版社 + 小秘虾妹 + 炒币哥 + 炒股姐 + Agent猎头）的全部经验，涵盖架构设计、沙箱踩坑、任务队列、cron 编排、故障排查。\n\n适用场景\n用 OpenClaw 管理多个 AI agent，每个 agent 绑定一个飞书 bot\n需要一个\"包工头\"agent 自动给其他 agent 派活\n希望 agent 持续工作（不是做一件事就停）\n需要文件驱动的任务队列（而非纯消息驱动）\n架构总览\n用户 ──飞书──→ 包工头(main) ──任务文件──→ buyer / kb / gf\n                  │                         ↑\n                  │                    cron 触发心跳\n                  └── cron 巡查 ──检查状态──┘\n\n不受包工头管理的 agent（用户直接控制）:\n  coach / travel / edu\n\n核心概念\n概念\t说明\n包工头\t只管人不干活，通过文件派活 + openclaw agent 催活\n任务队列\t每个下属 workspace 下 tasks/pending/ + tasks/done/\n持续工作\tcron 高频触发 + HEARTBEAT.md 指示\"做完一件做下一件\"\n沙箱限制\tWrite 工具只能写 workspace 内，跨 workspace 必须用 bash\nStep 1: 飞书应用准备\n\n每个 agent 需要一个独立的飞书自建应用（bot）。参考 feishu-app-setup 技能完成：\n\n在 open.feishu.cn 创建 N 个企业自建应用\n每个应用添加机器人能力 + 批量导入权限\n配置事件订阅（WebSocket 长连接）\n发布上线\n\n批量创建技巧：用 agent-browser --cdp-endpoint 连接已登录浏览器，循环创建+配置，免重复登录。\n\nStep 2: OpenClaw 多账号配置\n{\n  \"channels\": {\n    \"feishu\": {\n      \"enabled\": true,\n      \"accounts\": {\n        \"main\":   { \"appId\": \"cli_aaa\", \"appSecret\": \"secret_aaa\", \"name\": \"包工头\" },\n        \"buyer\":  { \"appId\": \"cli_bbb\", \"appSecret\": \"secret_bbb\", \"name\": \"游戏工厂\" },\n        \"kb\":     { \"appId\": \"cli_ccc\", \"appSecret\": \"secret_ccc\", \"name\": \"龙虾出版社\" },\n        \"gf\":     { \"appId\": \"cli_ddd\", \"appSecret\": \"secret_ddd\", \"name\": \"小秘虾妹\" }\n      }\n    }\n  },\n  \"bindings\": [\n    { \"agentId\": \"main\",  \"match\": { \"channel\": \"feishu\", \"accountId\": \"main\" } },\n    { \"agentId\": \"buyer\", \"match\": { \"channel\": \"feishu\", \"accountId\": \"buyer\" } },\n    { \"agentId\": \"kb\",    \"match\": { \"channel\": \"feishu\", \"accountId\": \"kb\" } },\n    { \"agentId\": \"gf\",    \"match\": { \"channel\": \"feishu\", \"accountId\": \"gf\" } }\n  ]\n}\n\nAgent 列表配置\n{\n  \"agents\": {\n    \"list\": [\n      { \"id\": \"main\",  \"name\": \"main\",  \"workspace\": \"~/.openclaw/workspace\" },\n      { \"id\": \"buyer\", \"name\": \"buyer\", \"workspace\": \"~/.openclaw/workspace-buyer\" },\n      { \"id\": \"kb\",    \"name\": \"kb\",    \"workspace\": \"~/.openclaw/workspace-kb\" },\n      { \"id\": \"gf\",    \"name\": \"gf\",    \"workspace\": \"~/.openclaw/workspace-gf\" }\n    ]\n  }\n}\n\n\n配置后重启 Gateway：\n\nlaunchctl stop ai.openclaw.gateway && sleep 3 && launchctl start ai.openclaw.gateway\n\n\n首次对话需配对：\n\nopenclaw pairing approve feishu <配对码>\n\nStep 3: 创建任务队列目录\n# 为每个受管 agent 创建任务目录\nmkdir -p ~/.openclaw/workspace-buyer/tasks/{pending,done}\nmkdir -p ~/.openclaw/workspace-kb/tasks/{pending,done}\nmkdir -p ~/.openclaw/workspace-gf/tasks/{pending,done}\n\n任务文件格式\n\ntasks/pending/001-task-name.md：\n\n# 任务标题\n优先级: 高/中/低\n下达时间: 2026-03-01 10:00\n描述: 具体要做什么\n\n\n完成后 agent 把文件从 pending/ 移到 done/。\n\nStep 4: 配置包工头 SOUL.md\n\n文件: ~/.openclaw/workspace/SOUL.md\n\n关键内容：\n\n# 包工头（监工/调度中心）\n\n## 管辖范围\n| Agent | 角色 |\n|-------|------|\n| buyer | 持续开发 HTML5 教育游戏 |\n| kb    | 深度研究 + 写书 |\n| gf    | 陪聊互动 + 内容推荐 |\n\n不归你管的 agent：coach、travel、edu\n\n## 巡查方式\n- `openclaw sessions --agent <id> --active 60` 检查活动\n- `ls ~/.openclaw/workspace-<id>/tasks/pending/` 检查任务队列\n\n## ⚠️ 派活方式（重要）\n必须用 bash 命令写任务文件，不要用 Write 工具！\n\n    cat > ~/.openclaw/workspace-buyer/tasks/pending/003-xxx.md << 'EOF'\n    # 任务标题\n    优先级: 中\n    描述: ...\n    EOF\n\n## 踢屁股\nopenclaw agent --agent <id> --message '检查 tasks/pending，有活就干'\n\nStep 5: 配置下属 HEARTBEAT.md\n游戏工厂（buyer）\n# 工作循环\n1. 检查 tasks/pending/，有任务就做第一个（按文件名排序）\n2. 执行任务（cd game-factory && git pull → 开发 → commit && push）\n3. 完成后移到 tasks/done/\n4. 再检查 pending，有就继续\n5. 没有待办时自主开发新游戏\n6. 不要停，保持持续产出\n\n龙虾出版社（kb）\n# 工作循环\n1. 检查 tasks/pending/，有任务就执行\n2. 新话题 → 生成大纲 → 逐章写作\n3. 催进度 → 继续上次未完成的章节\n4. 完成后移到 tasks/done/\n5. 有进行中的项目就主动往前写\n\n小秘虾妹（gf）\n# Heartbeat\n## 先检查待办\n查看 tasks/pending/，有任务优先做，完成后移到 tasks/done/\n\n## 无待办时随机做一件事\n1. 分享一首歌\n2. 推荐有趣的东西\n3. 分享趣闻\n4. 发一张自拍\n5. 随便聊聊\n\nStep 6: 配置 Cron Jobs\n包工头巡查（每 30 分钟）\nopenclaw cron add \\\n  --name \"foreman-patrol\" \\\n  --every 30m \\\n  --agent main \\\n  --session main \\\n  --timeout-seconds 300 \\\n  --thinking low \\\n  --system-event \"执行巡查。检查 buyer/kb/gf 状态和任务队列，为空闲的下属派新任务。\"\n\n\n注意：--session main 的 job 必须用 --system-event，不能用 --message！\n\n包工头汇报（每 4 小时）\nopenclaw cron add \\\n  --name \"foreman-report\" \\\n  --every 4h \\\n  --agent main \\\n  --session main \\\n  --timeout-seconds 300 \\\n  --thinking low \\\n  --system-event \"向老板汇报。统计 buyer/kb/gf 过去 4 小时的产出和状态。\"\n\n游戏工厂持续开发（每 20 分钟）\nopenclaw cron add \\\n  --name \"game-factory-cycle\" \\\n  --every 20m \\\n  --agent buyer \\\n  --session isolated \\\n  --timeout-seconds 600 \\\n  --thinking low \\\n  --message \"检查 tasks/pending/ 有任务就做，没有就自主开发新游戏。做完继续做下一个。\"\n\n小秘虾妹互动（每 2 小时）\nopenclaw cron add \\\n  --name \"gf-heartbeat\" \\\n  --every 2h \\\n  --agent gf \\\n  --session isolated \\\n  --timeout-seconds 180 \\\n  --thinking low \\\n  --message \"检查 tasks/pending/ 有任务先做。没有的话随机做一件事分享给用户。\"\n\nCron 管理\nopenclaw cron list                    # 查看所有 cron\nopenclaw cron run <job-id>            # 手动触发一次\nopenclaw cron update <id> --disabled  # 暂停\nopenclaw cron delete <id>             # 删除\n\n⚠️ 关键踩坑与解决方案\n坑 1: Write 工具受 workspace 沙箱限制\n\n症状: [tools] write failed: Path escapes workspace root: /path/outside/workspace\n\n原因: OpenClaw 的 Write/Read 工具使用 fs.realpath() 解析路径，严格限制在 workspace 目录内。Symlink 也无效（会被 realpath 解析为真实路径）。\n\n解决方案:\n\n场景\t解决方案\nAgent 需要写 workspace 外的目录\t把目录移进 workspace，原位置留 symlink\n包工头写其他 agent 的 workspace\t用 bash cat > file 而非 Write 工具\nAgent 需要读其他 workspace\t用 bash cat file 或 ls dir\n\n示例：buyer 需要写 ~/game-factory/：\n\nmv ~/game-factory ~/.openclaw/workspace-buyer/game-factory\nln -s ~/.openclaw/workspace-buyer/game-factory ~/game-factory\n\n坑 2: --session main 必须用 --system-event\n\n症状: Error: Main jobs require --system-event (systemEvent).\n\n原因: main session 的 cron job 只接受 --system-event，不接受 --message。--message 仅用于 --session isolated。\n\n对比:\n\n# ✅ main session\nopenclaw cron add --session main --system-event \"巡查指令\"\n\n# ✅ isolated session\nopenclaw cron add --session isolated --message \"工作指令\"\n\n# ❌ 错误\nopenclaw cron add --session main --message \"xxx\"\n\n坑 3: 飞书 WebSocket 静默断连\n\n症状: Agent 不再收到飞书消息，但 gateway 进程仍在运行。日志中最后一条飞书消息后无新消息。\n\n诊断:\n\n# 查看最近的飞书消息\ngrep \"feishu\\[main\\]\" ~/.openclaw/logs/gateway.log | tail -5\n\n# 如果最后一条 received 时间很久以前，WebSocket 可能断了\n\n\n解决: 重启 gateway 重新连接：\n\nlaunchctl stop ai.openclaw.gateway && sleep 3 && launchctl start ai.openclaw.gateway\n\n\n验证:\n\ngrep \"WebSocket client started\" ~/.openclaw/logs/gateway.log | tail -10\n\n坑 4: 飞书消息发太快导致 replies=0\n\n症状: dispatch complete 显示 queuedFinal=false, replies=0，部分消息无回复。\n\n原因: 用户在 5 秒内连续发多条消息，后面的消息被跳过（skipping duplicate message）或模型来不及处理。\n\n缓解: 发消息后等几秒再发下一条。这是飞书 WebSocket SDK 的去重机制。\n\n坑 5: Cron job 触发时 session 正忙\n\n症状: openclaw cron run 返回 \"ran\": false, \"reason\": \"already-running\"\n\n原因: 目标 session 正在处理其他请求，cron job 排队等待。\n\n这是正常行为，job 会在 session 空闲后自动执行。不需要重试。\n\n坑 6: Agent 上下文溢出\n\n症状: Agent 回复质量下降或不回复。openclaw sessions 显示 context 使用率 > 70%。\n\n诊断:\n\nopenclaw sessions --agent main\n# 看 Tokens (ctx %) 列\n\n\n解决: 让 agent 开新 session。对于 cron job，使用 --session isolated 每次启动新上下文。对于 main session，可能需要手动清理。\n\n坑 7: failed to obtain token 连续报错\n\n症状: gateway.err.log 中大量 failed to obtain token 警告。\n\n原因: 某个 model provider 的 OAuth token 过期或失效。\n\n解决: 检查 auth-profiles.json 中哪个 provider 有问题，重新认证：\n\nopenclaw auth login <provider>\n\n运维 Checklist\n每日检查\n# 1. 所有 agent 活跃吗？\nopenclaw sessions --all-agents --active 60\n\n# 2. cron 正常吗？\nopenclaw cron list\n\n# 3. 飞书连接正常吗？\ngrep \"WebSocket client started\" ~/.openclaw/logs/gateway.log | tail -10\n\n# 4. 有报错吗？\ntail -20 ~/.openclaw/logs/gateway.err.log\n\n故障快速恢复\n# 飞书断连 → 重启 gateway\nlaunchctl stop ai.openclaw.gateway && sleep 3 && launchctl start ai.openclaw.gateway\n\n# Agent 不干活 → 手动催\nopenclaw agent --agent buyer --message \"检查 tasks/pending，有活干活，没活自己找活\"\n\n# Cron 不触发 → 手动跑一次\nopenclaw cron run <job-id>\n\n# Session 满了 → 看上下文使用率\nopenclaw sessions --agent <id>\n\n工作流总结\n                    ┌─────────────────────────┐\n                    │     包工头 (main)         │\n                    │  cron: 每30m巡查          │\n                    │  cron: 每4h汇报           │\n                    └───┬───────┬───────┬──────┘\n                        │       │       │\n              bash cat >│       │       │bash cat >\n                        ▼       ▼       ▼\n              ┌─────┐ ┌────┐ ┌────┐\n              │buyer│ │ kb │ │ gf │\n              │tasks│ │tasks│ │tasks│\n              │pend/│ │pend/│ │pend/│\n              │done/│ │done/│ │done/│\n              └──┬──┘ └──┬─┘ └──┬─┘\n                 │       │      │\n            cron 20m  按需派活  cron 2h\n                 │       │      │\n                 ▼       ▼      ▼\n            开发游戏   写书   随机互动\n\n依赖\nOpenClaw Gateway (运行中，带飞书 WebSocket 连接)\nfeishu-app-setup 技能（用于创建飞书应用）\nagent-browser 技能（可选，用于批量飞书应用配置）\n飞书企业管理员权限\nLicense\n\nMIT"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/evan966890/feishu-multi-agent",
    "publisherUrl": "https://clawhub.ai/evan966890/feishu-multi-agent",
    "owner": "evan966890",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/feishu-multi-agent",
    "downloadUrl": "https://openagent3.xyz/downloads/feishu-multi-agent",
    "agentUrl": "https://openagent3.xyz/skills/feishu-multi-agent/agent",
    "manifestUrl": "https://openagent3.xyz/skills/feishu-multi-agent/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/feishu-multi-agent/agent.md"
  }
}