Featured image of post Hermes Agent in Action: Building a Fully Automated Data Operations System

Hermes Agent in Action: Building a Fully Automated Data Operations System

From data collection and DuckDB analysis to automated reporting and cross-platform publishing — build a 24/7 autonomous data operations system with Hermes Agent. 30+ automated tasks spanning 5 platforms, proven in production.

Your Manual Ops Are Being Replaced by Agents

It’s 3 AM and you’re still running scripts by hand?

After market close, you’re still copy-pasting data for your daily report?

After publishing an article, you still manually push it to 5 platforms?

AI Agents can do all of this automatically.

In 2026, AI Agent frameworks like Hermes Agent are making it possible for a single person to operate a full data product. No more complex scheduling systems, no more manual pushes, no more waking up at 3 AM to check if a script crashed.

This isn’t a conceptual overview — it’s a hands-on guide to building a fully automated data operations system from scratch with Hermes Agent. All code, configs, and pipeline designs are open source.


What Is Hermes Agent? One Sentence

An AI assistant that executes tasks autonomously on a schedule — with tool calling, cron scheduling, multi-platform delivery, and persistent data storage.

How it differs from traditional scripts:

AspectTraditional ScriptHermes Agent
SchedulingcrontabBuilt-in cron with flexible intervals like “every 30 min” or “weekdays at 15:00”
Data StorageManual file managementDuckDB data lake, auto-managed
Multi-platformWrite separate API for each platformConfigure once, deliver everywhere
Error HandlingScript crashes silentlyAuto-retry, failure alerts
Smart DecisionsFixed logicCan search, judge, and make content decisions
ExtensibilityModify code for new featuresAdd a Skill = add capability

The core architecture is minimal: LLM (Large Model) + Tools + Skills + Cron. Every component is independently configurable, replaceable, and extensible.


Tutorial: Build Your First Automated Pipeline

Let’s start with the simplest example: automatically analyze A-share sector rotation data after market close and push it to your phone.

Step 1: Data Collection

Hermes Agent can execute any command on a schedule. Configure a collection task that runs at 15:00 on trading days:

# collect_sector.py — Pulls 90 sector data from akshare
import akshare as ak
import duckdb

# Iterate all 90 industry sectors
sectors = ak.stock_board_industry_name_em()
con = duckdb.connect("sector.duckdb")

for _, row in sectors.iterrows():
    df = ak.stock_board_industry_hist_em(
        symbol=row["板块名称"],
        start_date="20260101",
        end_date="20260601"
    )
    con.execute("INSERT INTO sector_daily SELECT * FROM df")

print(f"✅ Collected {len(sectors)} sectors")

Key APIs:

  • ak.stock_board_industry_name_em() — Gets the full list of 90 sectors
  • ak.stock_board_industry_hist_em(symbol) — Gets daily OHLC data for one sector
  • DuckDB storage — Fast reads, supports SQL window functions, zero configuration

Save this as ~/.hermes/scripts/collect_sector.py, then configure the cron job:

# Auto-executes weekdays at 15:00
cron:
  sector_pipeline:
    schedule: "0 15 * * 1-5"
    script: collect_sector.py
    notify_on_failure: true

Step 2: SQL Analysis

Once data is collected, use DuckDB’s window functions to calculate momentum (10 lines of SQL):

WITH sector_5d AS (
    SELECT sector,
           ROUND((close - FIRST_VALUE(close) OVER (
               PARTITION BY sector ORDER BY date
           )) / FIRST_VALUE(close) OVER (
               PARTITION BY sector ORDER BY date
           ) * 100, 2) AS ret_5d
    FROM sector_daily
    WHERE date >= CURRENT_DATE - 5
)
SELECT * FROM sector_5d
WHERE date = (SELECT MAX(date) FROM sector_daily)
ORDER BY ret_5d DESC LIMIT 10;

This SQL does three things:

  1. FIRST_VALUE window function — Gets close price from 5 days ago
  2. PARTITION BY sector — Calculates independently per sector
  3. ORDER BY ret_5d DESC — Ranks by 5-day performance

Add 20-day momentum, volume change, and volatility factors for a comprehensive scoring model that generates buy/sell signals.

Step 3: AI-Powered Analysis

Hermes Agent can call the DeepSeek API for intelligent data interpretation:

def generate_report(data):
    prompt = f"""
    You are a quantitative analyst. Analyze today's sector rotation:

    【Top 5 Strongest】
    {data['top5']}

    Provide: market style assessment, rotation trend, and trading suggestions.
    """
    
    response = deepseek_client.chat.completions.create(
        model="deepseek-chat",
        messages=[{"role": "user", "content": prompt}]
    )
    return response.choices[0].message.content

No complex frontend needed — the Agent’s text report pushes directly to Telegram.

Step 4: Auto Delivery

Configure the Agent to automatically send reports to Telegram:

