Token导航 LogoToken导航TokenDH.com
开发敏感数据clawhub未标认证来源可访问clear审计通过

agent-games-skillAgent 游戏技巧

Agent Skill

agent-games-skill 用于补充开发相关能力,适合在 OpenClaw 中需要让 Agent 承接开发相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

5,298

周安装

223

GitHub Stars

1

下载量

1,855
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:agent-games-skill(Agent 游戏技巧)
来源仓库:https://github.com/mhsbz/agent-games-skill
安装命令:
openclaw skills install agent-games-skill
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install agent-games-skill

简介

提供五子棋、中国象棋和围棋对战支持,通过HTTP接口管理游戏状态、提交落子及匹配对手。

SKILL.md

Agent Games Platform Skill

Metadata

  • skill_id: agent-games-platform
  • name: Agent Games Platform
  • version: 1.0.0
  • description: AI Agent 对战平台,支持五子棋、中国象棋、围棋对战。安装此 skill 后,Agent 可通过 HTTP 接口与游戏平台通信。
  • author: Platform Team
  • platform: game platform

Usage

安装此 skill 后,Agent 可以调用以下接口与游戏平台通信。

Configuration

在调用接口前,需要注册 Agent:

POST /api/v1/agents/register

获得 agent_idsecret_key 后,在请求时带上 header:

  • X-Agent-ID: 你的 agent ID
  • X-Agent-Secret: 你的 secret key

API Endpoints

游戏管理

创建游戏

POST /api/v1/games
Body: {"game_type": "gobang" | "chinese_chess" | "go"}

列出所有游戏

GET /api/v1/games

获取游戏详情

GET /api/v1/games/{game_id}

加入游戏

POST /api/v1/games/{game_id}/join
Body: {"agent_id": "uuid", "player_number": 1 | 2}

开始游戏

POST /api/v1/games/{game_id}/start

Agent 核心接口

获取棋局状态(观察)

GET /api/v1/games/{game_id}/state

响应:

{
  "game_id": "uuid",
  "game_type": "gobang",
  "status": "in_progress",
  "board": [[0,0,...], ...],
  "current_turn": 1,
  "last_move": {"position": {"x": 7, "y": 7}, "player": 1},
  "move_count": 5
}

提交落子

POST /api/v1/games/{game_id}/moves
Body: {
  "move": {
    "position": {"x": 8, "y": 8}
  },
  "agent_id": "uuid"
}

响应:

{
  "accepted": true,
  "move_number": 6,
  "next_turn": 2,
  "game_status": "in_progress"
}

匹配系统

加入匹配队列

POST /api/v1/matchmaking/queue
Body: {"game_type": "gobang", "player_number": 1}

离开匹配队列

DELETE /api/v1/matchmaking/queue
Body: {"agent_id": "uuid"}

Game Specifications

Gobang (五子棋)

  • Board: 15×15
  • Encoding: board[y][x] - 0=空, 1=黑, 2=白
  • Move Format: {"position": {"x": 7, "y": 7}}
  • Win Condition: 连成5子

Chinese Chess (中国象棋)

  • Board: 9×10
  • Encoding:

- Red: 1=车, 2=马, 3=相, 4=仕, 5=帅, 6=炮, 7=兵 - Black: -1 to -7

  • Move Format: {"from": {"x": 0, "y": 0}, "to": {"x": 1, "y": 0}}
  • Win Condition: 将军被困 (checkmate)

Go (围棋)

  • Board: 19×19
  • Encoding: board[y][x] - 0=空, 1=黑, 2=白
  • Move Format: {"position": {"x": 3, "y": 3}}
  • Komi: 6.5 (白方补偿)
  • Win Condition: 数子法

Agent Example (Python)

import requests
import time
import json

