关于 gate-exchange-activitycenter
gate-exchange-activitycenter 是查询和推荐 Gate 平台活动的技能,面向寻找空投、交易竞赛、VIP 或其他活动的用户。它支持按热门程度、类型、场景或名称检索,并提供“我的活动”入口。
主要功能
- 01查询热门活动
- 02按活动类型筛选
- 03按资产或场景检索
- 04按名称搜索活动
- 05提供“我的活动”入口
适用场景
- 01查找当前热门活动
- 02筛选空投或交易竞赛
- 03按 GT 或期货场景查找活动
MCP 相关
通过 gate-cli 调用活动类型、活动列表和“我的活动”入口查询工具。活动推荐与搜索每次最多返回 3 项。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ gate/ gate-skills --skill gate-exchange-activitycenter安装后在 Claude Code 中输入/gate-exchange-activitycenter确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CHANGELOG.mdREADME.mdsetup.shreferences/gate-cli.mdgate-runtime-rules.mdmcp.mdscenarios.md详细介绍
解析 gate-cli(二进制文件路径)
按以下顺序解析 gate-cli:(1) command -v gate-cli 和 gate-cli --version 均成功;(2) 如果 ${HOME}/.local/bin/gate-cli 可执行,则使用该路径;(3) 如果 ${HOME}/.openclaw/skills/bin/gate-cli 可执行,则使用该路径。规范规则:exchange-runtime-rules.md §4(或 gate-runtime-rules.md §4)。
gate-exchange-activitycenter
活动中心汇总平台活动(交易竞赛、空投、新人活动、推荐活动等),支持活动推荐和“我的活动”入口。
通用规则
⚠️ 停止——继续之前,必须阅读并严格遵守共享运行时规则。
在阅读完所有规则之前,请勿选择或调用任何工具。这些规则具有最高优先级。
→ 阅读 ./references/gate-runtime-rules.md
- 仅使用此技能中明确列出的
gate-cli命令。 即使其他接口提供了此处未记录的命令,也不得在这些工作流中运行。
触发场景:用户提到“推荐活动”“有哪些活动”“空投活动”“交易竞赛”“VIP 活动”“我的活动”等。
⚠️ 强制响应格式:触发此技能时,AI 的响应必须严格遵循本文档定义的响应模板。禁止使用自由形式的响应。
技能依赖项
使用的 gate-cli 命令
查询操作(只读)
gate-cli cex activity get-entrygate-cli cex activity listgate-cli cex activity types
身份验证
- 交互式文件配置: 当主机上未同时设置
GATE_API_KEY和GATE_API_SECRET时,运行gate-cli config init,按照向导完成 API 密钥、密钥、配置档案和默认值的设置(参见 gate-cli)。 - 环境变量/标志: 已提供凭据时,无需运行
gate-cli config init——例如主机上已设置GATE_API_KEY和GATE_API_SECRET,或在支持的情况下使用--api-key/--api-secret——绝不要要求用户在聊天中粘贴密钥。 - 需要 API 密钥:是
- 权限: Activity:Read
- 门户: 请在聊天之外创建或轮换密钥:https://www.gate.com/myaccount/profile/api-key/manage
安装检查
- 必需项:
gate-cli(如果缺失,请在此技能目录中运行sh ./setup.sh;可选设置GATE_CLI_SETUP_MODE=release)。 - 如果要通过名称调用
gate-cli,请将$HOME/.openclaw/skills/bin(或setup.sh安装它的目录)添加到PATH。 - 凭据: 当主机已设置非空的
GATE_API_KEY和GATE_API_SECRET时,不要要求运行gate-cli config init——这相当于gate-cli的有效配置。当两者均未设置或为空时,提醒操作者运行gate-cli config init,或在技能库中的对应技能内配置GATE_API_KEY/GATE_API_SECRET(绝不要要求用户在聊天中粘贴密钥)。 - 健全性检查: 在进行经过身份验证的调用之前,不要继续,直到 CLI 按预期运行(例如
gate-cli --version,或此技能中的只读gate-cli cex ...命令);请先确认凭据已正确解析,再进行变更操作。
执行模式
阅读并严格遵循 references/gate-cli.md,然后执行此技能的活动中心工作流。
SKILL.md保留路由和推荐逻辑。references/gate-cli.md是入口/列表/类型查询、筛选处理和降级输出行为的权威gate-cli执行规范。
路由规则
| 用户意图 | 关键词/模式 | 操作 |
|---|---|---|
| 热门推荐 | "recommend activities" "what activities" "recent activities" | 场景 1.1 热门推荐 |
| 按类型推荐 | "airdrop activities" "trading competition" "VIP activities" "earn activities" | 场景 1.2 按类型推荐 |
| 按场景推荐 | "I have GT" "futures activities" "spot activities" | 场景 1.3 按场景推荐 |
| 按名称搜索 | "{activity name}" "position airdrop" | 场景 1.4 按名称搜索 |
| 我的活动 | "what activities I joined" "my activities" "enrolled activities" | 场景 2 我的活动 |
| 福利中心/新手任务 | "claim rewards" "check-in" "newcomer tasks" | ❌ 不适用于此技能 |
gate-cli 命令索引
| MCP 工具 | 用途 | action_type |
|---|---|---|
gate-cli cex activity types | 获取活动类型列表(id、名称),用于按类型筛选 | query |
gate-cli cex activity list | 按热门程度、类型、场景或关键词查询活动 | info-card |
gate-cli cex activity get-entry | 获取“我的活动”入口卡片 | info-card |
API 参数限制
| 参数 | 限制 | 说明 |
|---|---|---|
page_size | 必须 ≤ 3 | ⚠️ 硬性限制:每次请求不得超过 3 个活动。始终将 page_size=3 或更小。 |
page | 整数 | 页码,默认为 1。 |
recommend_type | hot / type / scenario | 查询模式:hot(热门)、type(按 type_ids)、scenario(按关键词) |
type_ids | 字符串 | 活动类型 ID,以逗号分隔。与 recommend_type=type 搭配使用 |
keywords | 字符串 | 用于搜索活动名称的关键词。与 recommend_type=scenario 搭配使用 |
⚠️ 重要:
page_size参数严格限制为最多 3。禁止使用大于 3 的值。
场景 1:活动推荐
1.1 热门推荐(未指定类型)
触发条件:"recommend activities" "what activities" "recent activities"
API 调用:
`gate-cli cex activity list`?recommend_type=hot&sort_by=default&page=1&page_size=3
规则:
- ✅ 不要询问用户要哪种类型,直接调用 API
- ✅ 固定设置
page_size=3(允许的最大值),不分页
1.2 按类型推荐
触发条件:"airdrop activities" "trading competition" "VIP activities" "earn activities"
API 调用顺序:
gate-cli cex activity types→ 获取类型列表,并匹配用户提到的类型名称(不区分大小写)cex_activity_list_activities?recommend_type=type&type_ids=matched_id1,matched_id2&sort_by=time&page_size=3
关键词提取示例:
- "what airdrop activities are there" → 提取:airdrop
- "VIP activities" → 提取:VIP
- "I'm a VIP, any exclusive activities" → 提取:VIP
- "any low-risk activities" → 提取:earn
1.3 按场景推荐
触发条件:"I have GT, what activities can I join" "futures activities"
API 调用:
- 如果可映射到类型:使用
recommend_type=type和type_ids - 如果是场景/资产:使用
recommend_type=scenario和keywords
`gate-cli cex activity list`?recommend_type=scenario&keywords=GT&page_size=3
1.4 按名称搜索
触发条件:"help me find position airdrop" "where is VIP exclusive activity" "find test activity"
API 调用:
`gate-cli cex activity list`?recommend_type=scenario&keywords=test_activity&page=1&page_size=3
参数说明:
- 使用
recommend_type=scenario和keywords搜索名称 keywords是要搜索的活动名称或部分名称- ⚠️ 语言转换:如果用户输入包含非英文文本,在传入
keywords参数前先将关键词翻译成英文
响应模板(找到结果时):
根据你提供的关键词,我找到了一些可能的活动。如果没有找到你要找的活动,可以提供更完整的活动名称,或者点击“更多活动”浏览其他热门活动。
场景 2:我的活动
触发词:“我参加了哪些活动”“我的活动”“已报名的活动”
API 调用:
`gate-cli cex activity get-entry`
规则:
- ✅ 仅显示入口卡片,引导用户点击跳转
- ✅ 对
url字段应用 URL 处理规则(见上文) - ❌ 不要在此 API 中筛选活动列表
决策逻辑
| 条件 | 操作 |
|---|---|
| 用户询问热门/推荐活动 | 直接调用 gate-cli cex activity list,并设置 recommend_type=hot |
| 用户指定活动类型 | 先调用 gate-cli cex activity types,然后调用 gate-cli cex activity list,并设置 recommend_type=type&type_ids=xxx |
| 用户提及资产/场景(GT、期货) | 使用 recommend_type=scenario 和 keywords |
| 用户按活动名称搜索 | 使用 recommend_type=scenario 和 keywords={activity_name} |
| 用户询问“我的活动” | 调用 gate-cli cex activity get-entry |
| 活动列表为空 | 使用“无结果”模板,不要使用“已为你筛选……” |
URL 处理规则
API 返回的所有活动 URL 在向用户展示前都必须经过处理:
| URL 模式 | 处理方式 | 示例 |
|---|---|---|
相对路径(以 / 开头) | 添加前缀 https://www.gate.com | /competition/xxx → https://www.gate.com/competition/xxx |
已包含主机名(以 http:// 或 https:// 开头) | 保持原样,不做修改 | https://www.gate.com/campaigns/xxx → https://www.gate.com/campaigns/xxx |
为什么会有相对路径? API 为了灵活性会返回相对路径:
- 多语言支持:前端可以动态添加语言前缀(
/zh/、/en/、/ja/) - 多环境部署:测试/预发布/生产环境使用不同域名
- 客户端灵活性:Web、App、H5 可以采用不同方式处理链接
显示格式:始终使用可点击的 Markdown 链接:[{activity_title}]({processed_url})
活动响应字段规范
对于所有活动推荐场景(1.1、1.2、1.3、1.4),响应只能包含以下字段:
| API 字段 | 显示标签 | 处理规则 |
|---|---|---|
master_one_line | 活动标题 | 按原样显示 |
url | 活动链接 | 应用 URL 处理规则(相对路径添加前缀 https://www.gate.com) |
type_name | 活动类型 | 直接显示 type_name 的值(而非 type_id) |
响应格式示例:
| 活动标题 | 活动类型 | 活动链接 |
|---|---|---|
| 传统资产限量版活动 | 传统资产 | 查看详情 |
规则:
- ✅ 仅显示上面列出的 3 个字段
- ✅ 活动类型使用
type_name(而非type_id) - ✅ 按照 URL 处理规则处理 URL
- ❌ 不要显示
id、type_id、hot、img、competition_name、start_at、end_at等其他字段
响应模板
⚠️ 强制要求:AI 响应必须严格遵循这些模板。禁止使用自由形式或自定义响应。
模板合规规则
- 必需:每个响应必须使用下方定义的准确模板结构
- 必需:包含引导文本+活动表格+后续提示
- 禁止:添加额外评论、说明或自定义格式
- 禁止:省略模板结构中的任何部分
活动推荐(有结果)
| 场景 | 介绍文本(必须原样使用) |
|---|---|
| 热门(1.1) | 以下是当前热门活动: |
| 按类型(1.2) | 为你筛选的 [type] 活动: |
| 按场景(1.3) | 为你筛选的相关活动:[scenario/asset]: |
| 按名称(1.4) | 根据你的关键词,我找到了一些可能相关的活动: |
必需的回复结构:
{Intro Text from table above}
| Activity Title | Activity Type | Activity Link |
|----------------|---------------|---------------|
| {master_one_line} | {type_name} | [View Details]({processed_url}) |
|... |... |... |
{Follow-up Prompt - see below}
按场景提供的后续提示:
| 场景 | 后续提示(必须包含) |
|---|---|
| 热门(1.1) | 点击链接查看详情或报名。需要特定类型的活动吗? |
| 按类型(1.2) | 点击链接查看详情和参与方式。 |
| 按场景(1.3) | 点击链接查看参与要求和奖励。 |
| 按名称(1.4) | 如果没有找到你要找的内容,请提供更完整的活动名称。 |
我的活动模板(场景 2)
必需的回复结构:
Click [My Events]({processed_url}) to view your enrolled and ongoing activities.
In "My Events" you can:
- View activity progress
- Claim activity rewards
- Track activity status
无结果模板
必需的回复结构:
Currently no [type/keyword] activities are in progress. You can:
- Check the activity center regularly, new activities will be displayed as soon as they launch
- Tell me other activity types you're interested in (e.g., trading, earn, VIP exclusive), and I can filter for you
错误处理
| 错误类型 | 回复模板 |
|---|---|
| API 超时/失败 | 暂时无法加载活动,请稍后重试。 |
| 没有匹配的活动 | 使用“无结果”模板 |
| 401 未授权 | 会话已过期,请重新登录以查看活动。 |
| 400 错误请求 | 无法处理你的请求。请尝试使用其他搜索词。 |
| 429 请求过多 | 请求过多。请稍等片刻后重试。 |
| 500 服务器错误 | 服务暂时不可用。请稍后重试。 |
| 网络错误 | 网络连接出现问题。请检查你的连接并重试。 |
安全规则
- 不提供投资建议:活动奖励是平台福利,不是投资指导
- 不编造数据:仅展示后端返回的数据
- 合规检查:不要展示用户所在地区不可参与的活动
- 不暴露内部信息:绝不要向用户提及技术细节,包括:
- API 名称(例如,
gate-cli cex activity list) - 参数名称(例如,
recommend_type、type_ids) - 内部 ID(例如,
type_id=34、id=1499) - 错误代码或技术错误消息
- 错误回复示例:“未找到 Alpha 类型的活动(type_id=34)”
- 正确回复示例:“目前没有正在进行的 Alpha 活动”
数据完整性规则
⚠️ 强制要求:处理和展示所有数据时,必须遵守以下规则。
1. 绝不猜测数据
- ❌ 禁止:猜测、估算或编造任何数据值
- ❌ 禁止:对时间戳、数字或任何计算值作出假设
- ✅ 必须:仅展示 API 原样返回的数据
- ✅ 必须:如果数据缺失或不明确,应说明“数据不可用”,而不是猜测
2. 自我验证机制
展示任何处理后的数据前,执行自检:
| 数据类型 | 验证方法 |
|---|---|
| 时间戳 | 验证转换结果是否合理(年份、月份、日期是否在预期范围内) |
| URL | 验证处理后的 URL 格式是否有效 |
| 数字 | 验证数值与 API 响应完全一致 |
| 类型名称 | 验证 API 响应中是否存在 type_name,不得从 type_id 推导 |
3. 主动验证(而非事后纠正)
- ✅ 必须:在向用户展示前验证数据
- ✅ 必须:仔细核对时效性信息(时间戳、日期)
- ❌ 禁止:等用户指出错误后才处理
- ❌ 禁止:先展示数据,之后再纠正
4. 数据问题的错误处理
如果数据验证失败:
- 不要展示有问题的数据
- 显示安全的备用消息:“部分数据暂时不可用”
- 在内部记录问题(不要向用户透露)
跨技能路由
| 用户后续意图 | 路由至 |
|---|---|
| “我想买加密货币” | 交易技能 |
| “我想质押” | Launchpool/Earn 技能 |
| “福利中心”“签到” | 福利中心技能(而非此技能) |
其他参考资料
详细场景和示例请参阅 references/scenarios.md