新闻详情

新闻详情

首页 / 资讯中心 / 详情

【Hermes Agent】Allow Once / Session / Always / Deny 审批按钮:feishu.py:1906-1909 实现解析与 TaoToken 配置骨架

发布时间:2026/9/28 4:00:50来源:尧图网络
【Hermes Agent】Allow Once / Session / Always / Deny 审批按钮:feishu.py:1906-1909 实现解析与 TaoToken 配置骨架
1. 飞书里那四个按钮到底在批什么Hermes Agent 跑在飞书群里的时候最容易被忽略、又最容易出事的一环就是审批按钮。你让 Agent 执行一条命令它不会闷头就干而是先在飞书里弹一张卡片上面四个按钮Allow Once、Session、Always、Deny。很多人第一次看到会随手点 Always觉得省事结果后面 Agent 拿着永久授权在沙箱里跑rm -rf之类的命令你连它什么时候被放行的都不知道。这篇就聚焦feishu.py:1906-1909这一段按钮回调的实现逻辑把四个按钮从「点击」到「权限决策」的链路拆开讲清楚再给一份可以直接复制的config.toml/settings.json骨架配合 TaoToken 的统一 Key 接入让你在本地把整个审批流程复现出来亲眼确认四个按钮的行为差异。适合已经在用 Hermes Agent、或者正准备把它接进飞书工作流的人读完你能自己改回调、加审计日志、把 Always 关进笼子里。核心检索词先摆出来Hermes Agent 的飞书审批按钮、feishu.py回调实现、Allow Once / Session / Always / Deny 四级权限、TaoToken 统一 Key 配置。下面按「问题场景 → 前置准备 → 可复制配置 → 验证 → 排障 → 接入」的顺序走。2. 原问题与场景四个按钮的语义差异先把四个按钮的语义对齐不然后面看代码会懵。Allow Once 是「本次批」只放行当前这一条命令执行完授权即失效下一条危险命令还会再弹卡片。Session 是「本会话内都批」从点击那一刻起当前会话里同类命令不再询问会话结束授权回收。Always 是「永远批」写进持久化配置重启 Hermes 依然生效这也是最危险的一个。Deny 是「拒绝」命令不执行回调返回拒绝态。问题就出在 Always 上。feishu.py:1906-1909这段回调里四个按钮走的是同一个分发入口靠button_id区分分支。如果这段逻辑没有对always做二次确认用户一次误点就等于给 Agent 开了永久后门。我见过最典型的报错现象是群里有人点了 Always之后 Agent 连续执行了好几条带sudo的命令卡片再也没弹过直到有人发现日志里多了一堆越权操作。根因一句话概括危险命令触发审批卡片而按钮 callback 在feishu.py:1906-1909这类平台实现里对 Always 分支缺少拦截和审计。配置层其实有两个字段能大幅减少触发概率代码层则需要在 callback 里补审计日志和二次确认。下面先把前置环境准备好。3. TaoToken 前置统一 Key 与接入准备Hermes Agent 本身要调用模型飞书侧只是审批交互层。为了让本地复现时模型调用稳定、Key 管理不散落建议用 TaoToken 做统一入口。它的作用是给你一个兼容常见协议的统一 KeyHermes 的模型配置指向它就行不用在多个平台之间来回换 Key。你需要准备的东西不多一个 TaoToken 账号、一个 API Key、本地装好的 Hermes Agent v0.16.0、以及一个能收飞书卡片的测试群。Key 的获取在控制台的 API Keys 页面模型对话入口可以用来先验证 Key 是否可用接入文档里有各协议的 base_url 和鉴权头写法。注意TaoToken 的 API 地址是https://taotoken.net/api配置里不要带多余的路径后缀鉴权用标准的 Bearer 头。官网入口在https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content需要看文档时从那里进。拿到 Key 之后先别急着配 Hermes用模型对话页面发一条最简单的消息确认 Key 有效、额度正常。这一步能帮你排除掉后面 80% 的「到底是 Key 问题还是回调问题」的扯皮。确认可用后再往下配 Hermes 的模型段。4. 可复制配置config.toml 与 settings.json 骨架Hermes 的配置分两层模型接入层和终端安全层。模型层指向 TaoToken安全层控制审批行为。下面这份骨架可以直接抄改掉 Key 和飞书凭证即可。# ~/.hermes/config.toml [model] provider openai-compatible base_url https://taotoken.net/api api_key sk-你的TaoTokenKey model claude-sonnet-4-20250514 [terminal] backend docker # 危险命令跑在沙箱里影响面小 timeout_seconds 60 [security] tirith_enabled true # 自动拦截高危命令 require_confirm_always true # Always 按钮强制二次确认 audit_log_path ~/.hermes/audit/approval.log [security.exec_allowlist] commands [git status, ls, cat, pwd, git diff] [security.exec_denylist] commands [rm -rf, curl|sh, sudo, chmod 777] [feishu] app_id cli_你的AppID app_secret 你的AppSecret verification_token 你的VerificationToken对应的settings.json用于飞书侧卡片与回调注册字段和 toml 里的安全段呼应{ feishu: { card_callback_path: /hermes/feishu/callback, approval_buttons: [allow_once, session, always, deny], always_requires_admin: true, audit: { enabled: true, log_path: ~/.hermes/audit/approval.log, fields: [user_id, button_id, command, timestamp] } }, security: { tirith_enabled: true, exec_allowlist: [git status, ls, cat, pwd, git diff], exec_denylist: [rm -rf, curl|sh, sudo, chmod 777] } }两个文件里require_confirm_always和always_requires_admin是同一件事的两处开关前者管 Hermes 内核后者管飞书卡片回调建议都开。audit_log_path指向的目录要提前建好否则回调写日志时会静默失败你排查半天以为是按钮没触发。配置改完回到feishu.py:1906-1909这段回调理解它怎么读这些字段。这段代码的核心是拿到button_id后做分支allow_once直接放行当前命令session写入会话级缓存always先检查always_requires_admin为真则要求管理员二次确认deny直接返回拒绝。审计日志应该在分支之前统一写一条保证四个按钮都有记录。5. 验证请求跑一条危险命令看四个按钮配置就绪后启动 Hermes 并触发一次审批。用uv run python hermes启动然后在飞书群里发一条会触发审批的命令比如让 Agent 执行sudo ls /root。正常情况下卡片会弹出四个按钮。# 启动 Hermes uv run python hermes # 在飞书群发送触发审批的指令 # 例如帮我执行 sudo ls /root点击 Allow Once观察命令执行一次后再发一条同类命令卡片应该再次弹出说明授权没有持久化。点击 Session再发同类命令卡片不再弹但重启 Hermes 后授权失效。点击 Always如果always_requires_admin生效应该先弹一个管理员确认卡片确认后才写入持久化配置。点击 Deny命令不执行日志里能看到拒绝记录。验证审计日志是否落盘tail -f ~/.hermes/audit/approval.log # 期望看到类似 # {user_id:ou_xxx,button_id:always,command:sudo ls /root,timestamp:2025-...}四个按钮都点一遍日志里应该有四条对应记录button_id各不相同。如果 Always 那条没有二次确认卡片直接放行说明always_requires_admin没生效回去检查settings.json的字段名是否拼错或者飞书回调是否读的是旧配置。6. 本篇常见错排查第一个坑是回调路径对不上。飞书卡片的card_callback_path必须和 Hermes 实际注册的路由一致否则你点按钮飞书那边显示成功Hermes 这边根本没收到。排查方法是看 Hermes 启动日志里注册的路由列表和settings.json里的路径逐字比对。第二个坑是审计日志目录不存在。audit_log_path指向的父目录如果没建写日志会抛异常但很多实现会吞掉这个异常表现就是「按钮点了没反应」。先mkdir -p ~/.hermes/audit再启动。第三个坑是 Always 的二次确认没生效。常见原因是require_confirm_always和always_requires_admin只开了一个或者feishu.py:1906-1909这段回调读的是硬编码默认值而不是配置。改完配置记得重启 Hermes热加载不一定覆盖安全段。第四个坑是 allowlist 和 denylist 冲突。同一条命令同时出现在两个列表里时行为取决于实现顺序通常是 denylist 优先。别把git status这种安全命令放进 denylist也别指望 allowlist 能绕过 Always 的二次确认两者管的是不同层。第五个坑是 Key 配错导致模型调用失败误以为是审批问题。如果卡片弹不出来先确认模型层能正常返回用模型对话页面单独测一次 Key排除掉接入层问题再查回调。7. 语义一致 CTA把审批链路接稳审批按钮这条链路配置层和安全层要一起改才稳。如果你还在调 Key 和接入参数先去 API Keys 页面把统一 Key 建好再对照接入文档把base_url和鉴权头配准这两步是后面所有验证的前提。Key 没通按钮点得再对也看不到模型响应。模型验证通过后建议用模型对话页面把几个常用模型各发一条消息确认 TaoToken 侧的路由和额度都正常再回到 Hermes 里跑审批复现。如果你打算把 Hermes 长期挂在飞书群里做编码或 Agent 任务Coding Plan 更适合这种持续调用的场景Key 和额度管理会比按次调用省心。最后提醒一句Always 按钮能不用就不用require_confirm_always和always_requires_admin两个开关都打开审计日志定期翻一翻。审批链路的价值不在于按钮多好看而在于每一次放行都有记录、每一个永久授权都有人确认。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

