Week 2 of 6

Agentic Creativity

Models, connected tools, and your worst chore
Live on Zoom · 2.00–4.30pm ET
23 August 2026
Derrick Schultz

Agentic Creativity class poster: a vintage CRT monitor with a chartreuse screen reading AGENTIC CREATIVITY, surrounded by AI-generated floral collage forms on a hatched white ground

Today’s schedule

2.00

What broke last week, and what it cost

2.20

What the model does, and what a token is

2.45

Choosing a model per task, and running one locally

3.05

Break

3.10

Tools, toolsets, and approvals

3.30

Connecting Gmail to your agent

3.50

Automating the chore you brought

4.15

Working time, homework and questions

Course Schedule

Week 1 · Aug 16

Intro to agentic creativity; installing Hermes Agent

Week 2 · Aug 23

Models, Connected Tools, Non-artistic Tasks

Week 3 · Aug 30

Skills and MCPs

Sep 6

No class

Week 4 · Sep 13

Long-running and evolving agents

Week 5 · Sep 20

An intro to agentic coding

Week 6 · Sep 27

Show and tell

Last week’s recording is up. Ask in Discord if something in it didn’t work on your machine.

Start with what broke.

What you asked

The instruction, word for word. Most failures are already visible in it.

What it did

The action it took instead — and whether you found out by reading its summary or by looking at the folder.

Where it stopped

Did it finish and get it wrong, or give up halfway and tell you it was done?

What it cost

Your rough token spend. Keep that number — it is the next forty-five minutes.

Nothing here is an embarrassing setup problem. The failures are the material.

Same agent, two very different first conversations.

Desktop knew things

It could see your practice folder, so it could act on real files. Everything it did happened on your machine.

Cloud knew nothing

No files, no history, none of your setup. Anything you wanted it to know, you had to send.

That is the whole lesson

An agent is only as useful as what it can reach. Context is not intelligence.

Both of them billed you

Model calls on either side, plus running time on the Cloud instance whether you were talking to it or not.

where we are

Today we open two of the six boxes.

Last week you installed the whole machine and looked at the loop. Today: the model that chooses the next action, and the tools it gets to choose from.

Skills, memory and connections are weeks 3 and 4.

Diagram showing an agent moving through ask, do, look and do again

01

Models, and what they cost

2.20–3.05 · 45 minutes

the swappable part

The model is the one piece of your agent you can replace in ten seconds.

Your files, tools, channels and history stay exactly where they are.

What the model is actually doing in there

Reads

Your instruction, the conversation so far, and whatever the last tool call handed back.

Decides

Which tool to call next and with what arguments — or that the job is finished.

Writes

The text you read, and the arguments every tool receives.

Does not

Touch a file, open a page, or spend money. Tools do all of that.

A better model makes better choices. It does not gain new abilities — those come from the toolset.

A token is about four characters. You pay for every one, in both directions.

Input

Everything the model reads this turn: your message, the conversation, the file it just opened, the result of the last tool call.

Output

Everything it writes: its reply to you, and the arguments of every tool call.

Cached input

The unchanged front of a conversation, charged at a fraction of the rate. One long session can cost less than ten fresh ones.

The unit

Prices are quoted per million tokens. A million tokens is around 700,000 words.

Why an agent costs more than a chat

Every step re-reads everything

Step five does not send one message. It sends your instruction plus four rounds of tool calls and their results.

Tool results are big

A directory listing, a web page, a file it opened — all of it becomes input you pay for again on every following step.

Long jobs curve upward

The tenth step costs more than the first, because the first nine are still in the message.

Failed steps still bill

An error is a tool result. You pay for it, then you pay for it again on the retry.

This is the surprise on everyone’s first bill.

checked 23 august 2026

Four price points

cheap

DeepSeek V4 Flash

The class default through Nous Portal. Fast, cheap, and entirely good enough for sorting, triage and file work.

middle

GPT-5.6 Terra

If you already pay OpenAI. Noticeably better at multi-step jobs and at knowing when to stop.

expensive

Claude, direct API

