一、我们要做什么
模拟一个两人的技术团队维护技术博客,需求:
每周发布 2~3 篇 AI / 前端技术文章
文章要经过调研、撰写、审核三个环节把关
最终发布到 GitHub Pages 博客仓库
负责人通过 Telegram 随时跟进和审批
系统自主学习团队的写作风格
这个案例会串联起 Hermes 的 25 项以上功能:Profile、Provider、Skills、Memory、Cron、Delegation、Kanban、Gateway、MCP、Hooks、Plugins、Dashboard、API Server 等。
核心架构一句话:Telegram 发指令 → Gateway 接收 → Orchestrator 拆解 → Kanban 编排多 Agent 协作 → 自动发布到 GitHub。
二、阶段一:环境搭建
2.1 创建四个角色 Profile
每个角色用一个独立 Profile,配不同的模型、工具权限和人格(SOUL.md)。
# ===== 1. researcher 调研员:用便宜模型 + 只留 web 权限 =====
hermes profile create researcher --clone \
--description "负责查阅文档、源码和网络资料,产出结构化研究结论。使用低成本模型。"
researcher model # 交互式选 DeepSeek(便宜、推理强)
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 撰稿员:用高质量模型 + 装写作 skill =====
hermes profile create writer --clone \
--description "负责把研究材料整理成清晰、连贯、有吸引力的技术文章。使用高质量模型。"
writer model # 交互式选 Anthropic Claude(写作质量高)
writer skills install blogwatcher
cat > ~/.hermes/profiles/writer/SOUL.md << 'EOF'
# Writer Soul
你是一名技术专栏作者。写作风格:
- 开头用引人入胜的问题或场景切入
- 代码示例必须完整可运行
- 每个技术点附带「为什么重要」的解释
- 中文为主,技术术语保留英文
- 文章长度 1500~3000 字
EOF
# ===== 3. reviewer 审核员 =====
hermes profile create reviewer --clone \
--description "负责审查文档或代码变更,指出遗漏、错误和风险。"
cat > ~/.hermes/profiles/reviewer/SOUL.md << 'EOF'
# Reviewer Soul
你是一名技术编辑。审核关注点:
1. 技术准确性:代码是否正确、API 名称是否准确
2. 逻辑完整性:推理链条是否有跳跃
3. 信息时效性:引用的版本号、日期是否最新
4. 可读性:排版、代码高亮、段落长度
审核结果用 checklist 格式输出。
EOF
# ===== 4. publisher 发布员:只留 terminal + MCP =====
hermes profile create publisher --clone \
--description "负责将审核通过的文章发布到 GitHub Pages 博客仓库。"
publisher tools disable web browser涉及:Profile、Provider、SOUL.md、Toolsets、Skills
2.2 配置 Gateway 与密钥
hermes gateway setup # 交互式配置 Telegram Bot Token
hermes gateway start # 启动 Gateway在 ~/.hermes/.env 写入密钥:
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxxxxxxxxxxxx
TELEGRAM_ALLOWED_USERS=123456789测试 MCP 连接:
hermes mcp list # 确认已配置
hermes mcp test github # 测试连接涉及:Gateway、MCP
2.3 配置持久记忆
首次对话把博客基本信息写进 MEMORY.md:
hermes chat -q "记住以下信息:我们的博客使用 GitHub Pages + Hugo 静态站点,仓库 github.com/team/tech-blog,文章用 Markdown 格式,frontmatter 包含 title/date/tags/author 四个字段。发布流程:新文章放 content/posts/ 下,提交 PR,合并到 main 后自动部署。"之后所有会话自动获取这些信息,不必重复。
涉及:Memory
三、阶段二:工作流设计
3.1 初始化 Kanban Board
hermes kanban boards create blog --name "技术博客工作板" --switch
hermes kanban init # 幂等初始化3.2 创建 Orchestrator 编排者
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
3.3 搭建 Cron 选题流水线
让 Agent 用自然语言创建三个串联的定时任务:
请帮我创建一组 Cron 任务,用于技术博客选题流水线:
1. 每天 7:00,收集 Hacker News 和知乎的 AI/前端热门内容(web_search),
输出标题、链接、简要说明
2. 每天 7:30,读取任务 1 输出,筛选 3 个最适合的选题
(标准:技术深度、读者兴趣、差异化)
3. 每天 8:00,读取任务 2 结果,为每个选题生成简报
(大纲、核心观点、参考链接、预估字数)
所有结果投递到 Telegram。Agent 内部会这样创建(示意):
cronjob(action="create", name="blog-news-collect",
schedule="0 7 * * *",
prompt="收集 HN 和知乎 AI/前端热门内容...",
deliver="telegram", skills=["web_search"])
cronjob(action="create", name="blog-topic-select",
schedule="30 7 * * *", context_from="<job1_id>", ...)
cronjob(action="create", name="blog-brief-generate",
schedule="0 8 * * *", context_from="<job2_id>", ...)context_from 把三个任务串成「收集 → 筛选 → 生成简报」流水线。
涉及:Cron、context_from、web_search、Gateway
四、阶段三:日常运行
4.1 在 Telegram 发起新文章
负责人在 Telegram 给 Bot 发:
"写一篇关于 Hermes Agent v0.16 Kanban Swarm 功能的深度文章,面向 AI 开发者"
给主 Agent 配好「博客任务路由规则」(写入 SOUL.md 或 AGENTS.md):遇到博客创作请求不要自己写,而是触发 Kanban 流程:
执行步骤:
1. 调用 hermes kanban --board blog create "文章主题" --assignee orchestrator
2. 回复用户:"已创建博客写作任务,Orchestrator 正在拆解,稍后自动推进。"可以用 hermes --tui 另开终端观察 Agent 工作过程。
4.2 Orchestrator 拆解任务
Orchestrator 启动后:读 triage 任务 → 扫描可用 profile → 生成 task graph → 建子任务和依赖:
task: "研究 Hermes v0.16 Swarm 架构与设计理念" assignee=researcher
task: "调查社区对 Kanban Swarm 的反馈与用例" assignee=researcher
task: "基于研究报告撰写深度文章" assignee=writer
depends_on=[research_1, research_2]
task: "审核文章的技术准确性与可读性" assignee=reviewer
depends_on=[write_task]
task: "发布文章到 GitHub Pages" assignee=publisher
depends_on=[review_task]4.3 研究阶段:并行调研
两个 researcher 任务 ready 后被 dispatcher 并行启动,各自:
kanban_show()读任务上下文web_search搜资料可用
delegate_task进一步并行搜索子方向
delegate_task(tasks=[
{"goal": "搜索 v0.15/v0.16 release notes 里 Swarm 内容", "toolsets": ["web"]},
{"goal": "搜索 GitHub 上 Swarm 的 PR 和 issue", "toolsets": ["web"]},
{"goal": "搜索 Reddit/HN 社区讨论", "toolsets": ["web"]},
])kanban_complete(summary="...")提交摘要
4.4 撰写阶段:自动写作 + 风格引用
研究完成后 writer 进入 ready,启动后:
读两个研究的
kanban_complete摘要session_search(query="技术文章 深度分析 写作风格")回查历史风格用
@file引用旧文章做风格参考:
@file:content/posts/2026-05-hermes-v0.15-deep-dive.md
参考这篇文章的结构和语言风格写新文章。web_extract提取参考页、browser_navigate看渲染效果用
patch写入草稿
4.5 审核阶段:自动检查 + 人工审批
Reviewer 启动后:读草稿 → 调 SEO 插件检元数据 → 检查 YAML frontmatter 格式 → 留下 kanban_comment → 达标则 kanban_complete,有问题则 kanban_block。
任务 blocked 时负责人在 Telegram 收到通知,可以回复:
/kanban comment t_abc123 "第 3 节代码要加 try/catch 包裹"
/kanban unblock t_abc123Writer 重启后读评论修正。
4.6 发布阶段:自动提交 GitHub
Publisher 启动后,用 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 工具直接提交。完成后 kanban_complete(result="已发布到 GitHub Pages")。
五、阶段四:持续进化
5.1 Skill 自动沉淀
发布成功后,后台 review agent 检测到可复用模式,自动建 skill:
skill_manage(action="create", name="tech-deep-dive-writing",
category="writing", description="写作 AI 技术深度分析文章的标准流程", ...)后续 writer 还会 skill_manage(action="patch") 修补增强它。
5.2 Curator 自动维护
一周后 Curator 后台运行:合并重复 skill(blog-post-template + tech-deep-dive-writing → writing/technical-blog),把 30 天未用的标记为 stale。
hermes curator status
cat ~/.hermes/logs/curator/20260616-030000/REPORT.md5.3 Memory 自动积累
系统运行时自动沉淀:
MEMORY (your personal notes) [45%]
Blog uses Hugo 0.120+ PaperMod theme, deployed via GitHub Pages
writer profile uses Claude model for better prose
Articles perform best at 2000-2500 words with 3-5 code examples六、阶段五:监控与维护
6.1 Dashboard 监控
hermes dashboard --port 8080 # 浏览器打开 http://127.0.0.1:8080看 Kanban 实时状态、Profile 负载、dispatcher 日志、MCP 连接。
6.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 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"6.3 Hooks 记录 Token 消耗
~/.hermes/agent-hooks/token-tracker.sh:
#!/usr/bin/env bash
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'注册到 config.yaml 并 chmod +x:
hooks:
post_tool_call:
- command: "~/.hermes/agent-hooks/token-tracker.sh"
timeout: 56.4 SEO 检查插件
~/.hermes/plugins/seo-checker/plugin.yaml:
name: seo-checker
version: "1.0"
description: Checks blog post SEO metadata quality.__init__.py 里 register(ctx) 用 ctx.register_tool(...) 注册一个 check_seo 工具,检查标题长度(20~70 字符)、描述长度(50~160 字符)、关键词密度,返回评分和问题列表。启用:
hermes plugins enable seo-checkerReviewer 审核时会自动调用它。
6.5 API Server 触发紧急发布
CMS/CI 需要紧急发布时:
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。"}]
}'七、完整架构图
[Telegram] ←→ Gateway ←→ Hermes Agent
│ │
人工指令/审批 [Orchestrator] ← Profile + SOUL.md
│ decompose
[Kanban Board] ← SQLite 持久化
┌──────┬───────┬───────┬───────┐
researcher researcher writer reviewer
(DeepSeek) (DeepSeek) (Claude) (Claude)
│ web_search │ @file │ SEO Plugin
│ Delegation │ session_search
└─────────── 共享 Memory + Skills + Curator ───────────┘
│
[publisher] → MCP(GitHub) → GitHub Pages
辅助: Cron(选题) | Hooks(日志) | Dashboard(监控) | API Server(外部触发)
评论区