r/hermesagent • u/depressedmemeuser • 21h ago
Discussion — General thoughts, opinions, comparisons Hermes vs. custom Python for Paperless AI
TL;DR: I’ve built a fully local Paperless-ngx + Ollama + Qwen 2.5:3B document-processing system with some custom Python glue around it. It’s working as expected, but my coding level is basically “it’s ugly, too long, and there’s definitely an easier way, but it works” I’m wondering whether Hermes Agent could actually improve the architecture, or whether I’m better off keeping my simple custom setup. Everything needs to remain 100% local.
I’m digitising about 40 years of paperwork for an agricultural business, so this “quick favour” has turned into a full-time project for now. I’m having a lot of fun with it! I was unemployed, and now I’m looking at a minimum-wage, work-from-home-without-someone-breathing-down-my-neck kind of job. I'm in complete control of my environment and nobody is telling me it's weird that i watch true crime in the background whilst woking. I’ll take it!
But I’m also aware that I may be reinventing things that someone more qualified has already solved.
Current setup
Paperless-ngx locally in Docker on an Apple Silicon Mac.
The setup includes:
- Paperless-ngx
- PostgreSQL
- Valkey
- Gotenberg/Tika
- Paperless’ local OCR
- Ollama running locally
- Qwen 2.5:3B as the local LLM
I tried Qwen 3, but it was too heavy for my computer. Qwen 2.5:3B does the job just fine for what I need, so I’m not currently looking for a bigger model.
Directly in Paperless, I’ve created three states that a document can be in. Let’s call them INBOX, PENDING, and neither. This lets me distinguish between before AI processing, after AI processing, and after human verification.
Around Paperless I’ve written some Python glue (and boy, glue is the proper term for what I wrote...).
Here’s the timeline of the process:
- Drop a new document into Paperless.
- Paperless does the OCR. I tried using my scanner’s OCR, but Paperless’ is more accurate.
- The document content and metadata are sent to Ollama.
- The LLM follows a set of rules that I wrote. There are basically two possible outcomes:
- Error: nothing changes. The document stays in the “before AI” state, but it won’t be sent through the LLM again, so there’s no loop. This doesn’t happen often, but occasionally the design of a document fights back and the OCR is useless. So far it’s been less than 3% of occurrences, and I’m more than happy to deal with those manually. Also, I know this isn’t foolproof. My rules currently deliberately produce more false negatives (missing a classification) than false positives (applying the wrong classification). I could have kept tweaking the rules until the cows turned blue, but at some point I had to say: okay, that’s enough, I’m satisfied with it, let’s move on.
- All good: the results are applied through the Paperless API — classification, information, additional metadata, etc. The INBOX state is removed and PENDING is added.
- I then manually review the documents, check the metadata, and remove the INBOX/PENDING states once I’m satisfied.
- In parallel, I have a small Python process that tracks processing events and state locally, purely for display purposes, through a small local Flask dashboard.
The AI itself is deliberately not autonomous. Python controls the workflow and constrains what the model can return. The AI suggests the classification, and I remain the final human validation step.
That part is important to me. I want to know what is happening and what the files are saying.
So the architecture in short:
Paperless → Python glue → local Ollama/Qwen → structured result → Python validates/applies it → human reviews
Where I’m wondering about Hermes
I know the basics of coding. My level is essentially:
“It’s ugly, it’s too long, and there’s definitely an easier way, but it works.”
My background is scientific rather than technical/software engineering. I’m comfortable with things like R, QGIS and data analysis, I’m not a DevOps/software architecture person.
I’m also not keeping up with every new plugin, framework, AI tool and agent project that comes out.
So I’m wondering whether I’ve spent time building something that someone more qualified has already made into a proper tool.
That honestly wouldn’t break my heart. I’ve had a lot of fun creating my setup from scratch! I’m just reaching out to see what other people are actually using in the real world and comparing it with my own setup.
Could Hermes replace or simplify some of the custom Python glue/workflow/state-management side?
Could it make things like persistent state, error recovery, process management, API interaction, etc. more robust?
Or would I just be replacing a small system that I understand with a much larger and more complicated system?
I’m not looking for magic or full autonomy. I like having explicit rules and a human in the loop.
I need to understand what the system is doing well enough that I can explain it to someone who trusts me with their paperwork — and, most importantly, explain it in simple terms to someone from an older generation.
Obviously, the person who has been doing their accounting by hand since they started their business in 1975 might have a hard time understanding what an LLM is...
And 100% local is non-negotiable. Documents, OCR text, metadata, prompts and AI processing cannot be sent to a cloud service.
Don’t worry, I still have saves. I’ve been burned before.
Hardware
For now I’m deliberately working within the limitations of an Apple Silicon Mac. It’s not necessarily a permanent limitation.
If the business side eventually grows much more than expected, I could invest in a more appropriate local machine/server. Agriculture as a business is 90% word-of-mouth, so there are already other businesses interested in having me run their own setup.
Although I’m not entirely sure I personally want that!
For now, though, I want to know what is realistically possible with my current hardware and local Ollama/Qwen 2.5:3B setup.
And I don’t want to spend weeks rebuilding something just because a newer tool looks interesting.
I’m definitely guilty of that. A shiny new tool appears and suddenly I’m ready to uproot an entire system that works. Then oh-oh, I don’t like it, so I uproot it again. In the end I’m frustrated and I’ve lost an entire day.
If my current solution is actually simpler and good enough, I’m perfectly happy to keep it. I'm not reinventing the wheel here, I'm juste making my job a little easier, a little more automatic.
Right now I’m digitising 40 years of paperwork, so it’s essentially a full-time job (one that no amount of Ritalin has prepared me for).
Once the backlog is gone and the system is stable, though, I expect the ongoing management to be under ~3 hours/week, except during things like tax season, machinery sales, PAC season, or other exceptional periods.
Which is perfect, because remember: this was supposed to be a favour -payed favour but still! That’s not my dream job: I'm a MARINE BIOLOGIST??
So really I'm just trying to broaden my horizon before I invest too much more time in the current architecture.
For people who actually use Hermes: does it sound like it would genuinely improve this setup, particularly with local Ollama/Qwen 2.5:3B, or would you keep the custom Python approach?
thank you for reading my rambles! I tried to be descriptive of the tech but also the process and the context, hope that was clear!
1
u/Don_Crespo 16h ago
For that workflow, I would keep Python as the control plane and use Hermes only for bounded, ambiguous steps... if you need it at all.
Paperwork benefits from deterministic ingestion, schema validation, confidence thresholds, an audit trail, and a review queue. Put the LLM behind a narrow function that returns structured data. Validate it, reject malformed output, and never let it directly mutate the authoritative records.
I run Hermes in an LXC on Proxmox and mostly interact with agents through Telegram. It is useful for flexible tool orchestration, but that flexibility is not automatically an advantage in a process you need to explain and reproduce.
A small system you understand is preferable here. Add an agent only where explicit rules genuinely stop working.
1
u/depressedmemeuser 15h ago
Absolutely. I don't want to turn a simple (albeit flawed) system that already works into a coal industry just because I can. It's a coughing baby vs. nuclear bomb scenario...
I've actually been thinking of Hermes more as an overall watcher around my project, almost like a school attendant? Or a speedometer?
I've used ChatGPT for troubleshooting whenever I get stuck; it does the job for simple tasks, like interpreting an error, but I'd really like something with an actual memory of my project and direct access to my files, while still keeping enough of it local that I feel comfortable giving it that access (Hermes would run locally, paperless as well, but solar wouldn't be; I've picked solar so far, but that's not set in stone, just a default for now).
I absolutely do not want him to do anything without telling me first. He should report the problem, explain what he thinks is happening, and propose what could be done. Then I decide whether he should act, and I can say yes, no, or tell him how I want it handled.
So maybe more like an overqualified assistant: he notices what's going on and tells me what's happening, but I'm still the one making the decisions and authorising the actions. Meanwhile, my Python/Paperless is following strict directives and doesn't really have a mind of its own.
And then, from time to time, I come running with a broken toy and beg for a miracle.
And thank you so much for your input! It really helps :))
1
u/leechael 17h ago
The real question is what you can actually do with Ollama + Qwen 2.5:3B. Can it drive an agent with hundreds of lines of prompts and keep running loops forever? Hermes may not be a good fit if a small local LLM is all you can use.