# Agent Skill configuration
skills:
  - sector-analyst

deliver:
  enabled: true
  channels:
    - telegram:
        chat_id: "@duckdblab"

Real-World Results

Five minutes after market close, your phone receives a report like this:

📊 A-Share Sector Rotation Daily
📅 2026-06-01 Monday

━━━ Market Overview ━━━
  🟢 48 up 42 down / 90 sectors
  Volume: 985.6B

━━━ Top 5 Leaders ━━━
  🔥 Coal Mining      +10.87%
  📈 Electric Power    +5.70%
  📈 Oil & Gas         +4.28%

━━━ AI Analysis ━━━
🎯 Market Style: Structural rally
🔥 Strong Sectors: Coal, Electric Power
💡 Suggestion: Watch for pullback buying opportunities

From data collection to AI analysis to mobile push — zero human intervention.


Advanced: 5 Production Pipelines

The example above is just the start. In my production system, Hermes Agent runs 30+ tasks daily, covering:

Pipeline 1: Content Generation & Multi-Platform Publishing

This is my most valuable pipeline — AI writes articles and publishes them to 5 platforms automatically.

Workflow:

Daily 09:00 → AI searches today's trending topics → Writes article
        → Uploads to WeChat draft
        → Pushes to Telegram channel
        → Syncs to Hugo blog
        → (Optional) Generates short video

Key Skills configuration:

daily_content_pipeline:
  schedule: "0 9 * * *"
  skills:
    - web_search
    - wechat-viral-article
    - china-content-platform-posting

Actual daily output:

TimeTaskOutput
07:00AI industry daily198007.xyz auto-update
09:00WeChat daily → draftAuto-push to WeChat backend
10:30Daily tool recommendationBlog + channel sync
14:00AI tool reviewLong-form article, multi-platform
18:00Tech briefing pushTelegram headline channel
20:00Viral content → WeChatEvening traffic peak

Efficiency comparison: previously 2-3 hours/day writing and publishing manually. Now Agent runs 24/7 autonomously, producing 30+ original posts per month.

Pipeline 2: Sector Rotation Monitoring

Complete quantitative data pipeline:

15:00 → akshare collects 90 sectors
15:01 → DuckDB window functions calculate momentum
15:02 → Multi-factor scoring model → Buy/sell signals
15:03 → DeepSeek AI analysis
15:05 → Report pushes to Telegram
        → Streamlit dashboard auto-refreshes

Tech stack: Python + akshare + DuckDB + Streamlit + DeepSeek

Data storage uses a unified data lake architecture:

~/.hermes/data-lake/
├── sector.duckdb       # Sector daily data
├── pipeline_log.duckdb # Run logs
└── cron_history.duckdb # Content dedup

Highlight: The dashboard is exposed via Cloudflare Tunnel — accessible from phone browser, 10x faster than opening a trading app.

Pipeline 3: YouTube Shorts Auto Generation

AI produces 5 DuckDB tips Shorts daily:

① Agent picks topics → writes scripts (English)
② edge-tts generates voiceover
③ Remotion renders video
④ Uploads to YouTube
⑤ Cross-platform promotion

A 30-second tech Shorts, from topic selection to publication — fully automated. Previously took 1-2 hours per video; now the Agent produces 5 daily.

Pipeline 4: GitHub Monetization Analysis

Daily scan of GitHub Trending for monetizable open-source projects:

20:00 → GitHub Search API collects 200 projects
     → 4-dimension monetization scoring model
     → Top 5 projects pushed to Telegram
     → Written to cron_history for dedup

Scoring dimensions:

DimensionWeightDescription
Tech Relevance30%Does it match your tech stack?
Monetization Potential30%Can it be packaged as SaaS/tutorial/consulting?
Activity25%Star growth, recent commits
Competition15%Number of similar tools

This pipeline lets me scan 30 seconds of pushes daily to find projects worth deep-diving into.

Pipeline 5: Website Health Monitoring

Daily automated check of 5 sites:

HTTP status → SSL certificate → DNS resolution → Page load → Anti-bot detection
→ Generate HTML report → Push to Telegram
→ Alert on anomalies

Previously relied on manual inspection — often “site was down for 3 days before anyone noticed.” Now the Agent checks hourly and notifies immediately on failure.


Architecture: Unified Data Lake + Modular Skills

The core design philosophy — all data in one lake, each function as an independent Skill.

Data Lake

All pipelines share a single DuckDB data lake, eliminating data silos:

data_lake:
  path: "~/.hermes/data-lake/"
  databases:
    sector.duckdb:       # Sector rotation data
    pipeline_log.duckdb:  # Pipeline run logs
    cron_history.duckdb:  # Content publish history
    umami.duckdb:        # Website analytics data