Around $40 per million output tokens. Excellent at long work. Do not point a loop at it and walk away.

free

Local, via Ollama

No per-token cost at all. You pay in speed and in tool-calling reliability.

These change monthly. Use whatever Nous Portal lists as current rather than planning around a number on a slide. · Docs: Nous Portal

the hard floor

Hermes refuses to run a model with less than 64,000 tokens of context.

Below that there is not enough room to hold your instruction, the tool definitions, and four rounds of results at the same time. It gets rejected at startup rather than failing halfway through a job.

Running a local model? You set the context yourself — -c 65536 for Ollama.

Docs: Configuration — providers, model IDs and context limits

Context budget

Minimum
64K tokens
Typical hosted
200K – 1M
What fills it
Tool results, not your messages
Warning sign
It forgets the brief

The window is shared between the job and everything it read to do the job.

What happens when the window fills up

It compresses

Hermes summarizes the older part of the conversation to make room. That summary is written by a model, and it is lossy.

Detail goes first

Exact filenames. The folder you told it not to touch. The reason you rejected version two.

This is the drift

Last week’s “nothing checks that it is still working toward what you asked an hour ago” is this, mechanically.

What to do

Finish a job in one session. Start a new session for a new job. Put the rules in a file it can re-read instead of in the chat.

Point compression at a cheap model. It is summarizing, not deciding. · Docs: Compression settings

Match the model to the job

cheap and fast

Sorting, renaming, triage

Mechanical work with a clear right answer. A stronger model gives you the same result for more money.

strong

Judgment and writing

Anything where you would notice the difference — briefs, edits, a plan with several steps, code.

local

Private and repetitive

Material you would rather not send anywhere, or a job you are going to run a thousand times.

Most people pick one model and use it for everything. That is usually overpaying and under-thinking at the same time.

not one model — several

The good model does the work. A cheap one does the paperwork.

Hermes runs its side jobs through a separate model you choose: compressing the conversation, judging whether a command is dangerous, naming a session.

Point those at something cheap and fast. None of them is the part that needs judgment.

# ~/.hermes/config.yaml

compression:
  model: "google/gemini-3-flash"

# empty = use your main chat model

Every side job you move off the expensive model is money you stop spending without noticing. · Docs: Configuration

A smart model is not automatically a good agent.

Tool calling is its own skill

The model has to emit an exactly-shaped call every single time. Some very capable models are unreliable at it.

What that looks like

It describes the action instead of taking it. It invents a tool that does not exist. It calls the right tool with the wrong arguments.

Stopping behaviour differs too

Some models stop and ask. Some keep going for forty steps. Neither is correct — it depends on the job you gave it.

How to tell

Run the same task on two models and read the tool calls, not the summaries.

in practice

Switching takes one command.

In Hermes Desktop: Settings → Providers. Pick a provider, pick a model, hit Switch.

That writes your config and applies to new sessions only. A chat you already have open keeps running whatever it started with — use /model inside it to swap mid-conversation.

$ hermes model # pick provider + model

> /model # swap inside this chat
> /tools # see what it can reach

The model picker shows cost hints next to each model. Look at them. · Docs: All commands

demo · local models

Running the model on your own machine.

No per-token cost, nothing leaves your laptop, no rate limit, works on a plane.

In exchange: slower, weaker at tool calling, and it will heat your room. Set the context to at least 64K or Hermes will not start.

$ ollama serve
$ ollama run <model> -c 65536

# then in Hermes:
# Settings → Providers → Custom endpoint

Watch this one rather than installing along. Full steps are in the after-class slides. · Docs: Custom endpoints

What actually runs on a laptop

Memory is the limit

The model has to fit in RAM. On Apple Silicon that is unified memory, so a 32GB machine goes a great deal further than a 16GB one.

On a Mac, use MLX

MLX builds run natively on Metal and generate tokens noticeably faster than the generic path.

Expect a step down

A model that fits on your laptop is not competing with a hosted frontier model. It is competing with paying for one.

Worth it when

The material is private, the job is repetitive, or your bill has become a number you think about.

after class

Installing a local model