MediaPipe人体姿态识别实战:关键点提取与LSTM动作分类详解 2026/9/28 5:02:10

MediaPipe人体姿态识别实战:关键点提取与LSTM动作分类详解

简介:基于mediapipe设计实现的人体姿态识别Python源码与配套模型,面向计算机相关专业的学生、教师及企业开发者,尤其适合毕业设计、课程设计或期末大作业场景。资源覆盖从视频输入、关键点提取到动作分类的完整流程,可快速搭建人体…

阅读更多 →
BERT+标签图谱的文本驱动书籍推荐系统 2026/9/28 5:02:10

BERT+标签图谱的文本驱动书籍推荐系统

简介:本资源是一套基于网络书评文本内容的个性化书籍推荐系统完整Java工程源码,面向高校计算机专业学生、推荐系统初学者及Java全栈开发者,旨在解决传统协同过滤推荐中冷启动与数据稀疏问题,通过深度学习与文本处理技术实现内容驱…

阅读更多 →
校园网安全体系实战:华为防火墙+深澜认证闭环防护 2026/9/28 5:02:10

校园网安全体系实战:华为防火墙+深澜认证闭环防护

简介:本资源是巢湖学院《网络安全课程设计》的完整实践报告与配套实验环境,面向高校网络工程、信息安全专业本科生及课程设计指导教师,聚焦校园网安全体系的系统性构建与落地验证。报告共47页,涵盖绪论、设计分析、团队协作、P-WP…