Benefits:

  • Dedup: Query cron_history before publishing — avoid repeats
  • Audit: pipeline_log records each run’s duration and results
  • Cross-pipeline analysis: SQL joins across different data sources

Modular Skills

Each pipeline = one independent Skill, individually configurable, debuggable, and iterable:

skills/
├── sector-pipeline/      # Sector rotation
├── daily-article/        # Daily articles
├── github-analyzer/      # GitHub analysis
├── website-monitor/      # Website monitoring
└── video-pipeline/       # Video generation

Adding a new feature means adding a Skill folder — no need to modify existing code.

Dedup Mechanism (Critical)

The biggest problem with content cron jobs is duplicate pushes. Same article or project pushed twice = user unsubscribe.

Solution: unified dedup database + mandatory search verification.

def check_duplicate(title):
    """Check if already pushed before publishing"""
    con = duckdb.connect("~/.hermes/data-lake/cron_history.duckdb")
    count = con.execute("""
        SELECT COUNT(*) FROM cron_history
        WHERE content LIKE ?
    """, [f"%{title[:20]}%"]).fetchone()[0]
    return count > 0  # Skip if duplicate

Never use template phrases. Every generation must include:

  1. Topic rotation pool (at least 10 directions)
  2. Real-time search for latest information
  3. Different title structures

Why Hermes Agent Over Other Solutions?

n8n, Make, Zapier and other automation tools exist, but Hermes Agent has unique advantages:

1. AI-Native

Traditional automation tools only do “if A then B” fixed flows. Hermes Agent can call LLMs for judgment, generation, and filtering within tasks:

# Logic impossible in traditional tools
skills:
  - web_search    # Agent decides what to search
  - write_article # Agent decides how to write
  - check_quality # Agent decides if quality is sufficient

2. Fully Local

All tool calls and data storage stay on your server. No dependency on third-party cloud services (except the LLM API). Data stays secure and under your control.

3. Native DuckDB Integration

Hermes Agent’s data layer is built on DuckDB — 10x faster than SQLite for queries, with support for window functions, Parquet direct queries, and more advanced features.

4. Extremely Low Cost

A $5/month VPS runs 30+ automated tasks. Compared to n8n Pro at $49/month or Zapier at $149/month, the cost is one-tenth.


Getting Started: Your First Hermes Agent Task

Installation

# One-click install
pip install hermes-agent
hermes init
hermes start

Configure Your First Task

Edit ~/.hermes/config.yaml:

cron:
  my_first_pipeline:
    schedule: "0 9 * * *"
    prompt: |
      Your task: search the latest AI industry news,
      write a 300-word industry briefing in English,
      and deliver it to my Telegram.
    deliver: telegram

Launch

hermes start

The Agent automatically runs all configured tasks. Check run logs:

hermes log my_first_pipeline

Within 5 minutes, you’ll see your first auto-pushed content.


Common Pitfalls & Best Practices

1. Content Dedup Is Priority #1

Don’t trust “the Agent will innovate automatically” — without a dedup mechanism, duplicates will appear within a week.

Solution: Use DuckDB to record history; query the database before generating.

2. Don’t Configure Too Many Tasks at Once

Start with 1-2 tasks, run for a week to confirm stability, then add more. Configuring 10 tasks at once means you won’t know where to look when something breaks.

3. Failure Alerts Are Mandatory

notify_on_failure: true
alarm_channel: telegram

An automation system without alerts = you won’t know when it breaks.

4. Audit Outputs Regularly

You still need to check Agent output quality once a week.

AI-generated text, data, and reports are your responsibility. No need to check daily, but scan weekly.

5. Pipeline Logs Are Your Lifeline

Every run records duration, results, and error messages. When something goes wrong, logs are the most effective way to trace the issue.


Results & Data

My system has been running stably for 60+ days:

MetricValue
Daily automated tasks30+
Platforms coveredTelegram / WeChat / Bilibili / YouTube / Hugo Blog
Monthly content output30+ articles + 150 pushes + 150 Shorts
Ops time< 30 minutes/day (review + exceptions)
Server cost$15/month
Failure rate< 2% (mostly upstream API rate limits)

Before: 2-3 hours/day writing articles, pushing content, and processing data.

Now: 30 minutes/day reviewing output and handling exceptions. The Agent handles 80% of repetitive work.


Next Steps

Hermes Agent’s capabilities go far beyond what’s covered here. You can:

  • 📊 Connect your own data sources (databases, APIs, files)
  • 🎬 Auto-generate video content (Remotion + TTS)
  • 🤖 Build a private knowledge base (DuckDB + vector search)
  • 🛒 Add a payment system (Gumroad + Stripe) → data product monetization
  • 🌐 Expand to global markets (English content pipeline + YouTube SEO)

📺 Watch video tutorials → DuckDB Lab YouTube

Subscribe for more DuckDB & AI automation tutorials

Built with Hugo
Theme Stack designed by Jimmy