Internal operations agent built on Hermes Agent
Period — Present
An internal operations agent that staff call from Slack and Telegram. It runs on Nous Research's Hermes Agent on a single office Mac mini. It assigns each request to the right agent, collects the results and replies in the same thread. I designed, built and operate it.
Agent that splits Slack requests across nine role‑specific agents
and handles errors through deployment and recovery checks
- Task lookup, task creation and leave requests handled in Slack threads
- A monitoring agent that turns requests in client channels into tasks · no permission to post in client channels
- A personal agent for each employee, refreshed daily from their Slack conversations
- Always on through 33 launchd jobs on one Mac mini · installed files checked against source every 5 minutes
Three fallback models in name only
- Problem
- Once a conversation grew to about 141k tokens, replies took up to 1,221 seconds. Of the three fallback model slots, one had expired credentials and two used the same provider as the main model.
- Solution
- The cause was that compacting the large conversation hit a 300‑second limit and failed. Under a rule against paying through API keys, I built a local adapter that calls Claude through a subscription account. I connected it as a fallback path on a different provider from the main model.
Waiting for approval on every error
- Problem
- At first the agent fixed only offon errors, and fixes and deployments needed human approval.
- Solution
- Handed errors from every project to the agent, from root‑cause investigation through deployment and a recovery check. For a false alarm, it fixes the detection rule instead of muting the alert. Humans approve only five things: external messages, transactions and refunds, deleting original records, permission changes and updates to company records.
Personal agents citing made‑up links
- Problem
- An agent answering on an employee's behalf must not cite links its tools had not returned.
- Solution
- Compared models on nine questions and scored an answer 0 if it used even one link the tools had not returned. In its first real conversation, the agent never called the wiki tools. I updated its instructions to call the tools promptly and follow a specified lookup order. Candidates scored 2.86–4.54 out of 5, and none produced a made‑up link.
Company records a day behind
- Problem
- The company decision records were pulled once before dawn, so the agent could not find decisions made that day.
- Solution
- Added record syncing to the collection job that runs every 10 minutes. Confirmed that the same question now gets an answer based on that day's decision.
Architecture
Interprets · plans · assigns · hands off · verifies · decides · checks results against the actual source
Knowledge and memory
- Company records
Goals · decisions · operating rules · no updates without human approval
- Operations settings repository
Agent settings · execution rules · kept separate from company records
- Hermes Agent built‑in memory
Separate memory for each agent
- OpenViking search
Knowledge and conversation search · results not treated as company records
Execution and control
- Systems the coordinator owns
offon · company records · settings repository · credentials · nothing marked done on a worker's report alone
- Stage handoff ledger
Task · done criteria · owner · review · long runs · audit · retries
- Scope and approval
Limited execution scope per role · workers do not reassign work · external messages need separate approval
Development
- InvestigationRead‑only
Root causes and technical evidence · no product code changes
- ImplementationIsolated
Separate workspace · local tests · no final commit, push, merge or deployment
- VerificationIndependent QA
Checks test evidence · pass or reject · final changes stay with the coordinator
Operations
- Slack monitoring
Collects public channel messages · posts requests to offon · decisions return to the coordinator
- Slack source archiveArchive
More than 500,000 messages · daily collection from public channels except private and webhook rooms
- Staff records
Organizes HR information · acts only within HR scope
- Personal tasks
Personal offon tasks · leave · half‑day leave · approval stays with the coordinator
- Staff answers
Read‑only offon access · an answer to staff is not company approval
Operations alerts
- Error alert relay
Passes Slack webhook alerts from the error alert channel to the coordinating agent · runs no tasks
Role workResults, evidence and risks returnedCoordinator checks the sourceApplied after approval and checksCompletion confirmed by a fresh query