# 模块五:实战篇 — 综合案例:AI 驱动的技术博客自动发布系统
# 案例概述
本案例将搭建一个完整的 AI 驱动的技术博客自动发布系统,覆盖从选题发现 → 研究调研 → 文章撰写 → 人工审核 → 自动发布 → 持续维护的全流程。系统中 Hermes Agent 承担核心协调和执行角色,人工仅在关键决策点介入。
# 案例目标
- 串联 Hermes 的 25 项以上功能,展示它们在真实场景中的配合方式
- 提供一个可参考、可复用的工作流设计模式
- 帮助读者理解多 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 | 上下文压缩 | 能力篇 | 长会话中自动压缩历史 |
# 阶段一:环境搭建
# 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=123456789 |
hermes 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 init |
# 2.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 发布到 GitHub
# 3.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_abc123 |
Writer 重新启动后,会读取评论串中的修改意见并修正。
涉及功能: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: 5 |
chmod +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-checker |
Reviewer 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)
