I built a small GitHub issue-to-draft-PR agent with Hermes, then moved polling outside the LLM
I spent some time experimenting with a small GitHub automation workflow using Hermes Agent.
The idea was not to create a fully autonomous developer, but something much more constrained:
- GitHub issue assigned to a bot
- explicit labels like
agent-okandagent-small - agent creates a branch
- agent implements a small change
- agent opens a Draft PR
- human review stays required
- follow-up PR comments can trigger another commit
- merge is always manual
The first version worked, but I made one obvious mistake: I used the agent itself as the polling mechanism.
So every cron run started an AI session just to check whether there was anything to do.
I ended up changing the architecture so that cheap shell watchers and gh CLI checks decide whether there is actionable work. Hermes is only called when there is actually a ready issue or new human PR feedback.
Current flow:
systemd timer
→ shell watcher
→ gh CLI check
→ if nothing is ready: exit
→ if work is ready: launch Hermes
→ draft PR
→ human review
The main lesson for me was: don't use the model to decide whether the model needs to be used :facepalm:
I wrote a short technical post about the setup, but I'm also curious how others are handling this kind of "agent as coding assistant" workflow.
Are you using webhooks, polling, queues, CI jobs, or something else to wake agents only when there is real work?