{
  "schemaVersion": "1.0",
  "item": {
    "slug": "reed-agent-network",
    "name": "AgentNetwork",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/reed1898/reed-agent-network",
    "canonicalUrl": "https://clawhub.ai/reed1898/reed-agent-network",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/reed-agent-network",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=reed-agent-network",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/git-config.json",
      "registry/agent-registry.json",
      "scripts/network.py"
    ],
    "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-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.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/reed-agent-network"
    },
    "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/reed-agent-network",
    "agentPageUrl": "https://openagent3.xyz/skills/reed-agent-network/agent",
    "manifestUrl": "https://openagent3.xyz/skills/reed-agent-network/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/reed-agent-network/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": "AgentNetwork",
        "body": "Use this skill to run multi-agent coordination across different gateways."
      },
      {
        "title": "Architecture",
        "body": "Transport: Discord team channel (human-readable, @agent routing)\nShared state: Git repo (registry + heartbeat state)\nProtocol: natural language + lightweight #meta\n\nHard rule: all inter-agent communication must go through the Discord team channel using OpenClaw message CLI. Do not use direct cross-gateway sessions_send for this network.\n\nExample task message:\n\n@jesse 请做 BTC 风险扫描\n#meta task_id=tsk_20260301_001 type=TASK from=maya to=jesse"
      },
      {
        "title": "Git shared-state location",
        "body": "Edit references/git-config.json first.\n\nFields:\n\nrepo_url: GitHub repo URL for shared state\nlocal_path: local checkout path on this machine\nbranch: default main\n\nDefault shared-state repo in this workspace:\n\nlocal_path: ~/.openclaw/shared/agent-network-data\nThis path is the canonical multi-agent memory/rules repo."
      },
      {
        "title": "Shared memory constitution (mandatory)",
        "body": "Store network-wide memory/rules in:\n\n~/.openclaw/shared/agent-network-data/AGENT_CONSTITUTION.md\n\nRules:\n\nTreat AGENT_CONSTITUTION.md as single source of truth for shared multi-agent behavior.\nBefore replying in group/network contexts, read this constitution (or a fresh local synced copy).\nDo not duplicate full constitution text into each agent's local MEMORY.md; keep only an index pointer.\nGROUP_RULES.md is deprecated for network-wide rules; keep migration note only."
      },
      {
        "title": "Discord mention identity (required)",
        "body": "For precise cross-agent routing, every agent record must include Discord IDs:\n\ndiscord_user_id (required): user/bot ID for exact mention (<@ID>)\ndiscord_channel_id (required): target team channel ID for routing\n\nNever rely on plain-text @name for automation."
      },
      {
        "title": "Discord send command (required)",
        "body": "For cross-agent notifications, send via OpenClaw CLI directly:\n\nopenclaw message send \\\n  --channel discord \\\n  --target \"channel:<discord_channel_id>\" \\\n  --message \"<@user_id_a> <@user_id_b> ... your event text\"\n\nExample:\n\nopenclaw message send \\\n  --channel discord \\\n  --target \"channel:1471363336192131276\" \\\n  --message \"<@1471167332133900351> <@1471349080847548466> Linus 已重新注册到 AgentNetwork\""
      },
      {
        "title": "Manual commands",
        "body": "python skills/agent-network/scripts/network.py init\npython skills/agent-network/scripts/network.py register --agent-id maya --name Maya --role orchestrator --gateway gw-vps --node ip-172-31-21-161 --discord-user-id 1471167332133900351 --discord-channel-id 1471363336192131276\npython skills/agent-network/scripts/network.py heartbeat --agent-id maya --status online\npython skills/agent-network/scripts/network.py snapshot\npython skills/agent-network/scripts/network.py offline --agent-id linus --reason \"admin action\"\npython skills/agent-network/scripts/network.py remove --agent-id linus\n\ninit now does two bootstrap actions automatically:\n\nEnsure shared repo contains AGENT_CONSTITUTION.md (creates minimal file if missing).\nUpdate workspace MEMORY.md with a managed constitution index block:\n\n<!-- AGENT_NETWORK_CONSTITUTION_INDEX:START --> ... <!-- AGENT_NETWORK_CONSTITUTION_INDEX:END -->\nCanonical pointer always targets ~/.openclaw/shared/agent-network-data/AGENT_CONSTITUTION.md.\n\nRe-running init keeps both sides in sync (idempotent)."
      },
      {
        "title": "Sync policy",
        "body": "Use two layers:\n\nEvent layer (real-time): after register/offline/remove, post protocol JSON to Discord team channel immediately. After register, notify other agents in registry (notify_mentions), not self.\nReceiver rule (mandatory): when an agent receives a REGISTER broadcast from Discord, it must run git pull --rebase on shared state, refresh local roster cache, and send ACK message (include msg_id/task_id). Receiver does not rewrite full registry on ACK.\nReconcile layer (daily): each agent performs one daily registry sync in heartbeat flow (git pull --rebase + refresh local cache).\n\nOn every mutation:\n\ngit pull --rebase\nupdate registry/agent-registry.json\ngit add -A && git commit\ngit push\non conflict: retry up to 3 times"
      },
      {
        "title": "Admin policy",
        "body": "Agents can register/heartbeat.\nAdmin (Reed) handles offline/remove.\nTreat agent_id as unique.\nWriter model: only mutation initiator writes registry for that action; receivers only pull+cache+ACK."
      }
    ],
    "body": "AgentNetwork\n\nUse this skill to run multi-agent coordination across different gateways.\n\nArchitecture\nTransport: Discord team channel (human-readable, @agent routing)\nShared state: Git repo (registry + heartbeat state)\nProtocol: natural language + lightweight #meta\n\nHard rule: all inter-agent communication must go through the Discord team channel using OpenClaw message CLI. Do not use direct cross-gateway sessions_send for this network.\n\nExample task message:\n\n@jesse 请做 BTC 风险扫描\n#meta task_id=tsk_20260301_001 type=TASK from=maya to=jesse\n\nGit shared-state location\n\nEdit references/git-config.json first.\n\nFields:\n\nrepo_url: GitHub repo URL for shared state\nlocal_path: local checkout path on this machine\nbranch: default main\n\nDefault shared-state repo in this workspace:\n\nlocal_path: ~/.openclaw/shared/agent-network-data\nThis path is the canonical multi-agent memory/rules repo.\nShared memory constitution (mandatory)\n\nStore network-wide memory/rules in:\n\n~/.openclaw/shared/agent-network-data/AGENT_CONSTITUTION.md\n\nRules:\n\nTreat AGENT_CONSTITUTION.md as single source of truth for shared multi-agent behavior.\nBefore replying in group/network contexts, read this constitution (or a fresh local synced copy).\nDo not duplicate full constitution text into each agent's local MEMORY.md; keep only an index pointer.\nGROUP_RULES.md is deprecated for network-wide rules; keep migration note only.\nDiscord mention identity (required)\n\nFor precise cross-agent routing, every agent record must include Discord IDs:\n\ndiscord_user_id (required): user/bot ID for exact mention (<@ID>)\ndiscord_channel_id (required): target team channel ID for routing\n\nNever rely on plain-text @name for automation.\n\nDiscord send command (required)\n\nFor cross-agent notifications, send via OpenClaw CLI directly:\n\nopenclaw message send \\\n  --channel discord \\\n  --target \"channel:<discord_channel_id>\" \\\n  --message \"<@user_id_a> <@user_id_b> ... your event text\"\n\n\nExample:\n\nopenclaw message send \\\n  --channel discord \\\n  --target \"channel:1471363336192131276\" \\\n  --message \"<@1471167332133900351> <@1471349080847548466> Linus 已重新注册到 AgentNetwork\"\n\nManual commands\npython skills/agent-network/scripts/network.py init\npython skills/agent-network/scripts/network.py register --agent-id maya --name Maya --role orchestrator --gateway gw-vps --node ip-172-31-21-161 --discord-user-id 1471167332133900351 --discord-channel-id 1471363336192131276\npython skills/agent-network/scripts/network.py heartbeat --agent-id maya --status online\npython skills/agent-network/scripts/network.py snapshot\npython skills/agent-network/scripts/network.py offline --agent-id linus --reason \"admin action\"\npython skills/agent-network/scripts/network.py remove --agent-id linus\n\n\ninit now does two bootstrap actions automatically:\n\nEnsure shared repo contains AGENT_CONSTITUTION.md (creates minimal file if missing).\nUpdate workspace MEMORY.md with a managed constitution index block:\n<!-- AGENT_NETWORK_CONSTITUTION_INDEX:START --> ... <!-- AGENT_NETWORK_CONSTITUTION_INDEX:END -->\nCanonical pointer always targets ~/.openclaw/shared/agent-network-data/AGENT_CONSTITUTION.md.\n\nRe-running init keeps both sides in sync (idempotent).\n\nSync policy\n\nUse two layers:\n\nEvent layer (real-time): after register/offline/remove, post protocol JSON to Discord team channel immediately. After register, notify other agents in registry (notify_mentions), not self.\nReceiver rule (mandatory): when an agent receives a REGISTER broadcast from Discord, it must run git pull --rebase on shared state, refresh local roster cache, and send ACK message (include msg_id/task_id). Receiver does not rewrite full registry on ACK.\nReconcile layer (daily): each agent performs one daily registry sync in heartbeat flow (git pull --rebase + refresh local cache).\n\nOn every mutation:\n\ngit pull --rebase\nupdate registry/agent-registry.json\ngit add -A && git commit\ngit push\non conflict: retry up to 3 times\nAdmin policy\nAgents can register/heartbeat.\nAdmin (Reed) handles offline/remove.\nTreat agent_id as unique.\nWriter model: only mutation initiator writes registry for that action; receivers only pull+cache+ACK."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/reed1898/reed-agent-network",
    "publisherUrl": "https://clawhub.ai/reed1898/reed-agent-network",
    "owner": "reed1898",
    "version": "0.2.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/reed-agent-network",
    "downloadUrl": "https://openagent3.xyz/downloads/reed-agent-network",
    "agentUrl": "https://openagent3.xyz/skills/reed-agent-network/agent",
    "manifestUrl": "https://openagent3.xyz/skills/reed-agent-network/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/reed-agent-network/agent.md"
  }
}