一、我们要做什么

模拟一个两人的技术团队维护技术博客,需求:

  • 每周发布 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 并行启动,各自:

  1. kanban_show() 读任务上下文

  2. web_search 搜资料

  3. 可用 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"]},
])
  1. kanban_complete(summary="...") 提交摘要

4.4 撰写阶段:自动写作 + 风格引用

研究完成后 writer 进入 ready,启动后:

  1. 读两个研究的 kanban_complete 摘要

  2. session_search(query="技术文章 深度分析 写作风格") 回查历史风格

  3. 用 @file 引用旧文章做风格参考:

@file:content/posts/2026-05-hermes-v0.15-deep-dive.md
参考这篇文章的结构和语言风格写新文章。
  1. web_extract 提取参考页、browser_navigate 看渲染效果

  2. 用 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_abc123

Writer 重启后读评论修正。

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.md

5.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: 5

6.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-checker

Reviewer 审核时会自动调用它。

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(外部触发)