尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Hermes Agent Skills实战:构建消息自动回复技能全流程

Hermes Agent Skills实战:构建消息自动回复技能全流程 这次我们来看一个 Hermes Agent 的 Skills 开发实战做一个“陌陌回复信息技能”让 Agent 能根据对方发来的消息自动生成自然、符合人设的回复建议。先说明边界这个技能只负责生成回复文本不负责绕过任何平台规则自动发送消息。真正把回复发送到陌陌或其他任何社交平台之前你必须先确认平台协议、用户授权和相关法律法规。未经授权批量自动回复轻则封号重则可能涉及骚扰、诈骗等法律风险。从社区讨论热词看Hermes Agent 的 Skills 生态最近关注度很高大家主要关心几个点skills 怎么安装、AI skills 怎么写、skills 市场怎么用、外挂知识库怎么配、客户端如何改 API Key。这篇文章就以“陌陌回复信息技能”这个场景为例把整套 skill 开发流程跑通包括目录结构、SKILL.md 写法、回复生成脚本、批量任务、FastAPI 接口封装以及最常见的排错方法。即使你以后做的是客服消息回复、私信助理、评论区应答这套写法也完全能复用。如果你正在用 Hermes Agent或者平时也折腾 Claude Code Skills、Codex Skills 这类 Agent 技能扩展这篇文章可以直接收藏。文章不写死版本号所有命令都是通用模板具体路径、模型名、API Key 需要按你自己的环境替换。1. 核心能力速览先看这个技能的核心规格。下面的表格是给读者快速判断用的实际性能会受模型供应商、网络环境和消息量影响最终以本机测试为准。能力项说明项目类型Hermes Agent Skills 技能开发示例基础工具Hermes Agent支持 Skills 机制、知识库、客户端配置核心功能根据收到的消息生成人设化回复建议扩展功能批量消息处理、敏感词拦截、自定义人设、HTTP API 封装推荐硬件普通开发机即可推理在模型 API 服务端完成显存占用本地不跑大模型时几乎不占显存主要占用内存和网络带宽支持平台Windows / macOS / Linux按 Hermes Agent 官方安装方式为准启动方式Hermes Agent 对话内调用或命令行直接运行脚本是否支持 API支持可用 FastAPI 封装为本地 HTTP 服务是否支持批量任务支持可从文件逐行读取消息并输出 JSON 结果适合场景个人消息管理、客服回复辅助、内容审核辅助等合规场景这个技能本质上是一个“消息理解 回复生成”的模板。它不直接对接陌陌的私信通道只负责把“对方发来的消息”处理成“建议回复文本”。这样做的好处是安全边界清楚脚本在本机运行模型走 API 调用不涉及平台风控也不违反平台开发者协议。2. 适用场景与使用边界先说适合谁。第一类是 Hermes Agent 的初学者。很多人装了 Hermes Agent 之后只会在对话里问问题不知道 Skills 到底怎么开发。这篇文章用一个完整例子说明白SKILL.md 怎么写、脚本怎么放、Agent 怎么识别、怎么调用。第二类是需要在消息场景里做 AI 辅助的开发者。比如你手上有一堆客服私信、评论消息、邮件回复想用大模型批量生成回复草稿再人工复核后发送。这个技能就是一个很好的种子工程。第三类是正在对比 Agent 工具的人。无论你用 Hermes Agent、Claude Code 还是 CodexSkills 的设计思路是通用的。看完这篇文章你迁移到别的 Agent 工具时会很轻松。再说使用边界。这里必须把话说透不用于骚扰、诈骗、恶意营销。任何用 AI 伪装真人去高频骚扰陌生人的行为都违反平台协议也可能涉嫌违法。不用于绕过平台风控。不要试图让脚本自动登录陌陌、自动点击、模拟真人操作去批量发消息这种自动化行为一旦被平台识别后果自负。需要用户授权。如果你帮别人部署回复技能必须让消息所有者知情并同意 AI 代为回复否则涉及个人隐私和数据合规问题。涉及人脸、声音、个人信息时更要谨慎。这个技能只处理文本但如果以后扩展到语音回复、图片回复、声音克隆必须考虑肖像权、声音权和个人信息保护。从技术角度讲这个技能的安全设计是敏感词本地拦截命中后不调用模型直接返回拒绝话术。这样既省了 API 费用也避免 AI 在敏感消息上继续发挥。后续你还可以在这个基础上扩展更多审核规则。3. Hermes Agent 与 Skills 机制简介Hermes Agent 是一个支持 Skills 扩展的 AI Agent 工具社区热词里常见 hermes agent 安装、hermes agent 客户端如何修改 api key、hermes agent 外挂知识库、hermes skills hub 这些话题说明它已经具备比较完整的 Agent 生态客户端、命令行交互、API Key 配置、知识库、技能市场。Skills 机制的核心思想是把特定任务的执行知识封装成一个目录目录里有描述文件和可执行脚本。Agent 在对话中根据用户需求匹配合适的 skill读取描述调用脚本最后把结果返回给用户。这和 Claude Code Skills、Codex Skills 的底层逻辑非常接近。一个 skill 目录通常长这样skills/ momo-reply/ SKILL.md scripts/ reply.py data/ personas.jsonSKILL.md 是技能的“说明书”包含技能名称、用途描述、输入输出说明、使用示例。Agent 会优先读这个文件来判断当前任务是否该调用本技能。脚本部分是真正的执行逻辑。可以是 Python、Shell、Node.js 或任意可执行程序只要你把入口路径写清楚就行。这个机制的好处是技能开发者和 Agent 主程序解耦你可以独立测试脚本也可以让 Agent 动态调用。数据目录用来放技能运行时的配置比如人设 JSON、话术模板、知识库文件。这样技能可以做到“代码不变、配置常改”不需要频繁改脚本逻辑。整体工作流程是用户消息进入 Hermes Agent → Agent 判断需要消息回复技能 → 找到 SKILL.md → 读取说明 → 执行 reply.py → 拿回回复结果 → 展示给用户。后面我们实现的 skill 就完全按这个模式来。4. 环境准备与前置条件开始之前先把环境准备好。以下是通用步骤具体命令以 Hermes Agent 官方文档为准。4.1 安装 Hermes AgentHermes Agent 的安装方式取决于官方发布形式常见的有包管理器安装、二进制安装、安装脚本等几种。这里给出通用模板你需要替换为实际命令# 通用安装示例请以 Hermes Agent 官方文档为准 # npm 方式 npm install -g hermes-agent # Homebrew 方式macOS # brew install hermes-agent # Python 方式 # pip install hermes-agent # 初始化 hermes init安装后先检查版本是否正常。hermes --version如果安装过程中提示需要登录网站这是正常的。这类 Agent 工具通常需要登录账号、创建项目或者绑定模型服务。根据社区反馈安装时无法跳过登录环节直接在官方提示的页面完成授权再回到终端继续即可。4.2 配置模型 API KeyHermes Agent 本身不内置大模型它需要接入外部模型服务的 API。配置入口一般有三种客户端设置页面界面操作适合不熟命令行的用户。配置文件通常是~/.hermes/config.json或项目目录下的.env文件。环境变量适合脚本和服务器场景。配置文件的大致格式如下字段名以实际项目为准{ provider: dashscope, api_key: sk-替换成你的Key, model: qwen-plus, base_url: https://dashscope.aliyuncs.com/compatible-mode/v1 }如果你想接入阿里百炼可以用 DashScope 的 OpenAI 兼容模式base_url 设为https://dashscope.aliyuncs.com/compatible-mode/v1模型名填qwen-plus或qwen-max这类可用模型。如果你用 OpenAI、DeepSeek、Moonshot 等其他兼容服务原理一样替换三个参数就行。4.3 Python 环境准备后续的回复脚本用 Python 3 编写建议 Python 3.10 及以上。需要安装 requests如果跑接口服务还需要 fastapi 和 uvicorn。python -m venv .venv source .venv/bin/activate # Windows 下为 .venv\Scripts\activate pip install requests fastapi uvicorn4.4 验证模型连通性配置完 API Key 后先不要急着写 skill用 curl 验证一下模型服务是否能通。curl https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \ -H Authorization: Bearer sk-替换成你的Key \ -H Content-Type: application/json \ -d { model: qwen-plus, messages: [ {role: user, content: 你好请回复一条问候消息} ] }能返回 JSON 就说明链路通可以进入下一步。5. 创建“陌陌回复信息”技能的完整步骤下面开始建 skill。整个流程是建目录结构 → 写 SKILL.md → 写脚本 → 配人设 → 让 Hermes Agent 识别。5.1 创建目录结构在 Hermes Agent 能识别到的 skills 目录下新建momo-reply目录。具体路径取决于你的 Hermes Agent 配置通常会在项目下的.hermes/skills或者自定义的 skills 目录里。mkdir -p hermes-skills/momo-reply/scripts mkdir -p hermes-skills/momo-reply/data5.2 编写 SKILL.mdSKILL.md 是这个技能的门面。Agent 靠它判断“什么时候该调用这个技能”。描述写得越清楚Agent 的命中率越高。--- name: momo-reply description: 消息回复信息技能。当用户需要根据收到的消息生成回复建议时使用。支持单条消息、批量消息、自定义人设。必须在用户授权且符合平台规则的前提下使用。 version: 1.0.0 --- # 陌陌回复信息技能 根据“对方发来的消息”生成自然、符合人设的回复建议文本。 本技能不会直接发送消息只生成回复文本。是否发送、通过什么渠道发送由用户自行确认合规性。 ## 输入 - message对方发来的消息原文必填 - persona人设名称选填默认 default - batch批量消息文件路径选填每行一条消息 - output批量输出 JSON 文件路径选填 ## 输出 - reply建议回复文本 - sensitive是否命中敏感词拦截布尔值 ## 使用示例 对方发来在吗周末有空一起吃饭吗 回复建议在的周六下午我有空一起吃饭吧。注意 frontmatter 里的name和description是 Agent 做技能匹配的关键字段。不要写太宽泛的 description比如“处理消息”这种会被任意任务命中。要写清楚“收到消息时生成回复建议”这个场景。5.3 编写回复生成脚本核心脚本放在scripts/reply.py实现三个能力单条消息生成回复、敏感词拦截、批量文件处理。#!/usr/bin/env python3 消息回复信息技能核心脚本。 用法 python reply.py --message 对方发来的消息 python reply.py --message 对方发来的消息 --persona friend python reply.py --batch messages.txt --output replies.json import argparse import json import os import re import sys import requests SENSITIVE_PATTERN re.compile( r转账|汇款|银行卡|验证码|中奖|刷单|裸聊|赌博|投资理财|陌生链接|加微信|扫二维码, re.IGNORECASE, ) def load_personas(path: str data/personas.json) - dict: with open(path, encodingutf-8) as f: return json.load(f) def check_sensitive(text: str) - bool: return bool(SENSITIVE_PATTERN.search(text)) def build_prompt(message: str, persona: dict) - list: system ( 你是一个消息回复助手。请根据对方发来的消息和设定的人设 生成自然、简短、得体的回复建议。要求\n 1. 语气符合人设不机械不重复模板。\n 2. 不要编造不存在的共同经历或事实。\n 3. 如果消息涉及隐私、转账、陌生链接、投资等敏感内容直接礼貌拒绝。\n f4. 回复长度控制在 20 到 80 字中文。\n\n f人设{json.dumps(persona, ensure_asciiFalse)} ) return [ {role: system, content: system}, {role: user, content: f对方发来的消息{message}}, ] def generate_reply( message: str, persona: dict, api_key: str, base_url: str https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions, model: str qwen-plus, ) - dict: if check_sensitive(message): return { message: message, reply: 抱歉这类内容我这边不方便继续聊我们换个别的话题吧。, sensitive: True, } prompt build_prompt(message, persona) payload { model: model, messages: prompt, temperature: 0.7, max_tokens: 300, } resp requests.post( base_url, headers{ Authorization: fBearer {api_key}, Content-Type: application/json, }, jsonpayload, timeout60, ) resp.raise_for_status() reply resp.json()[choices][0][message][content] return {message: message, reply: reply, sensitive: False} def main(): parser argparse.ArgumentParser(description消息回复信息技能) parser.add_argument(--message, help对方发来的消息) parser.add_argument(--persona, defaultdefault, help人设名称) parser.add_argument(--batch, help批量输入文件每行一条消息) parser.add_argument(--output, help批量输出 JSON 文件路径) args parser.parse_args() api_key os.environ.get(HERMES_API_KEY) or os.environ.get(DASHSCOPE_API_KEY) if not api_key: print(json.dumps({error: 未找到 API Key请设置 HERMES_API_KEY}, ensure_asciiFalse)) sys.exit(1) personas load_personas() persona personas.get(args.persona, personas[default]) if args.message: result generate_reply(args.message, persona, api_key) print(json.dumps(result, ensure_asciiFalse, indent2)) elif args.batch: with open(args.batch, encodingutf-8) as f: messages [line.strip() for line in f if line.strip()] results [] for msg in messages: result generate_reply(msg, persona, api_key) results.append(result) if args.output: with open(args.output, w, encodingutf-8) as f: json.dump(results, f, ensure_asciiFalse, indent2) print(f批量处理完成共 {len(results)} 条结果写入 {args.output}) else: print(json.dumps(results, ensure_asciiFalse, indent2)) else: parser.print_help() if __name__ __main__: main()这个脚本有几个关键设计第一敏感词本地拦截。命中敏感模式后直接返回固定拒绝话术不发起模型请求。这既是合规保护也能省 API 费用。第二环境变量读取 Key。脚本不硬编码密钥从HERMES_API_KEY或DASHSCOPE_API_KEY读取方便部署在不同环境。第三批量处理按行读取输入文件逐条调用模型输出结构化 JSON。简单直接便于后续接自动化流程。5.4 配置人设与话术库data/personas.json里维护人设配置。你可以按需增加不同风格的 persona。{ default: { nickname: 普通网友, tone: 自然、友好、不热情也不冷淡, reply_length: 15-60字, avoid_topics: [隐私, 转账, 投资] }, friend: { nickname: 朋友, tone: 轻松、活泼可以适当用语气词, reply_length: 15-80字, avoid_topics: [隐私, 转账] }, colleague: { nickname: 同事, tone: 礼貌、客气、保持距离, reply_length: 15-60字, avoid_topics: [隐私, 娱乐, 八卦] } }人设配置越细模型生成的回复越稳定。后续你需要调整语气只需要改 JSON不需要动 Python 代码。5.5 在 Hermes Agent 中加载并调用把 skill 目录放到 Hermes Agent 的 skills 路径下然后在 Hermes Agent 对话里直接描述任务。比如对方发来消息“在吗周六有空爬山吗”请用 momo-reply 技能生成回复。如果 Agent 正常识别它会去读 SKILL.md然后执行 reply.py并把生成的回复展示出来。如果 Agent 没有识别到技能检查两个地方技能目录路径是否在 Hermes Agent 的扫描范围内SKILL.md 的 description 是否写得足够具体。6. 功能测试与效果验证skill 写好之后先不要急着丢给 Agent先在命令行层把脚本测通。这能帮你把“代码问题”和“Agent 调用问题”分开排查。6.1 单条消息回复测试先测最基础的调用用一个正常消息。export HERMES_API_KEYsk-替换成你的Key python reply.py --message 在吗周末有空一起吃饭吗预期输出是一个 JSON{ message: 在吗周末有空一起吃饭吗, reply: 在的周六下午我有空一起吃饭吧。, sensitive: false }判断成功的标准是返回了reply字段且内容通顺、符合人设。如果报错优先看这几项API Key 是否配置脚本会直接提示。网络是否能连通模型服务端点。模型名是否存在错误信息里通常会带model not found之类的关键词。是否返回了 401/403基本是 Key 或权限问题。6.2 敏感内容拦截测试拿一条命中敏感词的测试消息。python reply.py --message 在吗能先转500块给我吗预期输出{ message: 在吗能先转500块给我吗, reply: 抱歉这类内容我这边不方便继续聊我们换个别的话题吧。, sensitive: true }这里的关键是sensitive字段为 true。如果这条消息还能触发模型调用说明check_sensitive的正则没有覆盖到需要扩充关键词列表。6.3 批量消息处理测试批量场景更接近真实使用。先准备一个消息文件。printf 在吗\n周六一起爬山吗\n可以加你微信吗\n最近有个投资机会你感兴趣吗\n messages.txt python reply.py --batch messages.txt --output replies.json处理完成后查看replies.json。cat replies.json预期是一个数组每个元素包含原始消息、回复和建议结果。批量测试的核心是验证稳定性连续多条消息是否会超时、是否会返回非 JSON 内容、敏感拦截是否都生效。建议第一次跑批量只放 5 到 10 条确认稳定后再放大到几百条。6.4 自定义人设测试测试 friend 人设。python reply.py --message 周末有什么安排 --persona friend对比使用default人设的回复friend 人设的语气应该更放松、更口语化。如果两个结果没有明显区别说明人设配置里的tone没有充分写进 system prompt可以继续细化 persona 字段。6.5 中文乱码和 JSON 解析检查Windows 终端下常见的问题是中文输出乱码。如果遇到在运行前设置编码$env:PYTHONIOENCODINGutf-8 python reply.py --message 测试消息如果 JSON 解析失败检查输出中是否带了多余日志。如果模型返回的文本包含换行json.dump会自动处理转义不必担心。7. 接口 API 与批量任务扩展虽然命令行能用但真实项目里更常见的需求是把技能封装成 API让其他服务调用。这里用 FastAPI 包一层。7.1 FastAPI 封装在momo-reply目录下新建app.pyfrom fastapi import FastAPI, HTTPException from pydantic import BaseModel, Field import os from scripts.reply import generate_reply, load_personas app FastAPI(titleMomo Reply Skill API) class ReplyRequest(BaseModel): message: str Field(..., description对方发来的消息) persona: str default class ReplyResponse(BaseModel): message: str reply: str sensitive: bool personas load_personas() app.post(/api/reply, response_modelReplyResponse) def reply(req: ReplyRequest): api_key os.environ.get(HERMES_API_KEY) or os.environ.get(DASHSCOPE_API_KEY) if not api_key: raise HTTPException(status_code500, detail未配置 HERMES_API_KEY) persona personas.get(req.persona, personas[default]) result generate_reply(req.message, persona, api_key) return ReplyResponse(**result)启动服务export HERMES_API_KEYsk-替换成你的Key uvicorn app:app --host 127.0.0.1 --port 8000这里一定要绑定127.0.0.1不要直接暴露公网。如果需要跨机器调用建议放到内网并通过网关再加一层鉴权。7.2 curl 调用示例服务启动后用 curl 测试接口curl -X POST http://127.0.0.1:8000/api/reply \ -H Content-Type: application/json \ -d {message: 在吗周六有空吗, persona: friend}预期返回{ message: 在吗周六有空吗, reply: 有空的周六下午可以约爬山呀。, sensitive: false }7.3 Python 调用示例如果你要把接口接到自己的消息流里可以用 requestsimport requests url http://127.0.0.1:8000/api/reply payload { message: 在吗周六有空吗, persona: friend } response requests.post(url, jsonpayload, timeout60) data response.json() print(data[reply])7.4 批量任务的工程建议真实批量场景不只是“逐条调用”还要考虑这几个点限流。模型服务对每分钟请求数有限制大量并发会触发 429。建议在脚本里加一个简单的限流比如每条消息之间 sleep 0.5 秒。失败重试。单条请求可能因网络波动超时建议对单个消息做最多 3 次重试重试间隔递增。结果落盘。每处理完一批就写一次 JSON避免程序中途崩溃导致全部丢失。人工复核。自动生成的回复只是草稿存在人设偏差、事实错误、情绪表达不当的风险。批量发送前必须人工抽样复核。8. 资源占用与性能观察这个技能的本地负载并不高因为它没有在本地跑大模型真正的推理发生在模型 API 服务端。观察资源占用主要看三块第一脚本进程本身。reply.py是纯 Python 脚本启动后就是普通解释器进程内存占用和 CPU 占用都维持在轻量级你可以用htop或任务管理器观察。真正开始处理批量任务时内存会随着消息列表长度的增长而上升所以批量文件不要一次性读入超大文本按行流式处理更好。第二网络请求。每条消息都会发起一次模型 API 请求。批量任务的瓶颈通常在网络延迟和 API 限流而不是本地 CPU 或内存。处理速度取决于所选用模型的响应时间和 batch 之间的 sleep 设置。第三如果后续你改用本地模型那就要重新评估显存。本地跑 7B 到 14B 量级的模型即使做量化也需要对应规格的显卡显存。显存占用以模型实际推理参数为准需要单独测试不能拿 API 调用场景的负载来推断。建议第一次跑完整流程时先用一条消息验证通再用 5 条消息验证批量最后按实际消息量决定是否要加并发或队列。不要一上来就几千条跑批量容易把 API 配额打满也容易被风控误判为机器行为。9. 常见问题与排查方法下面把最容易踩的坑整理成表按“问题现象、可能原因、排查方式、解决方案”四个方向排查。问题现象可能原因排查方式解决方案安装 Hermes Agent 后命令找不到PATH 未配置或安装不完整执行hermes --version看报错按官方文档重装确认安装路径已加入 PATH安装时提示必须登录网站Agent 首次使用需要账号授权按提示打开页面完成登录完成授权后重新执行初始化命令客户端修改 API Key 后仍报鉴权失败配置未保存或环境变量优先级更高检查配置文件和环境变量删除冲突的环境变量或在配置文件中确认 Key脚本提示未找到 API Key环境变量名不对打印os.environ检查变量名设置HERMES_API_KEY或DASHSCOPE_API_KEY调用模型返回 401/403API Key 错误或没有权限用 curl 单独测模型接口更换有效 Key或确认模型服务开通返回 model not found模型名配置错误查看错误信息里的模型名改为模型服务支持的模型名比如 qwen-plus中文输出乱码Windows 终端编码问题检查终端编码设置PYTHONIOENCODINGutf-8Hermes Agent 识别不到 skill目录路径不在扫描范围或 description 不具体检查 skills 目录配置放到正确路径重写 description批量任务中途卡住单条请求超时或 API 限流查看日志和返回码增加超时、限流、失败重试回复内容人设不匹配prompt 里人设描述不够具体对比不同 persona 输出细化 personas.json 里的 tone 和避免话题10. 最佳实践与使用建议这个技能能跑通只是第一步真正要用到生产环境还要注意下面这些工程细节。第一人设要收敛。不要让人设过于夸张或刻板也不要频繁切换。固定 3 到 5 个常用人设长期使用后再根据对话质量调整人设描述。每次调整后要保留历史配置方便回滚。第二数据要脱敏。批量训练或批量处理时消息文本可能包含手机号、微信号、身份证号等个人敏感信息。脚本里没有对输出做脱敏所以线上使用前建议加一个脱敏模块把电话号码、邮箱、地址用正则或 NER 方法打码后再传给模型。第三日志要完整。批量任务建议追加日志文件记录每一条消息的处理时间、模型名称、是否命敏感词、是否重试、最终回复。日志文件按天切分方便后续排查问题。第四API 服务要加鉴权。FastAPI 服务绑定在127.0.0.1只能保护本机访问。如果你想通过局域网或内网调用建议加一个最简单的 Token 校验可以通过 FastAPI 的 Header 传入也可以在网关层做。第五效果要人工复核。AI 生成的回复不保证每一次都合适尤其是涉及情感、隐私、金钱的话题。批量发送前建议抽样人工看 10% 到 20% 的结果发现问题立刻调整 prompt 或敏感词规则。第六合规是底线。这个技能只能用于你有权处理的消息场景并且必须遵守平台规则和用户授权。不要拿它做自动营销、陌生人骚扰、诈骗等行为。上线前最好让法务或合规同学过一遍至少自己确认平台条款没有禁止这类自动化行为。11. 总结这个“陌陌回复信息技能”最值得尝试的点是它把 Hermes Agent 的 Skill 开发流程完整走了一遍从 SKILL.md 到 Python 脚本再到批量任务和 HTTP API所有代码都能直接复用。你先要验证的是单条消息的回复质量先跑通一条再跑通五条最后再考虑批量和服务化。最容易踩的坑有三个一是 API Key 配置位置不对导致鉴权失败二是 SKILL.md 的 description 写得太宽泛Agent 识别不到技能三是直接拿大文件跑批量遇到限流和超时没有重试机制。后续可以扩展的方向很多接入知识库做成个性化话术、加 RAG 让回复内容更准确、加 NER 做敏感信息脱敏、把 FastAPI 服务接到合规的消息队列里做自动回复。这套技能结构本身也完全能迁移到客服、私信助理、评论回复等场景适合收藏起来当模板。
返回列表