阅读更多 →
JSP家教系统实战:可部署的JavaWeb毕设原型 2026/9/28 5:02:10

JSP家教系统实战:可部署的JavaWeb毕设原型

简介:本资源是一个基于JSP技术开发的“大学生兼职家教网”完整Web项目,面向Java Web初学者与课程设计实践者,聚焦真实场景下的信息匹配与用户管理需求,助力掌握B/S架构开发全流程。压缩包共79个文件,含19个JSP页面&…

阅读更多 →
商用翻译机落地指南:从参数采购到高频使用 2026/9/28 5:02:10

商用翻译机落地指南:从参数采购到高频使用

很多单位在采购商用翻译设备时,往往陷入一个误区:盯着参数表里的准确率、语种数量猛看,觉得只要技术指标够硬,买回去就能立刻提升国际化接待效率。然而现实情况却是,不少高昂的设备拆封使用几次后,就被遗忘…

阅读更多 →
东莞公司网站开发避坑指南:3套方案对比评测 2026/9/28 5:02:03

东莞公司网站开发避坑指南:3套方案对比评测

东莞公司网站开发避坑指南:3套方案对比评测 找东莞建站公司,最怕的不是做得丑,而是报价单上藏着三四个“坑”。今天这篇对比评测,直接给你扒开底裤。 设计原则:别被“高大上”忽悠…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