Hermes Agent技能开发实战:从零构建消息回复助手

发布时间:2026/8/31 12:10:53
Hermes Agent技能开发实战:从零构建消息回复助手 如果你最近在关注 AI Agent 开发一定会频繁看到两个词Hermes Agent 和 Skills。围绕 Hermes Agent 出现了一大批“自动回复信息”“外挂知识库”“技能开发”的讨论很多教程把 Skills 说得神乎其神但实际打开文档后不少同学还是会卡在同一个问题上Skills 到底是什么它和 Agent 是什么关系为什么装了 Skill 之后Agent 才能完成特定任务本文不打算复述官网文档而是从一个真实场景切入写一个“消息回复信息助手”技能。无论你是想给个人微信、社交 App、客服系统做消息回复模板还是想掌握 Hermes Agent 的 Skills 开发方式这篇文章都会给你一条完整的路径。先给一个明确判断Hermes Agent 真正值得学习的不是又多了一个 AI 对话客户端而是它把“可复用技能”做到了工作流层面。过去我们让 AI 干一件事要反复把上下文、规则、提示词重新粘贴一遍有了 Skills 之后你可以把一套完整的任务逻辑打包成文件让 Agent 在需要时自动加载。这意味着AI 从“聊天机器”变成了“可以接受分工的同事”。读完这篇文章你会掌握Hermes Agent 和 Skills 的核心概念本地安装步骤如何编写一个消息回复类 Skill如何让 Agent 在执行任务时自动调用 Skill以及最常见的错误和排查方法。整篇文章不需要你提前具备复杂的 Agent 开发经验只要会装软件、会改文本文件就能跑通。1. 这篇文章真正要解决的问题先说说这个标题可能带来的误区。很多人搜“Hermes Agent 陌陌回复信息技能”以为这是一个“黑科技脚本”装上之后就能自动回复社交消息、绕过风控、批量打招呼。这里必须把边界说清楚本文讲的是 Agent 技能开发方法不是教你怎么骚扰用户、绕过平台规则。所有的自动回复实践都应该放在合法合规的范围内比如客服助手、个人消息模板、内部办公通知回复。真正值得关注的问题是另一个为什么 AI Agent 还需要“技能”这个产物如果你用过 ChatGPT、Claude 这类对话产品会发现一个痛点每次对话都要把任务背景重新说一遍。比如你想让它写一封售后回复邮件你需要把商品信息、售后政策、语气要求、字数限制全部塞进一轮对话里。换一个会话又要重来。这还不是最麻烦的最麻烦的是当任务步骤很多时AI 很容易漏掉其中一个环节或者在某一步突然改变策略。Skills 解决的就是这个“任务标准化”的问题。它的思路是把某个任务需要的工具调用方式、提示词、流程约束、输出格式写进一个结构化的文件里放进 Agent 能扫描到的目录中。以后只要你在对话里说“用售后回复技能处理这条消息”Agent 就会自动加载对应的技能文件按照里面定义的流程执行。所以本文要回答的问题可以总结成三个Hermes Agent 的 Skills 到底是什么它的架构原理是什么。如何从零写一个“消息回复信息”Skill包含提示词、参数定义和工具调用。如何把 Skill 接入 Hermes Agent并完成一次真实的运行验证。适合阅读本文的读者包括正在做 AI Agent 应用开发的工程师想用 Hermes Agent 替代重复性文本工作的运营和产品以及刚接触 Claude Skills / Codex Skills想横向理解各家 Skills 机制的技术爱好者。2. Hermes Agent 与 Skills 的核心概念2.1 Hermes Agent 不是又一个聊天框很多人第一次打开 Hermes Agent 客户端会觉得它跟普通的 AI 聊天工具有点像有对话框能选模型能多轮对话。但实际上它的定位是“Agent 运行时环境”也就是说它不只是帮你把问题丢给大模型还负责管理工具、权限、上下文和自动执行流程。传统的聊天工具你问一句它答一句交互完就结束了。Hermes Agent 的交互方式更像是在给一个实习生派活你可以描述一个目标比如“帮我生成这三个消息的回复草稿”Agent 会根据需要自己决定要不要读取文件、调用哪个技能、按什么顺序执行。如果某个步骤需要确认它会停下来问你如果不需要它会一口气做完。这里要特别注意Agent 的能力上限不只取决于底层模型还取决于你有没有给它配置正确的工具和技能。一个没有技能的 Agent就像一个只有键盘没有快捷键的编辑器能打字但效率很低。2.2 什么是 SkillSkill翻译过来是“技能”但在 Agent 体系里它的含义比“能力”更具体。一个 Skill 通常是一个目录里面包含一个 SKILL.md 说明文件以及可能的脚本文件、参考文档、提示词模板。整个目录放在一个 Agent 能扫描到的地方当用户的指令匹配到某个 Skill 的描述时Agent 就会读取这个目录下的内容并且按照里面的指引行动。用类比来理解Skill 就像是工作手册。公司里的新人入职不会靠脑子记住所有流程而是拿到一份工作手册里面写着“接到客户投诉怎么做”“售后邮件怎么回”“产品问题怎么升级”。Skill 就是给 Agent 准备的这种手册只不过它是用 Markdown、JSON、脚本等形式写的Agent 能直接读取和执行。这意味着写 Skill 的核心工作不是写代码而是把“做一件事的完整方法”写清楚。你平时可能已经积累了很多“给 AI 的优质提示词”但那些提示词是碎片化的。Skill 要求你把这些提示词结构化同时补充上工具调用、判断条件和执行步骤。2.3 Hermes Skills 与 Claude Skills、Codex Skills 的区别当前各家都在做 Skills最容易混淆的是 Hermes、Claude 和 Codex 的差异。简单整理如下对比维度Hermes Agent SkillsClaude SkillsCodex Skills使用场景通用 Agent 任务编排适合多步骤工作流Claude 对话与桌面客户端内的技能扩展面向代码仓库的自动编程任务Skill 文件形态目录 SKILL.md可附带脚本目录 SKILL.md强调规则描述目录 描述文件偏代码任务是否强调工具调用支持与 Agent 工具系统深度集成主要影响模型在对话中的行为主要影响编码任务的上下文和步骤适合的人想把日常任务打包成固定流程的人Claude 用户想优化输出质量的人GitHub Copilot / Codex 用户从设计思路上看Hermes 的 Skills 更像是“任务包”它不仅告诉模型该怎么说还告诉模型该在什么条件下调用什么工具并且强调输出格式和完成标准。这使它更适合“自动回复助手”“知识库问答”“定时报告生成”这类真实业务场景。理解完这些概念下面的实操就能串起来了。3. 环境准备与 Hermes Agent 安装在动手写 Skill 之前先要把 Hermes Agent 运行环境准备好。需要注意不同平台的安装方式略有差异本文以通用方式演示具体版本以你从官方渠道获取到的安装包为准。3.1 基本环境要求Hermes Agent 是一个桌面端 服务端结合的工具对系统的要求不算高但建议满足以下条件操作系统Windows 10/11、macOS 12 及以上、主流 Linux 发行版。内存建议 8GB 以上如果本机还要跑大模型16GB 会更稳妥。网络需要能正常访问模型 API。如果你使用的是国内云厂商提供的模型服务网络要求会简单一些。模型 API Key你需要有一个可用的模型服务密钥可以是 OpenAI 兼容接口、Anthropic 接口也可以是国内的模型推理服务。具体支持哪些模型以 Hermes Agent 官方文档为准。这里有一个常见误解Hermes Agent 自带模型。实际上它本身不提供模型推理能力而是一个模型客户端和 Agent 调度框架。很多用户安装完成后发现无法对话第一反应是软件坏了实际上就是没有配置 API Key。3.2 安装 Hermes Agent第一步从官方渠道下载与自己操作系统匹配的最新版本安装包。下载地址以官方 GitHub Releases 页面或官方网站为准不要从第三方站点下载不明来源的安装包。第二步按操作系统提示完成安装。macOS 用户在首次打开时如果系统提示“无法验证开发者”需要到“系统设置 - 隐私与安全性”中手动允许Windows 用户如果遇到 SmartScreen 提示要确认安装包来源可靠后再放行。第三步启动 Hermes Agent。第一次启动会进入初始化引导通常需要你完成以下配置选择默认模型服务商。填入 API Key。设置工作目录。选择是否启用本地技能目录。如果在安装过程中遇到“安装要登录网站”的提示这里解释一下某些版本的 Hermes Agent 为了校验许可证和获取模型配置会引导你到官网完成账号登录或设备授权。这个流程本身是正常的但你要确保自己访问的是官方域名不要在非官方页面输入密钥。启动完成后可以先在对话中输入一句简单指令比如“你好”确认 Agent 能正常回复。如果这一步失败优先检查 API Key 是否填写正确以及模型服务商地址是否可达。3.3 确认 Skills 目录结构Hermes Agent 的技能目录通常可以在配置文件中指定。默认情况下它会在用户目录下创建一个.hermes/skills文件夹或者在客户端的设置页里显示“Skills 目录”路径。为了后续操作方便我们可以把技能目录理解为你的项目目录/ ├── skills/ │ ├── message-reply/ │ │ ├── SKILL.md │ │ ├── templates/ │ │ │ ├── complaint.md │ │ │ └── general.md │ │ └── reply_generator.py ├── config/ │ └── agent.yaml └── data/ └── messages.csv这个结构不是强制标准但建议你从一开始就按这个方式组织。“skills”目录放所有技能每个技能一个子目录子目录里有 SKILL.md 和相关的辅助文件。这样 Agent 在扫描技能时能够很快定位到对应的 Skill。如果你的客户端没有显示技能目录也可以在配置文件中手动设置# config/agent.yaml agent: name: my-agent model: provider: openai-compatible api_base: https://your-model-endpoint.example.com/v1 api_key_env: HERMES_API_KEY model: your-model-name skills: dir: ./skills配置完成后重启 Hermes Agent让配置生效。4. 核心流程拆解一个消息回复 Skill 的完整设计写 Skills 之前先不要在代码里埋头写。真正高效的方法是先把流程拆出来再考虑怎么写文件。下面以“消息回复信息助手”为例拆解核心流程。4.1 任务目标我们希望 Agent 具备这样的能力当用户给出一段原始消息时Agent 能根据消息的类型咨询、投诉、感谢、闲聊等生成一条语气恰当、信息完整的回复草稿。如果需要还能从模板库中读取一个对应类型的模板然后基于模板定制内容。这个任务看起来简单但如果不写 Skill你每次都要在对话里输入“请帮我写一条回复要礼貌要提到我们会在 24 小时内解决不要承诺赔付字数不超过 100 字。”写一次没问题写一百次就很低效。更关键的是不同同事写出来的 Prompt 风格不一致回复质量也会波动。而 Skill 能把所有这些隐藏规则固化下来。4.2 流程拆解消息回复助手拆解后包含以下几个环节识别消息类型。先判断这条消息是投诉、咨询、还是感谢。不同类型对应不同的回复策略。读取模板。从模板库中选取与该类型匹配的模板文件。生成回复草稿。结合模板和原始消息调用大模型生成回复。格式检查。确保回复不超过指定字数、不包含不合适的承诺、保留必要的信息。输出结果。把最终回复展示给用户方便复制使用。对应到 Skill 的目录结构就是SKILL.md 负责描述整个流程。templates 目录负责存放各类模板。一个可选的 Python 脚本负责处理模板匹配和字数检查。4.3 为什么需要“输出约束”做消息回复类技能最容易翻车的地方是模型“自由发挥”。比如用户投诉发货慢模型可能直接回复“我们赔您 50 元优惠券”但公司并没有这个政策。这就是输出约束缺失导致的。所以在 Skill 定义里必须明确写出“禁止承诺具体赔偿金额”“禁止回复不实信息”“营销话术不超过特定比例”等规则。这也是 Skills 相比普通 Prompt 的一个优势普通 Prompt 是临时约定而 Skill 是持久化的规则Agent 每次执行都会重新读取不容易忘记。5. 完整示例编写消息回复信息 Skills现在进入正题。我们来实现一个最小可用的“消息回复信息”Skill。5.1 创建目录结构先在终端中执行命令创建目录mkdir -p hermes-skills-demo/skills/message-reply/templates cd hermes-skills-demo然后我们需要创建三个关键文件skills/message-reply/SKILL.mdskills/message-reply/templates/complaint.mdskills/message-reply/templates/general.mdskills/message-reply/reply_generator.py可选5.2 编写 SKILL.md这个文件是整个 Skill 的核心。它告诉 Hermes Agent这个技能是干什么的、什么时候调用、按什么步骤执行、输出格式是什么。参考写法如下--- name: message-reply description: 根据原始消息自动生成合适的回复草稿适用于客服、社交消息、商务沟通等场景。 when_to_use: 当用户要求生成回复、帮忙回消息、润色回复、处理客户投诉时使用。 version: 1.0.0 --- # 消息回复信息助手 ## 任务目标 根据输入的原始消息生成一条符合场景、语气得当、不越权承诺的回复草稿。 ## 输入参数 - source_message: 原始消息内容。 - reply_tone: 可选回复语气默认为“礼貌专业”。 - max_length: 可选回复最大字数默认为 120。 ## 执行步骤 ### 第一步识别消息类型 根据 source_message 的内容判断消息属于以下类型之一 - complaint: 包含不满、投诉、质疑、催促等情绪。 - inquiry: 包含询问、咨询、了解详情等意图。 - thanks: 包含感谢、认可、正面反馈。 - general: 其他类型。 输出消息类型到 work_message_type。 ### 第二步匹配模板 - 如果消息类型是 complaint读取 templates/complaint.md。 - 如果消息类型是 inquiry读取 templates/inquiry.md。 - 如果没有对应模板读取 templates/general.md。 ### 第三步生成回复草稿 结合模板和 source_message生成回复草稿。 回复必须满足 1. 不承诺任何具体赔偿金额、优惠额度、发货时间除非用户明确给出。 2. 保留原始消息中的关键信息。 3. 语气友好不使用过度营销词汇。 4. 最终输出不超过 max_length 字。 ### 第四步校验并输出 检查回复草稿是否满足上述要求如果不满足重新生成一次。最终输出格式为 回复草稿 回复内容 消息类型类型 使用模板模板文件名从这个文件可以看到SKILL.md 不是给用户看的文章而是给 Agent 看的工作指令。它描述得越清楚Agent 执行越稳定。5.3 编写模板文件模板文件是“半成品回复”。模型读取模板后会在模板基础上做替换和润色这样回复的一致性会更高而不是每次都从零开始写。templates/complaint.md非常理解您的心情很抱歉给您带来了不愉快的体验。 关于您提到的[问题简述]我们已经收到并非常重视。 我们会尽快核实相关情况并在[约定时间]内给您进一步回复。 如果您还有其他补充信息也欢迎随时告诉我们我们会尽力协助您。templates/general.md您好感谢您的消息。 关于[主题]我们注意到了您的信息并将按照您提到的内容做好准备。 如有进一步需要请随时联系我们谢谢这里的信息变量比如[问题简述]会由后续脚本或模型根据 source_message 自动替换。5.4 编写辅助脚本可选为了增强 Skill 的能力可以写一个简单的 Python 脚本用于处理模板匹配和字数检查。即使 Hermes Agent 本身可以直接调用模型具备一个本地脚本会让流程更可控。# 文件路径skills/message-reply/reply_generator.py import re import sys from pathlib import Path def detect_message_type(message: str) - str: complaint_keywords [差评, 投诉, 太慢, 垃圾, 生气, 退款, 举报] thanks_keywords [感谢, 谢谢, 辛苦, 满意, 很好] inquiry_keywords [怎么, 如何, 是否, 请问, 什么时候, 多少钱] if any(k in message for k in complaint_keywords): return complaint if any(k in message for k in thanks_keywords): return thanks if any(k in message for k in inquiry_keywords): return inquiry return general def replace_template_vars(template: str, message: str) - str: problem_match re.sub(r\s, , message).strip() template template.replace([问题简述], problem_match[:50]) template template.replace([主题], problem_match[:30]) template template.replace([约定时间], 24小时内) return template def check_length(text: str, max_length: int) - bool: return len(text) max_length if __name__ __main__: source sys.argv[1] if len(sys.argv) 1 else 你好我想咨询一下发货时间 msg_type detect_message_type(source) template_map { complaint: Path(__file__).parent / templates / complaint.md, general: Path(__file__).parent / templates / general.md, thanks: Path(__file__).parent / templates / general.md, inquiry: Path(__file__).parent / templates / general.md, } template_path template_map.get(msg_type, template_map[general]) template template_path.read_text(encodingutf-8) reply replace_template_vars(template, source) print(消息类型:, msg_type) print(回复草稿:, reply) print(字数:, len(reply), 是否超限:, not check_length(reply, 120))这个脚本可以让 Skill 不完全依赖大模型也能快速生成一个基础回复。在 Hermes Agent 的实际运行中可以由 Agent 决定执行脚本也可以由用户手动运行脚本验证。5.5 如何让 Hermes Agent 正确加载这个 Skill写完这些文件后还需要让 Hermes Agent 知道这个技能存在。通常在对话中输入类似下面的指令请使用“message-reply”技能生成回复客户说“你们的物流也太慢了三天都没有发货我要投诉”如果技能配置正确Agent 会读取 SKILL.md发现 description 中的描述与消息匹配然后按照步骤生成回复。这里的关键是技能名称要和你描述的指令一致否则 Agent 可能找不到。如果你不希望每次都在对话中指定技能名称也可以在 config 中把技能设为“推荐自动调用”# config/agent.yaml skills: dir: ./skills auto_load: - message-reply这样 Agent 在判断用户消息属于“生成回复”场景时会自动加载该技能。6. 运行结果与效果验证完成上面的文件编写后我们要实际验证一下技能是否生效。验证步骤分成两层第一层是脚本层验证第二层是 Agent 对话层验证。6.1 本地脚本验证先用 Python 直接运行脚本确认基础逻辑可用cd hermes-skills-demo python3 skills/message-reply/reply_generator.py 你们的物流也太慢了三天都没有发货我要投诉预期输出大致如下消息类型: complaint 回复草稿: 非常理解您的心情很抱歉给您带来了不愉快的体验。关于您提到的你们的物流也太慢了三天都没有发货我要投诉我们已经收到并非常重视。我们会尽快核实相关情况并在24小时内给您进一步回复。如果您还有其他补充信息也欢迎随时告诉我们我们会尽力协助您。 字数: 115 是否超限: False如果这一步输出正常说明模板和脚本逻辑没有问题。如果出现编码错误检查 Python 脚本文件头部是否缺少# -*- coding: utf-8 -*-尤其要注意 Windows 环境。6.2 Hermes Agent 对话验证然后启动 Hermes Agent在对话中输入使用 message-reply 技能帮我回复这条消息客户投诉发货慢要求退款。观察 Agent 的输出。成功的标志包括Agent 明确提到了“使用 message-reply 技能”。回复草稿中的语气符合投诉场景。回复没有给出具体赔偿金额。回复长度在合理范围内。如果 Agent 回复了内容但没有提到技能说明它可能只是用通用对话能力完成的并没有真正加载 Skill。此时需要回到配置检查技能目录路径。6.3 验证失败时先查哪里任何 Agent 工具第一次跑通都有概率失败不要慌。按照下面的顺序排查看 Agent 的日志输出确认启动时是否扫描到了skills/message-reply目录。确认 SKILL.md 的 frontmatter 格式是否正确尤其是name和description字段。确认技能目录是否在配置文件指定的路径下。确认对话指令中是否明确包含技能名“message-reply”。如果技能中涉及到 Python 脚本执行确认本机 Python 环境路径能被 Agent 访问。7. 常见问题与排查思路7.1 安装启动问题问题现象可能原因排查方式解决方案安装完成后无法打开客户端操作系统安全策略拦截查看系统隐私与安全性设置手动允许应用运行客户端提示需要登录网站首次使用需要设备授权确认访问的是官方域名在官方页面完成登录不要随意输入密钥无法选择模型没有配置模型服务商打开设置页查看模型配置填写 API Key 和模型名称对话无响应API Key 无效或网络不通查看日志中的请求错误修改 API Key 或更换模型服务地址7.2 Skills 加载问题问题现象可能原因排查方式解决方案Agent 不知道 message-reply 技能技能目录不在扫描路径查看启动日志中的技能扫描记录将技能目录加入配置文件Agent 回答“我没有这个技能”技能名称和调用指令不一致确认 SKILL.md 中的 name 字段对话中使用完全一致的技能名技能执行时没有读取模板模板路径写错了检查 SKILL.md 中相对路径使用相对技能目录的路径生成回复过于自由不按照规则规则描述不够具体检查 SKILL.md 的约束部分增加输出规则和反例说明7.3 脚本运行问题问题现象可能原因排查方式解决方案Python 脚本报 UnicodeDecodeError文件编码问题确认文件保存为 UTF-8在文件头部声明编码格式找不到模板文件当前工作目录不对打印脚本所在路径使用Path(__file__).parent定位模板字数判断不准确对中文字符长度理解不一致打印len(reply)输出按产品要求重新定义“字数”统计规则这些排查经验不是从文档里抄的而是所有基于“目录 文件”的技能型 Agent 共通的坑。遇到问题时先确认文件有没有被正确读取再讨论模型行为是否符合预期。8. 最佳实践与工程建议8.1 Skill 的粒度不要太大也不要太小一个 Skill 只解决一个任务场景。比如“消息回复”是一个合适的粒度而“AI 全能助手”就不是合适的粒度。如果 Skill 太大描述就会模糊Agent 很难判断何时调用如果太小比如“回复感谢消息”和“回复投诉消息”分别拆成两个技能管理成本反而增加。建议是按“业务对象 动作”来命名技能例如message-reply、order-status-query、weekly-report-generator。8.2 SKILL.md 必须写清楚“when_to_use”很多初写 Skill 的人会把大量篇幅放在“怎么做”上却忘了写“什么时候用”。这对 Agent 来说很致命。因为 Skills 的调用机制通常依赖语义匹配如果你的描述里缺少触发条件Agent 可能把不相关的任务也分给这个技能。推荐在 frontmatter 中显式声明--- name: message-reply description: 生成消息回复草稿 when_to_use: 当用户要求“帮我回消息”“生成回复”“处理投诉信息”时使用 ---8.3 模板与代码分离像本文中的例子模板文件只放文本Python 脚本只做文本匹配和字数检查SKILL.md 只放流程约束。三者各司其职后续改文案时不需要动代码改逻辑时不需要改模板。这个思想其实和前后端分离、配置与业务分离是一样的在 Agent 技能开发中同样适用。8.4 对模型输出增加校验步骤不要让模型“直接输出结果”而是在 SKILL.md 中定义“校验后输出”的步骤。比如生成回复后先检查是否包含“赔偿”“保证”“100%”等敏感词。如果包含重新生成一次。重新生成后仍然包含则输出“需要人工确认”。这种设计在客服场景中非常重要。自动回复一旦出错可能直接导致用户投诉升级所以宁可多一道检查也不要让错误内容直接发出去。8.5 注意权限和合规边界在使用 Skills 做任何自动回复、信息采集、社交平台操作时必须明确权限边界只能对自己拥有合法权限的账号和系统进行自动化操作。不得批量添加好友、批量私信、绕过平台风控。涉及用户隐私的消息处理前要确认是否符合隐私政策。生产环境接入前先在小规模测试环境验证。这是底线问题不是额外的加分项。8.6 版本管理与回滚Skills 也是代码资产建议纳入 Git 管理。每次修改 SKILL.md 或模板文件时记录变更原因。如果发现新规则导致回复质量下降可以通过 Git 回滚到上一个稳定版本。git add skills/message-reply/ git commit -m 优化投诉模板增加退款相关规则 git tag v1.0.09. 总结与后续学习方向这一篇从 Hermes Agent 和 Skills 的概念说起用“消息回复信息助手”作为例子完整演示了一个 Skill 从目录设计、SKILL.md 编写、模板创建、辅助脚本到最终运行验证的全过程。你如果照着操作现在应该已经有了一个能运行的 message-reply 技能并且理解了 Agent 如何通过技能文件来规范自己的行为。下一步值得深入的方向有三个第一扩展技能类型。消息回复只是 Skills 的一个入门例子你还可以写知识库问答技能、周报生成技能、代码审查技能。写多了之后你会发现各个技能之间有很多公共部分那时可以进一步研究技能间的调用关系。第二学习 Hermes Agent 的工具调用机制。Skills 负责定义任务流程工具调用负责执行具体动作例如读取文件、调用 API、执行命令。把这两者结合起来才能做出真正能落地的 Agent。第三关注其他 Agent 框架的 Skills 实现。Claude Code、Codex 都有类似的 Skills 机制虽然文件格式略有不同但“情境化任务说明”的设计思路是相通的。学透一个再迁移到另一个会比从零开始快很多。最后提醒一句任何自动回复技能在真实场景上线前都要经过人工审核和小流量测试。技能解决的是效率问题不是判断问题。该由人做决策的时候不要让 Agent 擅自替你做主。