For anyone trying Hermes, after several hours of creating, recreating and deleting user accounts to try and get Hermes to connect to Mikrotik.... this might help:
"My Python urllib REST client was the bug — not the router, not the credentials. RouterOS 7.23.3 REJECTS urllib Basic Auth (401 even with correct creds), while curl -u user:pass returns HTTP 200. Once I switched to curl transport, REST worked immediately. The ********* credentials were correct all along (WinBox proved it). We burned hours recreating users and chasing a phantom "REST auth-store desync" that never existed."
That sounds strange. I presume you were setting the content-type to application/json with urllib, so I'm curious if was the lack of base64 encoding. curl's -u admin: will do the encoding but with urllib it seems you are on your own:
To be honest, I hadn’t got much further than asking it to connect. I told it from the start to check the manual, but it wasn’t until I put your prompt into it, explicitly telling it to use and cross reference from the published manuals that we/it managed to make any progress. So thanks very much for that Amm0! It has done all sort of other useful things with other servers I’d cobbled together with more luck that skill, so it’s still been a useful experience, but it is a reminder that like a toddler learning to walk, an AI bot relies on how you train it, and with a toddler learning to walk you start with a harness and a clear instruction not to walk into a road!
There was an old-fashioned acronym used some time ago that seems to be abandoned now, in AI times: RTFM.
It seems to be rude and offencive but it tells in a very short way what HAS TO BE DONE before you start any project. You (it is not personally directed but to a whole of us) always should know the constraints that limits your solution. If you rely on unchecked and unproven solution than it is as letting to be cured by a quack.
The model you use in Hermes is going to have a dramatic effect on results. And, important, there is another /reasoning which lets you manage reasoning effort and display, has stuff like "high", "low", etc. So IDK how it messed up Python's urllib, but a "free" model running with "low" reasoning certainly could explain the results.
Think about what type of things you want to use it for in your environment. Then "chat" with hermes ask it to create skills or update the HERMES.md for those things if needed. e.g. having a "skill" that describes the architecture be one (whether that routing protocols for ISP, or devices/servers for homelab, etc). Same advice for other prompts to make it "show its work","ground everything","do adverseral review",etc before finishing is even more important when LLM is creates a SKILL.md or changing HERMES.md — since your do not want to record wrong/bad info, since it just keep making the same mistake.
And on 2, RTFM is critical. So actually carefully reading the SKILL.md hermes is using really important since agents will take them seriously... so error there will compound. Conversely, if they accurate on all details, it be way less to mess up in future. Since even if you do not "pre-populate" SKILL.md, hermes will "dynamically" create one since there is some check at end of work to see if something should be saved SKILL.md. You should also "RTFM" those too.
Basically if you're using hermes, managing the SKILL.md files will get you better results. And "working" with hermes to refine and validating them is one way, on top of actually reading what it writes.