Install and pull

$ curl -fsSL https://ollama.com/install.sh | sh $ ollama pull <model> $ ollama serve

Point Hermes at it

# Settings → Providers → Custom endpoint# base URL: http://localhost:11434/v1$ hermes doctor

The context size is the part people miss. Anything under 64K is rejected at startup, and the default is usually lower. · Docs: Configuration · Installation

the comparison to actually run

Same chore, two models.

cheap model

Sort the files in ~/Scans into folders by the year they were shot.

list filesread metadataterminal

Sorted 412 files into 6 folders by year.

12 seconds. Fractions of a cent. Correct.

strong model

Sort the files in ~/Scans into folders by the year they were shot.

list filesread metadataterminal

Sorted 400 files by DateTimeOriginal. 12 had no shoot date, so I left them in /undated rather than fall back to the file date — that is when you scanned them, not when you shot them.

48 seconds. Twenty times the price. Correct, and it caught the thing you forgot to ask.

Neither one is the right answer. The question is which failure you can live with on this particular job.

models checkpoint

You have a default model, a cheap one, and a rough idea what each costs per job.

If you change one thing today: stop running triage on your most expensive model.

02

Tools and permissions

3.10–3.50 · 40 minutes

what counts

A tool call is the agent doing something in the world. Everything else is talk.

the habit to build

Read the trace, not the summary.

The last message is a story the agent wrote about its own work. The tool calls above it are what happened. When the two disagree, the tool calls are right.

Here it deleted fourteen files. It never checked whether any of them were duplicates.

Clean up the duplicate exports in my practice folder.

list files · called

terminal · rm *-2.jpg · approved

Removed 14 duplicates. The folder is clean now.

Hermes ships around sixty tools, switched on and off in groups.

Files

Read, write, search, patch. Limited to the folders you allow.

Terminal

Run commands. The powerful one, and the dangerous one.

Web

Search, fetch a page, pull the text out of it.

Browser

Drive a real browser — click things, fill forms, get past a login.

Vision and media

Look at an image, generate one, read text out loud.

The rest

Memory, scheduled jobs, handing work to sub-agents, and MCP servers.

Type /toolsets to see which groups are on right now. · Docs: Tools and toolsets

everything is off until you say otherwise

The smallest agent Hermes will build you.

The Blank Slate setup profile gives you a provider, a model, file operations and the terminal. That is the whole list.

Start there when you want to know exactly what your agent can reach, and switch things on as jobs need them.

Docs: Setup profiles

Blank Slate

On
Provider and model
On
Files · Terminal
Off
Web, browser, vision
Off
Memory, cron, skills
Off
MCP servers

Add a tool when a job needs it, not in advance.

Three ways to handle a dangerous command

smart · default

A model triages it

A second model rates the risk. Harmless commands run. Genuinely dangerous ones are refused outright. Anything uncertain comes to you.

manual

You approve every one

Slower, and the right setting while you are still learning what your agent tends to reach for.

off

Nothing gets checked

Also known as --yolo. Every command runs. For a container you are willing to throw away, and nowhere else.

Approval is not sandboxing. Approval asks you a question; a sandbox limits what the answer can reach. · Docs: Security and approvals

Two ways to give it something it doesn’t ship with

A skill

Written instructions plus scripts for one job. Hermes arrives with about eighty already installed, including the Google ones.

An MCP server

A running program that hands your agent a set of new tools. That is next week.

The difference

A skill teaches it how to do something with tools it already has. MCP gives it tools it did not have.

This week

You use a skill somebody else wrote. Next week you write one.

Docs: Skills · The bundled skill library · MCP

the one everybody asks for

Gmail, Calendar, Drive, Sheets and Docs.

Hermes ships a Google Workspace skill. It uses OAuth, refreshes its own token, and once it is connected your agent can search your mail, read a doc, and drop a row into a sheet.

The setup is genuinely tedious: a Google Cloud project, six APIs to enable, an OAuth client, and a redirect URL you paste back. Twenty minutes on a good day.

Docs: Google Workspace skill

What setup costs