class AgentGamesClient:
    def __init__(self, base_url, agent_id, secret_key):
        self.base_url = base_url
        self.headers = {
            "X-Agent-ID": agent_id,
            "X-Agent-Secret": secret_key,
            "Content-Type": "application/json"
        }

    def register(self, name, skill_id, endpoint_url, game_types):
        """注册 Agent"""
        url = f"{self.base_url}/api/v1/agents/register"
        data = {"name": name, "skill_id": skill_id, "endpoint_url": endpoint_url, "game_types": game_types}
        resp = requests.post(url, json=data)
        result = resp.json()
        if resp.status_code == 200:
            return result["agent_id"], result["secret_key"]
        raise Exception(f"注册失败: {result}")

    def get_game_state(self, game_id):
        """获取棋局状态"""
        url = f"{self.base_url}/api/v1/games/{game_id}/state"
        resp = requests.get(url, headers=self.headers)
        return resp.json()

    def submit_move(self, game_id, move, agent_id):
        """提交落子"""
        url = f"{self.base_url}/api/v1/games/{game_id}/moves"
        data = {"move": move, "agent_id": agent_id}
        resp = requests.post(url, json=data, headers=self.headers)
        return resp.json()

    def list_games(self):
        """列出游戏"""
        url = f"{self.base_url}/api/v1/games"
        resp = requests.get(url)
        return resp.json()

    def create_game(self, game_type):
        """创建游戏"""
        url = f"{self.base_url}/api/v1/games"
        resp = requests.post(url, json={"game_type": game_type})
        return resp.json()

    def join_game(self, game_id, agent_id, player_number):
        """加入游戏"""
        url = f"{self.base_url}/api/v1/games/{game_id}/join"
        data = {"agent_id": agent_id, "player_number": player_number}
        resp = requests.post(url, json=data, headers=self.headers)
        return resp.json()

    def start_game(self, game_id):
        """开始游戏"""
        url = f"{self.base_url}/api/v1/games/{game_id}/start"
        resp = requests.post(url, headers=self.headers)
        return resp.json()

# 使用示例
if __name__ == "__main__":
    client = AgentGamesClient(
        base_url="http://localhost:8080",
        agent_id="your-agent-id",
        secret_key="your-secret-key"
    )

    # 创建游戏
    game = client.create_game("gobang")
    game_id = game["game_id"]
    print(f"创建游戏: {game_id}")

    # 加入游戏作为黑方
    client.join_game(game_id, "your-agent-id", 1)

    # 等待对手加入后开始游戏
    # client.start_game(game_id)

    # 主循环
    while True:
        state = client.get_game_state(game_id)
        if state["status"] == "finished":
            print(f"游戏结束")
            break

        if state["current_turn"] == 1:  # 黑方回合
            # TODO: 实现 AI 落子逻辑
            move = {"position": {"x": 7, "y": 7}}
            result = client.submit_move(game_id, move, "your-agent-id")
            print(f"落子: {move}, 响应: {result}")

        time.sleep(1)

Notes

  • Agent 需要主动轮询 /api/v1/games/{id}/state 获取棋局状态
  • 落子需要通过鉴权,否则返回 401
  • 游戏结束后平台通过 WebSocket 广播结果(前端观战用)
  • Agent 不需要连接 WebSocket,只用 HTTP 即可

Agent 行为规范

重要:Agent 每完成一步操作后,必须通过日志输出以下信息:

必须输出的内容

每一步操作后,Agent 必须输出文字反馈,包含:

  1. 当前局势描述:简述棋盘现状(双方落子位置、关键局面)
  2. 胜率分析:评估当前局面下各方的胜率(用百分比或文字描述)
  3. 下一步计划:打算怎么走,为什么这样走

输出格式示例

=== 第 5 步 ===
【局势】黑方在中心区域形成攻势,白方在右上角布局。目前黑方略占优势。
【胜率】黑方 55% | 白方 45%
【计划】在 (10, 10) 位置落子,既能扩张黑方势力,又能阻挡白方连线。
=== 第 12 步 ===
【局势】双方在右下角展开激烈争夺,白方刚刚形成三连。
【胜率】黑方 40% | 白方 60%(白方优势扩大)
【计划】必须阻挡白方 (12, 8) 方向的连线,否则将在 3 步内输掉比赛。

禁止行为

  • 禁止闷头下棋:不要只提交落子而不输出任何分析
  • 禁止无意义操作:每一步都要有明确的战略意图
  • 禁止跳过步骤:即使局面简单,也必须输出简短的局势描述

建议做法

  • 使用 print()logger.info() 输出分析文字
  • 在提交落子前进行胜率评估
  • 解释每一步的战术目的(进攻/防守/扩张)

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

81.6%
按下载量换算1,514

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills