Edventure AI Onboarding Kit

Hermes goal: automate the job

The two hands-on tracks have different goals, on purpose:

This lesson is the Hermes goal made concrete: get Hermes to do the same thing as the LaTeX web UI — turn a maths topic into a typeset image — but as a service that runs by itself every day, with no one clicking “Run agent”.

The shape: Hermes as the operator

The LaTeX app already knows how to make an image. So Hermes doesn’t re-implement it — Hermes becomes the operator that drives it on a schedule:

cron (daily)  ──▶  Hermes runs a skill  ──▶  calls the LaTeX app  ──▶  saves the SVG
                         │                                                │
                    remembers which topics it already covered (memory)

Three Hermes building blocks do all the work: a skill (the procedure), a cron job (the schedule), and memory (so it varies day to day).

Step 1 — Write a skill

A skill is a SKILL.md procedure (see the Skills lesson). Create one in the Hermes files — in this kit that’s ./hermes-home/skills/, which is also open in VS Code at localhost:8080.

./hermes-home/skills/daily-latex-visual/SKILL.md:

---
name: daily-latex-visual
description: Generate one LaTeX maths image for a topic by calling the LaTeX app.
---

Use this when asked to produce a daily maths visual.

Steps:
1. Choose a secondary-school maths topic (or use the one you were given).
   Avoid topics already listed in memory under "covered-latex-topics".
2. Ask the LaTeX app to render it. POST the topic to the app's agent endpoint:
      POST http://workspace:3583/agents/studio/<run-id>
      body: { "message": "<the topic>" }
   then poll  http://workspace:3583/outputs/<run-id>/latex.svg  until it exists.
3. Report the topic and the image URL, and add the topic to memory under
   "covered-latex-topics" so tomorrow's run picks a different one.

Note the URL. From inside the Hermes container the LaTeX app is reached at http://workspace:3583 (the compose service name), not localhost. On your own machine the same app is at localhost:3584. The app must be running (npm run dev in the workspace) for the skill to reach it. # VERIFY the exact SKILL.md fields against the live Hermes docs — it’s pre-1.0.

That POST-then-poll call is not made up — it’s exactly what the starter’s own web UI does. You can read it in latex-starter/public/index.html (it POSTs to /agents/studio/<id> and polls /outputs/<id>/latex.svg). Your skill just makes the same call from Hermes instead of from the browser.

Step 2 — Test it by hand

Open the Hermes dashboard (localhost:9119, log in trainee / hermes) → Chat, and ask: “Run the daily-latex-visual skill for the quadratic formula.” Confirm you get back an image URL. Fix the skill until a single manual run works — never schedule something you haven’t seen succeed once.

Step 3 — Schedule it (the cron job)

In the dashboard, open Cron Jobs → create a recurring prompt:

Now Hermes runs that prompt every morning on its own. That’s the whole goal: the manual web-UI click is gone — it’s a service.

Step 4 — Let memory make it smart

Because the skill writes covered topics to memory (./hermes-home/memories/), each day’s run picks something new instead of repeating. That’s the difference between a dumb timer and an agent: it remembers what it already did.

Why it matters: “expand the app” and “automate the work” are the two moves that turn a demo into something useful. Track 3 teaches the first; this is the second — and it’s where Hermes’s skills + cron + memory finally click together.

Try it: write the skill, get one manual run green in the dashboard chat, then schedule it. Tomorrow morning, check ./hermes-home/ for the new run.

Productionising (beyond the kit)

For a real always-on service you’d run the LaTeX app persistently (not the dev server), give the skill error handling and retries, and have it publish the image somewhere (email, a folder, a channel). The building blocks are the same — skill, schedule, memory.