Cloud project
Yes, you make one
APIs to enable
Gmail, Calendar, Drive, Sheets, Docs, People
Credentials
OAuth 2.0, Desktop app
Time
~20 minutes

I’ll demo this. The full walkthrough is in the after-class slides.

Email goes both directions, and they are different things.

You email the agent

An email channel gives it its own address. You write to it, it replies in the thread. No app, no bot.

The agent works your mailbox

The himalaya skill lets it search, read, file and send from an account you give it.

Today, in class

Himalaya, on a spare Gmail with an app password. No Cloud project. It installs a small command-line tool and writes one config file.

Use a spare address

An agent that reads your mail can be told things by anyone who emails you.

Docs: Email channel · Himalaya skill

step 1 · in class

Let it do its own setup.

Hermes’ documentation says to ask the agent to set up Google Workspace and let it walk you through. That is the supported path, not a shortcut.

It is also the clearest thing rung one does all day: it reads the documentation, tells you which button to press, and types the parts that are typing.

Set up the himalaya skill so you can read the Gmail account I made for you.

Make an app password at Google Account → Security → App passwords. Don’t paste it here — put it in the himalaya config and tell me when it’s saved.

terminal · install himalaya · approved

Connected. Three unread from today. Want the list?

Before you connect anything real

Use a spare account

A separate Gmail costs nothing and puts a hard limit on what a mistake can reach.

Read before write

Let it search and summarize for a week before you let it send, file or delete anything.

Incoming text is data, not instructions

An email is not an order. Anyone who can write to you can put words in front of your agent.

Find the revoke button first

App passwords and OAuth clients are both one click to kill. Know where that click is before you need it.

Credentials go in the config

Same rule as last week: the setup field or the env file, never the conversation, never Zoom chat, never a screenshot.

after class

Full Google Workspace setup

01

Make a Cloud project

At console.cloud.google.com, create a project. It is free and it exists only to hold your credentials.

02

Enable six APIs

Gmail, Calendar, Drive, Sheets, Docs and People. Each is a separate Enable button in the API library.

03

Create OAuth credentials

Choose Desktop app, then download the client secret JSON. Treat that file like a password.

04

Authorize

Hermes gives you a URL, you approve it in the browser, you paste the redirect back. The token refreshes itself from then on.

Ask Hermes to run this with you rather than doing it alone. It knows the order of the steps.

tools checkpoint

Your agent can reach one real account, and you can name every other thing it is allowed to touch.

03

Your worst chore

3.50–4.15 · 25 minutes

rung one

The boring rung is the one that pays for the others.

Nothing you automate today will be interesting. That is the point.

Every chore has the same five parts

01

Trigger

What starts it. A time, a new file, an email, or you asking.

02

Input

What it reads. Name the exact folder, label or document.

03

Steps

What it does, in order. If you can’t write them down, you can’t hand them over.

04

Output

What it produces. A file, a message, a row in a sheet.

05

Destination

Where that lands, and who ends up seeing it.

The parts you leave vague are the parts it will guess.

the actual skill

The same chore, briefed two ways.

vague

Clean up my Downloads folder.

terminal · rm · approved

Cleaned up 340 files.

It decided what “clean” meant. So did you, differently.

specific

In ~/Downloads, move every file older than 30 days into ~/Downloads/Archive/YYYY-MM. Leave this month alone. Delete nothing. List what you moved.

list filesmove · called

Moved 312 files into 14 dated folders. 28 files from this month untouched. Nothing deleted. Full list in moved.txt.

Same job. Reversible, checkable, boring.

Say what it may not do. That sentence does more work than any other one in the brief.

mine, in five parts

The morning digest, taken apart.

Trigger — 7.30am, weekdays. Input — Slack, email, Linear and GitHub, last 24 hours only. Steps — pull it all, drop anything I’m only cc’d on, group by project. Output — one message: needs me today, for information, and a suggested next step on each. Destination — a Slack message to myself.

It took four rewrites to stop it marking everything urgent.

Slack message from an agent: a daily attention digest built from Slack, Linear and meeting notes, splitting tasks into needs-attention-today and FYI, each with why it matters and a suggested next step

