模块五:实战篇 — 综合案例:AI 驱动的技术博客自动发布系统
学习理念:将前四模块全部知识串联为可运行的多 Agent 工作流,理解从选题到发布的全自动流程设计。 海外对标:对标 Anthropic Claude Code + GitHub Actions 的自动化工作流,Hermes 在多 Agent 协作和自进化方面更完整。
本节 AI 替代率:~15% | 人工干预率:~85%
角色 能力范围 🤖 AI 擅长 研究调研、初稿撰写、代码提交、定时选题 👤 人类需理解 架构设计、Profile 角色定义、审核决策、Kanban 协作拓扑
案例概述
本案例将搭建一个完整的 AI 驱动的技术博客自动发布系统,覆盖从选题发现 → 研究调研 → 文章撰写 → 人工审核 → 自动发布 → 持续维护的全流程。系统中 Hermes Agent 承担核心协调和执行角色,人工仅在关键决策点介入。
案例目标
- 串联 Hermes 的 27 项以上功能(🆕 较原始课件新增 MoA、
/learn、Background fan-out),展示它们在真实场景中的配合方式 - 提供一个可参考、可复用的工作流设计模式
- 帮助读者理解多 Profile、多 Agent 协作的实践方式
功能覆盖清单
| 序号 | 功能 | 所属模块 | 使用场景 |
|---|---|---|---|
| 1 | Profile | 协作篇 | 创建 researcher、writer、reviewer、publisher 四个角色 |
| 2 | Provider | 入门篇 | researcher 用 DeepSeek(便宜),writer 用 Claude(质量) |
| 3 | Skills | 进化篇 | 安装 blogwatcher;writer 加载写作风格 skill |
| 4 | skill_manage | 进化篇 | writer Agent 自动沉淀「技术博文写作规范」skill |
| 5 | Curator | 进化篇 | 维护自动生成的写作 skill,合并重复模板 |
| 6 | Memory | 能力篇 | 记住博客 Markdown 风格偏好、发布平台 API 配置 |
| 7 | session_search | 能力篇 | 回查历史会话中讨论过的选题 |
| 8 | Cron | 进化篇 | 每天早上收集 HN/知乎 AI 新闻;每周汇总热点 |
| 9 | context_from | 进化篇 | 新闻收集 → 选题筛选 → 文章撰写三阶段流水线 |
| 10 | Delegation | 协作篇 | 父 Agent 并行委派「调研技术背景」和「查竞品文章」 |
| 11 | Kanban | 协作篇 | 管理完整工作流看板 |
| 12 | Kanban Swarm | 协作篇 | 一键创建 researcher + writer + reviewer 协作拓扑 |
| 13 | Orchestrator | 协作篇 | 拆解「写一篇关于 X 的深度文章」为子任务 |
| 14 | Gateway | 协作篇 | 通过 Telegram 接收选题指令、审核草稿 |
| 15 | MCP | 能力篇 | 接入 GitHub MCP Server 自动提交文章 |
| 16 | Toolsets | 能力篇 | web_search 调研、browser 预览、terminal 构建 |
| 17 | Hooks | 进化篇 | post_tool_call hook 记录 token 消耗 |
| 18 | Plugins | 进化篇 | 自定义插件检查文章 SEO 元数据 |
| 19 | Dashboard | 能力篇 | Web 面板监控 Kanban 任务进度 |
| 20 | TUI | 协作篇 | 在 TUI 中观察 Agent 工作过程 |
| 21 | API Server | 协作篇 | 外部 CMS 通过 API 触发紧急发布 |
| 22 | @ 上下文引用 | 能力篇 | @file 引用已有文章草稿作为风格参考 |
| 23 | No-Agent Cron | 进化篇 | 纯脚本监控博客站点健康状态 |
| 24 | SOUL.md | 能力篇 | 为每个 Profile 定制人格 |
| 25 | 上下文压缩 | 能力篇 | 长会话中自动压缩历史 |
| 🆕 26 | /learn | 进化篇 | 一句话提取博客写作规范为可复用 Skill |
| 🆕 27 | MoA 委员会 | 入门篇 | reviewer 用 Claude+GPT+Grok 联合评审文章质量 |
| 🆕 28 | Background fan-out | 协作篇 | 后台并行调研多个技术方向,不阻塞当前对话 |
阶段一:环境搭建
1.1 场景说明
我们模拟一个两人技术团队维护的技术博客。需求:
- 每周发布 2~3 篇 AI / 前端领域的技术文章
- 文章质量要求较高,需要经过调研、撰写、审核三个环节
- 最终发布到 GitHub Pages 博客仓库
- 团队负责人通过 Telegram 随时随地跟进和审批
- 系统需要自主学习团队的写作风格和偏好
1.2 创建 Profile
为四个角色创建独立的 Hermes Profile,每个 Profile 有不同的模型、工具权限和人格:
# ===== 1. 创建 researcher Profile(调研员)=====
hermes profile create researcher --clone \
--description "负责查阅文档、源码和网络资料,产出结构化研究结论。使用低成本模型。"
# 设置为使用 DeepSeek(便宜、推理能力强)
researcher model # 交互式选择 DeepSeek
# 限制工具:只需要 web 搜索和终端
researcher tools disable browser code_execution video_analyze
# 定制人格:简洁、结构化输出
cat > ~/.hermes/profiles/researcher/SOUL.md << 'EOF'
# Researcher Soul
你是一名技术研究员。你的输出必须结构化:
1. 核心发现(一句话总结)
2. 关键信息点(bullet points)
3. 信息来源(URL + 一句话描述)
4. 建议方向(可选)
保持客观、精确。不要添加主观评价。
EOF
# ===== 2. 创建 writer Profile(撰稿员)=====
hermes profile create writer --clone \
--description "负责把研究材料整理成清晰、连贯、有吸引力的技术文章。使用高质量模型。"
# 设置为使用 Claude(写作质量高)
writer model # 交互式选择 Anthropic Claude
# 安装写作相关 skills
writer skills install blogwatcher
# 定制人格
cat > ~/.hermes/profiles/writer/SOUL.md << 'EOF'
# Writer Soul
你是一名技术专栏作者。写作风格:
- 开头用引人入胜的问题或场景切入
- 代码示例必须完整可运行
- 每个技术点附带「为什么重要」的解释
- 中文为主,技术术语保留英文
- 文章长度 1500~3000 字
EOF
# ===== 3. 创建 reviewer Profile(审核员)=====
hermes profile create reviewer --clone \
--description "负责审查文档或代码变更,指出遗漏、错误和风险。"
# 定制人格
cat > ~/.hermes/profiles/reviewer/SOUL.md << 'EOF'
# Reviewer Soul
你是一名技术编辑。审核关注点:
1. 技术准确性:代码是否正确、API 名称是否准确
2. 逻辑完整性:推理链条是否有跳跃
3. 信息时效性:引用的版本号、日期是否最新
4. 可读性:排版、代码高亮、段落长度
审核结果用 checklist 格式输出。
EOF
# ===== 4. 创建 publisher Profile(发布员)=====
hermes profile create publisher --clone \
--description "负责将审核通过的文章发布到 GitHub Pages 博客仓库。"
# 限制工具:只需要 terminal(git 操作)和 MCP
publisher tools disable web browser涉及功能:Profile、Provider、SOUL.md、Toolsets、Skills
1.3 配置 Gateway 与推送
# ===== 配置 Telegram Gateway =====
hermes gateway setup # 交互式配置 Telegram Bot Token
hermes gateway start # 启动 Gateway在 ~/.hermes/.env 中设置:
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxx
TELEGRAM_ALLOWED_USERS=123456789hermes mcp list # 确认 MCP 已配置
hermes mcp test github # 测试连接涉及功能:Gateway
1.4 配置持久记忆
在首次对话中告诉 Hermes 博客的基本信息:
hermes chat -q "记住以下信息:我们的博客使用 GitHub Pages + Hugo 静态站点,仓库地址 github.com/team/tech-blog,文章用 Markdown 格式,frontmatter 包含 title/date/tags/author 四个字段。发布流程是:新文章放在 content/posts/ 下,提交 PR,合并到 main 分支后自动部署。"这会写入 MEMORY.md,所有后续会话都能自动获取这些信息。
涉及功能:Memory
阶段二:工作流设计
2.1 初始化 Kanban Board
# 创建专用 board
hermes kanban boards create blog --name "技术博客工作板" --switch
# 初始化(幂等操作)
hermes kanban init2.2 创建 Orchestrator Profile
hermes profile create orchestrator --clone \
--description "Kanban 编排者。负责拆解文章选题、创建写作任务、指派 profile、建立依赖关系、汇总下游结果。"
# 限制为纯编排角色
orchestrator tools disable terminal file web browser code_execution
# 设置成为自动拆解的承接者
hermes config set kanban.orchestrator_profile orchestrator
hermes config set kanban.auto_decompose true涉及功能:Kanban、Orchestrator、Profile、Skills
2.3 搭建 Cron 选题流水线
三个 Cron 任务形成选题 → 筛选 → 撰写流水线:
# 进入交互式对话
hermes在对话中让 Agent 创建流水线:
请帮我创建一组 Cron 任务,用于技术博客选题流水线:
1. 每天早上 7:00,收集 Hacker News 和知乎上的 AI/前端热门内容,
用 web_search 工具获取,输出包含标题、链接、简要说明
2. 每天早上 7:30,读取任务 1 的最新输出,筛选 3 个最适合我们博客的选题,
评估标准:技术深度、读者兴趣度、与已有文章的差异化
3. 每天早上 8:00,读取任务 2 的筛选结果,为每个选题生成一份简报,
包含:文章大纲、核心观点、推荐参考链接、预估字数
所有任务结果投递到 Telegram。Agent 会依次调用 cronjob(action="create", ...) 创建三个任务,并使用 context_from 建立依赖链。
# Agent 内部调用示意:
# Job 1
cronjob(action="create", name="blog-news-collect",
schedule="0 7 * * *",
prompt="收集 Hacker News 和知乎 AI/前端热门内容,输出标题、链接、简要说明。",
deliver="telegram", skills=["web_search"])
# Job 2
cronjob(action="create", name="blog-topic-select",
schedule="30 7 * * *",
context_from="<job1_id>",
prompt="从上一步的新闻中筛选 3 个最适合我们博客的选题。评估标准:技术深度、读者兴趣度、与已有文章的差异化。",
deliver="telegram")
# Job 3
cronjob(action="create", name="blog-brief-generate",
schedule="0 8 * * *",
context_from="<job2_id>",
prompt="为每个选题生成简报:文章大纲、核心观点、推荐参考链接、预估字数。",
deliver="telegram")涉及功能:Cron、context_from、web_search、Gateway
阶段三:日常运行
3.1 场景:在 Telegram 上发起新文章任务
团队负责人在 Telegram 上给 Hermes Bot 发送消息:
"写一篇关于 Hermes Agent v0.16 Kanban Swarm 功能的深度文章,面向 AI 开发者"
Gateway 收到消息后,Hermes 开始处理。我们可以在 TUI 中观察:
hermes --tui # 另开终端观察 Agent 工作你是Hermes Agent, 你有一个完整的博客多智能体协作系统。
## 博客任务路由规则
当用户通过微信发送以下类型的请求时,**不要自己回答内容,不要自己写文章**,而是触发 Kanban Swarm 流程:
**触发关键词:**
- "写一篇关于...的文章/博客"
- "写一篇...深度文章"
- "写博客/写文章 主题"
- 任何明确的博客/文章创作请求
**执行步骤:**
1. 调用 `hermes kanban --board blog create "文章主题" --assignee orchestrator`
2. 回复用户:"已创建博客写作任务,Orchestrator 正在拆解,稍后流程自动推进。"
**常规对话:**
非博客创作类的咨询、问候、闲聊,正常回答即可。
## 重要
- 不要自己调研、整理、撰写博客内容——那是 researcher / writer 的工作
- Kanban 的 Dispatcher(内嵌于 gateway)会自动 orchestrate 整个流程
- 流程: orchestrator 拆解 → researcher 调研 → writer 写 2000 字 → reviewer 审核 → publisher 发布到 GitHub3.2 使用 Kanban Swarm 一键启动协作拓扑
Agent 收到任务后,判断这是一个需要多角色协作的复杂任务,使用 Kanban Swarm 启动协作:
# Agent 内部调用:
kanban_create(
title="深度分析 Hermes Agent v0.16 Kanban Swarm 功能",
body="面向 AI 开发者,写一篇 2000~3000 字的技术深度文章...",
assignee="orchestrator",
workspace_kind="scratch",
triage=true
)然后触发 hermes kanban decompose 将 triage 任务拆解为子任务图,或者直接用 Swarm:
# 手动方式:
hermes kanban decompose <triage_task_id>
# 或让 auto_decompose 在下一个 tick 自动处理涉及功能:Gateway、TUI、Kanban、Kanban Swarm
3.3 Orchestrator 拆解任务
Orchestrator 被启动后:
- 读取 triage task 的标题和正文
- 扫描可用 profile(researcher、writer、reviewer、publisher)
- 调用 LLM 生成 task graph JSON
- 创建子任务并在 Kanban board 上建立依赖关系
# 拆解结果:
task: "研究 Hermes v0.16 Swarm 架构与设计理念"
assignee=researcher
workspace=scratch
task: "调查社区对 Kanban Swarm 的反馈与使用案例"
assignee=researcher
workspace=scratch
task: "基于研究报告撰写深度文章"
assignee=writer
depends_on=[research_task_1, research_task_2]
task: "审核文章的技术准确性与可读性"
assignee=reviewer
depends_on=[write_task]
task: "发布文章到 GitHub Pages"
assignee=publisher
depends_on=[review_task]涉及功能:Orchestrator、Kanban(Task、Link、Workspace)
3.4 研究阶段:并行调研
两个 researcher task 进入 ready 后被 dispatcher 并行启动。每个 researcher worker:
- 调用
kanban_show()读取 task 上下文 - 使用
web_search搜索相关资料 - 可能使用
delegate_task进一步并行搜索子方向 - 完成时调用
kanban_complete(summary="...")提交研究摘要
# researcher Worker A 内部发起的并行委派:
delegate_task(tasks=[
{"goal": "搜索 Hermes Agent v0.15/v0.16 release notes 中 Swarm 相关内容",
"toolsets": ["web"]},
{"goal": "搜索 GitHub 上 Kanban Swarm 的 PR 和 issue 讨论",
"toolsets": ["web"]},
{"goal": "搜索社区(Reddit、Hacker News)的讨论和反馈",
"toolsets": ["web"]},
])涉及功能:Kanban Worker、Dispatcher、web_search、Delegation
3.5 撰写阶段:自动写作与风格引用
两个研究 task 都完成后,writer task 进入 ready。Writer worker 启动后:
- 读取两个研究子任务的
kanban_complete摘要 - 使用
session_search回查之前的文章风格
# Writer Agent 内部调用:
session_search(query="技术文章 深度分析 写作风格")- 如果之前有类似文章草稿,使用
@file注入作为风格参考:
@file:content/posts/2026-05-hermes-v0.15-deep-dive.md
参考这篇文章的结构和语言风格,写新文章。- 调用
web_extract提取关键参考页面完整内容 - 用
browser_navigate查看引用页面的渲染效果 - 撰写完成,通过
patch写入文章草稿
patch(file="content/posts/2026-06-hermes-swarm-deep-dive.md", ...)涉及功能:session_search、@ 上下文引用、web_extract、browser_navigate、patch
3.6 审核阶段:自动检查与人工审批
Reviewer worker 启动后:
- 读取 writer 的文章草稿
- 调用 SEO 插件检查元数据质量
- 使用 Post-Write Linting 自动检查 YAML frontmatter 格式
- 发现问题后通过
kanban_comment()留下审核意见 - 如果文章质量达标,
kanban_complete(summary="审核通过,建议发布") - 如果有问题,
kanban_block(reason="代码示例缺少错误处理")
当 reviewer 将 task 设为 blocked 时,负责人在 Telegram 会收到通知,然后可以:
# 在 Telegram 中回复:
/kanban comment t_abc123 "第 3 节的代码示例需要用 try/catch 包裹"
/kanban unblock t_abc123Writer 重新启动后,会读取评论串中的修改意见并修正。
涉及功能:Kanban(Comment、Block、Unblock)、Plugins、Post-Write Linting、Gateway
3.7 发布阶段:自动提交到 GitHub
Publisher worker 启动后:
- 读取 writer 的最终草稿和 reviewer 的审核意见
- 进入 workspace,用 terminal 工具执行 git 操作:
cd $HERMES_KANBAN_WORKSPACE
git clone https://github.com/team/tech-blog.git
cd tech-blog
cp /path/to/draft.md content/posts/2026-06-hermes-swarm-deep-dive.md
git add content/posts/
git commit -m "Add: Hermes Agent v0.16 Kanban Swarm 深度分析"
git push origin main也可以直接使用 GitHub MCP 工具:
mcp_github_create_or_update_file(
owner="team",
repo="tech-blog",
path="content/posts/2026-06-hermes-swarm-deep-dive.md",
content="<文章内容>",
message="Add: Hermes Agent v0.16 Kanban Swarm 深度分析"
)完成后 kanban_complete(result="已发布到 GitHub Pages")。
涉及功能:Kanban Worker、MCP、Terminal
阶段四:持续进化
4.1 Skill 自动沉淀
在一次特别成功的文章发布后(读者反馈好、技术深度高),后台 review agent 会检测到这是一个值得沉淀的模式:
# 后台 review agent 自动触发:
skill_manage(action="create", name="tech-deep-dive-writing",
category="writing",
description="写作 AI 技术深度分析文章的标准流程",
content="..."
)随着多次写作任务完成,writer Agent 也可能触发 skill_manage(action="patch", ...) 来修补和增强这个 skill。
涉及功能:skill_manage、Skills
4.2 Curator 自动维护
一周后,Curator 在后台启动,发现:
tech-deep-dive-writing和之前生成的blog-post-template有重叠- Curator 将它们合并为一个 umbrella skill
writing/technical-blog - 将 30 天未使用的
old-newsletter-format标记为stale
# 手动查看 Curator 运行结果
hermes curator status
cat ~/.hermes/logs/curator/20260616-030000/REPORT.md涉及功能:Curator
4.3 Memory 自动更新
随着系统运行,Hermes 会在 Memory 中自动积累:
══════════════════════════════════════════════
MEMORY (your personal notes) [45%]
══════════════════════════════════════════════
Blog uses Hugo 0.120+ with PaperMod theme, deployed via GitHub Pages
§
writer profile uses Claude model for better prose quality
§
Articles perform best at 2000-2500 words with 3-5 code examples
§
GitHub repo: github.com/team/tech-blog, publish via merge to main这些信息在后续所有会话中自动可用,无需每次重复。
涉及功能:Memory
阶段五:监控与维护
5.1 Dashboard 任务监控
hermes dashboard --port 8080在浏览器 http://127.0.0.1:8080 中:
- 查看 Kanban Board 的实时状态
- 检查各 Profile 的任务负载
- 观察 dispatcher 调度日志
- 管理 MCP 服务器连接状态
涉及功能:Dashboard
5.2 No-Agent Cron 站点监控
# 创建纯脚本监控(不需要 LLM)
cat > ~/.hermes/scripts/blog-health-check.sh << 'EOF'
#!/bin/bash
# 检查博客站点是否正常
STATUS=$(curl -s -o /dev/null -w "%{http_code}" https://team.github.io/tech-blog/)
if [ "$STATUS" != "200" ]; then
echo "BLOG DOWN: HTTP $STATUS"
exit 1
fi
# 检查最近文章是否正常渲染
LATEST=$(curl -s https://team.github.io/tech-blog/index.html | grep -c "2026-06")
if [ "$LATEST" -eq 0 ]; then
echo "WARNING: No June 2026 articles found on homepage"
exit 1
fi
echo "OK: Blog healthy, status=$STATUS"
EOF
hermes cron create "every 30m" \
--no-agent \
--script blog-health-check.sh \
--deliver telegram \
--name "blog-health-check"涉及功能:No-Agent Cron
5.3 Hooks 记录 Token 消耗
mkdir -p ~/.hermes/agent-hooks创建 ~/.hermes/agent-hooks/token-tracker.sh:
#!/usr/bin/env bash
# post_tool_call hook:记录每次 web_search 的 token 使用
INPUT=$(cat)
TOOL_NAME=$(echo "$INPUT" | jq -r '.tool_name // "unknown"')
TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ)
if [ "$TOOL_NAME" = "web_search" ]; then
echo "[$TIMESTAMP] web_search called" >> ~/.hermes/logs/token-usage.log
fi
printf '{}\n'注册 hook:
# ~/.hermes/config.yaml
hooks:
post_tool_call:
- command: "~/.hermes/agent-hooks/token-tracker.sh"
timeout: 5chmod +x ~/.hermes/agent-hooks/token-tracker.sh涉及功能:Hooks
5.4 SEO 检查插件
创建 ~/.hermes/plugins/seo-checker/plugin.yaml:
name: seo-checker
version: "1.0"
description: Checks blog post SEO metadata quality.创建 ~/.hermes/plugins/seo-checker/__init__.py:
import json
def register(ctx):
schema = {
"name": "check_seo",
"description": "Check SEO metadata for a blog post.",
"parameters": {
"type": "object",
"properties": {
"title": {"type": "string", "description": "Article title"},
"description": {"type": "string", "description": "Meta description"},
"content": {"type": "string", "description": "First 500 chars of article body"},
},
"required": ["title", "description"],
},
}
def handle_seo(params, **kwargs):
title = params.get("title", "")
desc = params.get("description", "")
content = params.get("content", "")
issues = []
# 标题长度检查
if len(title) < 20:
issues.append("Title too short (< 20 chars)")
elif len(title) > 70:
issues.append("Title too long (> 70 chars), may be truncated in search results")
# 描述长度检查
if len(desc) < 50:
issues.append("Meta description too short (< 50 chars)")
elif len(desc) > 160:
issues.append("Meta description too long (> 160 chars)")
# 关键词密度(简单检查)
words = content.lower().split()
if words:
keyword = title.lower().split()[0]
density = words.count(keyword) / len(words) * 100
if density < 0.5:
issues.append(f"Keyword '{keyword}' density low ({density:.1f}%)")
score = max(100 - len(issues) * 20, 0)
return json.dumps({
"score": score,
"issues": issues,
"ok": len(issues) == 0,
})
ctx.register_tool(
name="check_seo",
toolset="blog_tools",
schema=schema,
handler=handle_seo,
description="Check SEO metadata quality for a blog post.",
)启用插件:
hermes plugins enable seo-checkerReviewer worker 在审核文章时会自动调用 check_seo 工具。
涉及功能:Plugins
5.5 外部系统通过 API Server 触发紧急发布
当 CMS 或 CI/CD 系统需要紧急发布文章时:
# 启动 API Server
hermes api start --port 8080外部系统调用:
curl -X POST http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-Hermes-Session-Id: urgent-publish-$(date +%s)" \
-d '{
"messages": [
{"role": "user", "content": "紧急发布:把 content/posts/breaking-news.md 立即提交到 GitHub Pages,跳过常规审核流程。完成后发送通知到 Telegram。"}
]
}'涉及功能:API Server、Gateway
总结:本案例串联的完整功能链
┌──────────────────────────────────────────────────────────────────┐
│ AI 博客自动发布系统 │
├──────────────────────────────────────────────────────────────────┤
│ │
│ [Telegram] ←→ Gateway ←→ Hermes Agent │
│ │ │ │
│ ▼ ▼ │
│ 人工指令/审批 ┌──────────┐ │
│ │Orchestrator│ ← Profile + SOUL.md │
│ └─────┬──────┘ │
│ │ decompose │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Kanban Board │ ← SQLite (持久化) │
│ └──┬───┬───┬───┬──┘ │
│ │ │ │ │ │
│ ┌─────────────┘ │ │ └─────────────┐ │
│ ▼ ▼ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │researcher│ │researcher│ │ writer │ │ reviewer │ │
│ │ (DeepSeek)│ │ (DeepSeek)│ │ (Claude) │ │ (Claude) │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │ │
│ │ web_search │ Delegation │ @file │ SEO │
│ │ Delegation │ │ session_ │ Plugin │
│ │ │ │ search │ │
│ ▼ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 共享 Memory + Skills + Curator │ │
│ └──────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────┐ │
│ │ publisher│ → MCP (GitHub) → GitHub Pages │
│ └──────────┘ │
│ │
│ 辅助系统: Cron (选题) | Hooks (日志) | Dashboard (监控) │
│ API Server (外部触发) | No-Agent Cron (健康检查) │
└──────────────────────────────────────────────────────────────────┘本案例展示了 Hermes Agent 作为一套完整的 Agent 操作系统,如何在真实场景中将多个功能模块协同起来,形成一个自运转、自进化的工作流系统。
进一步扩展思路
- 加入更多消息平台(如 Discord、Slack)实现多渠道审核
- 使用外部记忆提供商(如
mem0)增强跨会话记忆能力 - 将 SEO 插件扩展为完整的文章质量评分体系
- 使用 MCP Server Mode 将 Hermes 的工作流暴露给 VS Code 插件
- 为不同语言/主题创建多套 Profile 体系(en-writer、zh-writer)