交付模式
当 Hermes Agent 在消息网关(Slack、Discord、Telegram、WhatsApp、Signal 等)内部运行时,它可以将生成的文件直接交付到聊天中——不是作为用户必须复制的路径,而是作为原生附件。
图表会显示为内联图片。PDF 报告会显示为文件下载。电子表格会以 .xlsx 格式上传。代理不需要编写 MEDIA: 标签或执行任何特殊操作——它只需生成文件并在响应中提及绝对路径。网关会从文本中提取该路径,将其从可见消息中移除,并以原生方式上传文件。
工作原理
三个部分协同工作:
-
代理拥有生成文件的工具。 用于通过 matplotlib 生成图表的
execute_code,用于 PDF 的latex-pdf-report技能,用于演示文稿的powerpoint技能,用于图像的image_generate,用于音频的text_to_speech等等。 -
网关扫描代理响应中的文件路径。 任何以支持的扩展名结尾的绝对路径(
/tmp/...)或相对于主目录的路径(~/...)都会被提取。代码块和内联代码中的路径会被忽略,因此代码示例永远不会被破坏。 -
网关根据文件类型进行分发。 图像在平台支持的情况下嵌入为内联;视频嵌入为内联;音频路由到语音/音频附件;其他所有内容均作为文件附件上传。
支持的文件扩展名
| 类别 | 扩展名 | 交付方式 |
|---|---|---|
| 图像 | .png .jpg .jpeg .gif .webp .bmp .tiff .svg | 内联嵌入 |
| 视频 | .mp4 .mov .avi .mkv .webm | 内联嵌入(在支持的情况下) |
| 音频 | .mp3 .wav .ogg .m4a .flac | 语音 / 音频附件 |
| 文档 | .pdf .docx .doc .odt .rtf .txt .md | 文件上传 |
| 数据 | .xlsx .xls .csv .tsv .json .xml .yaml .yml | 文件上传 |
| 演示文稿 | .pptx .ppt .odp | 文件上传 |
| 归档文件 | .zip .tar .gz .tgz .bz2 .7z | 文件上传 |
| Web | .html .htm | 文件上传 |
.py、.log 和其他源文件扩展名被有意排除,以便代理不会自动发送任意源文件;如果您想向用户发送代码,请使用代码块。
鼓励代理生成产物
代理默认不会主动生成产物——它需要知道这样做。有两种方法可以引导它:
每次会话: 明确请求(“以图表形式发送比较结果”,“以 CSV 格式返回数据”)或编写自定义指令/个性条目,以偏向于在消息平台上以产物风格的回复。
项目级别: 将这种偏向添加到代理工作的项目中的 AGENTS.md / CLAUDE.md / .cursorrules,添加到 ~/.hermes/SOUL.md 中的全局角色,或作为 ~/.hermes/config.yaml 中 agent.personalities 下的命名预设(可通过 /personality 按会话切换)。
代理必须使用的机制很简单:将文件渲染到绝对路径(例如 /tmp/q3-revenue.png),并在回复中以纯文本形式提及该路径。网关会处理其余部分。围栏代码块或反引号内的路径会被忽略,因此代码示例永远不会被破坏。
Kanban:产物随完成通知一起发送
如果您使用 Hermes 的 kanban 多代理工作流,工作人员可以在其 kanban_complete 调用中附加可交付文件:
kanban_complete(
summary="rendered Q3 revenue chart and report",
artifacts=[
"/tmp/q3-revenue.png",
"/tmp/q3-report.pdf",
],
)
当网关节点向 Slack/Telegram/etc. 中订阅了该任务的用户发送“任务完成”消息时,它还会将每个产物作为原生附件上传到该聊天中。用户可以在一个地方收到可交付文件和摘要。
如果通知程序运行时磁盘上不存在文件,则会自动静默跳过。
通过 MCP 连接更多服务
除了产物交付管道外,代理还可以通过 MCP(模型上下文协议)访问其他服务。MCP 生态系统为大多数流行工具提供了社区服务器——安装您需要的任何服务器:
| 服务 | 解锁功能 |
|---|---|
| Notion | 读写 Notion 页面、数据库、查询工作区 |
| GitHub | Issues、PRs、评论、超出 gh CLI 范围的仓库搜索 |
| Linear | 工单、项目、周期 |
| Slack | 全工作区搜索、读取其他频道 |
| Gmail | 收件箱分类、发送邮件、标签管理 |
| Salesforce | 潜在客户、商机、账户数据 |
| Snowflake / BigQuery | 针对数据仓库执行 SQL |
| Google Drive | 文件搜索、内容、共享管理 |
通过 ~/.hermes/config.yaml 中的 mcp_servers 部分安装 MCP 服务器。有关完整设置指南,请参阅 MCP 集成。
与 Slack 中的 Perplexity Computer 比较
Perplexity Computer 的 Slack 集成围绕相同的理念构建:代理生成可交付物(图表、PDF、幻灯片演示文稿)并将其作为原生附件发布回线程中。Hermes Agent 的交付模式在本地提供了相同的面向用户的模式:
- 生成发生在用户自己的 venv / 沙箱中(无远程租户)。
- 文件通过相同的 Slack
files.uploadV2API 进入聊天。 - 连接器广度通过 MCP 实现,而不是由 400 个托管集成的精选目录提供——安装您实际使用的那些。
OAuth 令牌保留在用户机器上的 auth.json / .env 中。无托管令牌存储。无多租户微虚拟机(microVM)。最终结果相同。