Sometimes the most interesting AI projects begin with a problem nobody wants to solve manually.
Mine started with roughly 197,000 image files occupying around 44GB of storage.
The collection had grown over many years from publicly available websites, forums, social media platforms, blogs and news sites. Images were scattered across 65 folders, many named after domains, some with nothing more meaningful than a serial number.
Finding anything had become increasingly difficult.
The obvious question was:
Could an AI agent organise the collection for me?
What followed became a useful lesson about what AI agents can do today, and what they still struggle to do.
The Goal
The initial objective sounded straightforward.
Take thousands of photos, group them by person, determine who that person is, and rename the folders accordingly.
The naming logic was relatively simple:
- Use the original native-language name whenever possible.
- Fall back to a Chinese translation if one exists.
- Otherwise use the English name.
For example, if a public figure’s original Japanese, Korean or Chinese name could be identified, that name would be preferred over an English transliteration.
The challenge was that almost none of the photos came with reliable metadata.
Humans could solve this eventually.
I simply didn’t want to spend months doing it.

The Setup
The infrastructure was deliberately minimal.
Hardware:
- Mac Mini M4
- External storage
- Hermes running locally
LLM access:
- OpenRouter
- USD$10 prepaid credit
Remote interface:
- Telegram Bot
Security was intentionally restricted.
Only messages originating from my own Telegram Application ID were allowed to issue commands. Nobody else could interact with the agent.
This effectively turned Telegram into a secure remote terminal for my Mac Mini.
I could initiate jobs, monitor progress and review results directly from my phone.
The Models
Like many people, I started with free models.
On paper they seemed impressive.
In practice they frequently misunderstood instructions, lost context, ignored constraints or produced inconsistent decisions.
Many could discuss the work.
Far fewer could reliably perform it.
After numerous tests, OpenAI 5.6 Luna proved to be the most reliable option available through OpenRouter.
Even then, “reliable” did not mean perfect.
My own observation was that the model understood approximately 99% of what I intended.
That sounds excellent.
Until thousands of automated actions are involved.
At scale, a 1% misunderstanding rate becomes surprisingly visible.
The Pipeline Grew Much Larger Than Expected
What started as a renaming exercise evolved into a multi-stage workflow.
Hermes first performed face extraction and clustering.
The initial pass produced:
- 232,850 detected faces
- 7,014 clusters
- 143,048 images identified as noise
The naming phase then relied on external services.
The workflow eventually became:
Face Clustering
↓
Representative Images
↓
Upload to ImgBB
↓
Google Lens via SerpDev
↓
Confidence Analysis
↓
If uncertain
↓
Queue for Yandex Search
↓
Additional Validation
↓
Folder Renaming
The idea sounded reasonable.
The reality proved much harder.
Hermes Was Surprisingly Good at Self-Correction
One unexpected discovery was how often Hermes reviewed its own work.
Rather than simply executing commands, it frequently reported problems.
The Telegram chat looked less like a chatbot and more like a junior engineer providing status updates:
- clustering completed
- worker restarted
- validation failed
- confidence too low
- manual review required
- schedule misconfigured
- progress reporting restored
Sometimes I would simply respond:
Do what you think improves the result quality.
Hermes would patch scripts, modify workflows, restart workers and verify outputs.
It wasn’t autonomous in the science-fiction sense.
But it was surprisingly capable of identifying weaknesses in the process.
The Project Never Finished
The original target was roughly 840 high-priority clusters.
The plan was:
- Top tier (150 groups)
- Google Lens
- Yandex verification
- Middle tier (300 groups)
- Google Lens
- Yandex as needed
- Lower tier
- Process later
In practice, reality intervened.
The top 150 groups completed two-stage scanning.
Only around three quarters of the middle-tier groups finished Google Lens processing.
The Yandex stage never reached meaningful scale.
Costs increased.
Runtime increased.
Complexity increased.
Progress slowed dramatically.




The Disappointing Part
Eventually I reviewed the rename results.
And honestly?
I wasn’t impressed.
Some folders were excellent.
Some recovered original Japanese names.
Some recovered Korean names.
Some recovered Chinese names.
Many looked promising.
But many others were messy.
A significant number resembled search-result titles rather than identities.
Others inherited fragments from websites, article headlines or unrelated metadata.
Overall, I would estimate only about half of the renamed folders felt genuinely useful.



Not wrong enough to call a failure.
Not good enough to trust.
That was the point where I stopped.
Not because Hermes couldn’t continue.
Because I no longer believed additional spending and fine-tuning would produce proportionally better outcomes.
After roughly three to five days of experimentation, I had learned what I wanted to know.
What I Learned
The lesson wasn’t that AI agents are useless.
Quite the opposite.
Hermes successfully automated weeks of tedious work.
The lesson was that identifying a face and identifying a person are fundamentally different problems.
AI vision can group similar images remarkably well.
Recovering an accurate human identity is much harder.
It requires:
- search engines
- reverse image lookup
- public web information
- metadata analysis
- language translation
- confidence validation
- human judgement
And despite all the recent advances, AI still struggles with that last part.
The technology worked.
The workflow worked.
The economics were reasonable.
The accuracy simply wasn’t high enough.
For me, that was the most interesting outcome.
The experiment didn’t end because the AI failed.
It ended because I finally discovered where its practical limits currently are.
And honestly, that answer was worth far more than the USD$10 I started with.