It ran while you were asleep. Now what?

Count things

412 in, 412 out. A number that doesn’t match is the fastest bug you will ever find.

Ask for the leftovers

The items it couldn’t handle tell you more than the ones it could. Make it put them somewhere and say how many.

Spot check three

One from the start, one from the middle, one from the end. Not the first three.

Reversible before recurring

Move, don’t delete. Copy, don’t overwrite. Then let it run every day.

one line, then leave it alone

Putting it on a schedule.

Scheduled jobs are built in. A job is a time, a prompt, and somewhere for the answer to go — Telegram, email, a file.

Only do this after the chore has run correctly by hand twice. A broken chore on a schedule is a broken chore that bills you every morning.

> /cron add "0 7 * * 1-5" "Summarize
  yesterday's unread mail and send
  it to me on Telegram."

> /cron run <job> # test it now
> /cron # list, pause, remove

Test with /cron run rather than waiting until 7am to find out. · Docs: Scheduled jobs

the rule for scheduled jobs

A scheduled job wakes up in an empty room.

Fresh session. No memory of your conversations, no idea what you set up earlier. “Do my usual morning briefing” gets you nothing. The prompt has to contain the whole job.

A daily job is a monthly bill.

Multiply by thirty

A job that costs 8 cents a run is $2.40 a month. Ten of them is a subscription you never signed up for.

Watch the input side

If it reads more every day — a growing folder, a longer thread — the cost grows with it and nothing warns you.

Give it a stopping condition

A cap on steps, a cap on files, and a “if there is nothing new, say so and stop”.

Check it after a week

Look at what it actually spent, not what you estimated. Then decide whether the chore was worth it.

after class

Scheduled job reference

In a chat

> /cron add 30m "Check the render queue" > /cron add "every 2h" "Check server status" > /cron run <job_id> > /cron

From the terminal

$ hermes cron create "every 1h" \ "Summarize new feed items" # or just ask it in plain language

Don’t hand-edit ~/.hermes/cron/jobs.json. Direct edits can fail silently — use the commands. · Docs: Cron

04

Your turn

4.15–4.30 · 15 minutes

working time

Automate the chore you brought.

Write the five parts down first — trigger, input, steps, output, destination — before you type anything to the agent.

Run it by hand once. Read the tool calls. Find the thing it guessed.

Rewrite the brief to close that gap, then run it again.

Don’t schedule it today. Ask me questions.

our group project

@Creative_Agent is getting a mailbox.

Last week it could read the syllabus and answer questions. This week it gets an email address, and a research topic from each of you.

It keeps researching between now and week six. Then we start pointing it at tools that make things instead of tools that read things.

Reply when it writes to you — or tell me in Discord if you’d rather sit this one out.

What should I research for you this term? One line is enough.

Experimental filmmakers who died before 1980 and never got a retrospective.

web search · 14 sources · read

Started a file for you. I’ll add to it weekly and tell you when it’s worth reading.

Homework

Get one chore running

The one you brought. By hand is fine. Bring the brief that finally worked, and the three that didn’t.

Price it

Run it twice and note what it spent. We are building an intuition for what things cost, not a spreadsheet.

Try a second model

Run the same chore on something cheaper. Was the result worse, or just different?

Connect one account

Gmail through himalaya, or the whole of Workspace if you want it. Read-only tasks this week.

Bring a want

One thing you wish it could reach and can’t. That list is week 3.

Where to read more

Models

Configuration — providers, model IDs, compression, the 64K floor · Nous Portal

Email and Google

Himalaya for a mailbox · Email channel to write to it · Google Workspace for the rest

Scheduled jobs

Cron — and the rule that a scheduled prompt has to carry its whole job

Next week, early

Skills · MCP · the ~80 bundled skills

This deck

artificial-images.com/agentic-week2 — including the hidden after-class slides

that’s week two

Thank you.

next week

Skills and MCPs
30 August · 2.00pm ET

Questions in Discord, or derrick@titles.xyz · artificial-images.com