Hermes Agent for Enterprise: Run a Proactive AI Agent (2027)
Scale a Hermes-style agent from one engineer to every team: least privilege, approval workflows, audit logs and kill criteria for proactive AI agents.
Someone on your team, usually an engineer, set up an open-source agent like Hermes Agent on a few cron jobs, and it turned out to be useful. Now leadership wants one for every team, and they don't want it posting nonsense to Slack or reading files it shouldn't. This guide covers how to make that jump with governance first. It works with any agent, whether that's Hermes, a plain script calling an LLM, or OpenAGI, the source-available proactive agent that scores every signal before deciding whether to act, ask, or stay quiet. The six controls below come first, and tooling comes after.
What a Proactive AI Agent Is (and Where Hermes Agent Fits)
A proactive AI agent runs on a schedule or trigger instead of waiting for a prompt. It holds a standing instruction, such as "every weekday at 8am, summarize yesterday's customer calls and flag churn risk." It reads a defined set of data sources and then delivers or proposes an output, and nobody has to ask for it each time. A reactive chatbot waits for a question. A proactive agent decides when to speak based on its schedule, its triggers, and its instructions.
Hermes Agent is the best-known open-source example. Nous Research released it in early 2026. Nous is the lab behind the Hermes family of open-weight models, most recently Hermes 4. Hermes Agent is self-hosted and model-agnostic, so it runs against OpenRouter, Nous Portal, OpenAI-compatible endpoints, or local models. It is known for four things:
- Persistent memory that carries across sessions
- Reusable skills that the agent creates and refines from experience
- A built-in scheduler for natural-language or cron-style recurring tasks
- A messaging gateway that delivers to Telegram, Discord, Slack, WhatsApp, Signal, email, and CLI
It has passed 140K GitHub stars and helped make the idea of an agent that checks in on its own schedule feel normal.
Hermes Agent is built for a single technical operator who installs it, configures it, and runs it on a laptop, VPS, or container. Enterprise governance is not where its design effort goes: SAML SSO, per-team permissions, multi-approver queues, and centralized audit trails are left to you. That gap is the subject of this guide.
Thesis: Going from "one engineer's agent" to "a company's agent" is a governance problem, not a model problem.
Why Scaling a Proactive Agent Breaks
Proactive agents usually fail at scale because of access, review, and ownership, not because the model is bad. Gartner predicted in June 2025 that over 40% of agentic AI projects will be canceled by the end of 2027, citing escalating costs, unclear business value, and inadequate risk controls. IBM's 2025 Cost of a Data Breach Report found that 97% of organizations with AI-related breaches lacked proper AI access controls. Here is what that looks like in practice, written as the symptoms you would actually see:
- Data overreach: "Why does the sales brief mention someone's compensation?" The original agent runs on the engineer's personal tokens, so it can read every Slack channel, the whole Google Drive, and the HR folder. Copy it to another team and salary threads end up in a sales summary. IBM puts the extra cost of shadow AI at roughly $670,000 per breach.
- Unreviewed posting: "Did we promise them SSO by Q2?" A summary with one hallucinated customer commitment lands in #sales. A rep repeats it on a call, and now it is a real promise.
- Instruction drift: "The morning brief changed and nobody knows why." Standing instructions live in a config file only one person can read. When that person edits a prompt or leaves the company, the outputs change without anyone noticing.
- Noise: "I muted that channel weeks ago." Five useful scheduled posts turn into 25 because every team adds "just one more." People mute the channel, and the useful posts get muted along with the rest.
- No observability: "Why did the agent tell the CEO this account was churning?" Nobody can see which sources it read, what it drafted, or who approved it.
- No owner: "Is anyone still reading this?" A broken or stale Loop keeps running because nobody is accountable for turning it off.
- Prompt injection: "The agent did something a customer asked it to do in a ticket." Support tickets and emails are untrusted input. An agent that reads them and can also take actions can be steered by text inside them. This is LLM01 (Prompt Injection) and LLM06 (Excessive Agency) in the OWASP Top 10 for LLM Applications.
The Method: Six Controls for Running a Proactive Agent in Production
You can govern a proactive agent with a spreadsheet, any agent runtime, and no budget. The controls below work the same whether the agent is a self-hosted Hermes Agent, a cron job calling an LLM API, or a commercial platform. Anthropic's guide Building Effective Agents makes the same point: start with the simplest setup that works and add complexity only when you need it. Throughout this guide, a Loop means one scheduled or triggered standing instruction.
Step 1: Assign an owner per Loop
Every Loop gets one named human who is accountable for its output, its data scope, and switching it off. If a Loop has no owner, it does not run. Teams can share a Loop, but ownership can't be shared.
Step 2: Scope data access with least privilege
- Name the exact sources each Loop may read. For example: the #support-escalations channel, the call transcripts folder, and the Zendesk "Enterprise" view.
- Run it under a dedicated service account, never a personal OAuth token.
- Exclude sensitive areas by default: HR, finance, legal, and DMs.
- Match the audience's permissions. If the people receiving the output can't see a source, the Loop can't use it.
Step 3: Write the standing instruction as a spec, not a prompt
Fill in the same template for every Loop:
- Trigger or schedule (for example,
0 8 * * 1-5, which means 8:00 every weekday) - Audience and channel
- Allowed sources
- What to include
- What to never include
- Output format and length cap
- What "nothing to report" looks like
Silence has to be a valid output. An agent told to post daily will find something to say whether or not anything happened.
Step 4: Propose, then approve
The agent drafts into a holding place, such as a private channel, a draft doc, or a spreadsheet row. It never posts or acts directly. The owner approves, edits, or rejects each draft. Log the edits, because an edit diff shows you whether the spec is wrong (too long, wrong audience, missing exclusions) or the sources are wrong. One rule stays in place permanently: anything that leaves the company or changes a system of record always needs approval.
Step 5: Add a self-review pass before a human sees it
Add a second LLM call, or a checklist pass by the same agent, that checks every claim against a cited source. It drops claims without a citation, enforces the "never include" list, and checks the length cap. Require inline source links in every output so approvers can spot-check a draft in seconds.
Step 6: Make it observable
Keep a run log with one row per execution. Record the timestamp, Loop, sources read, draft, self-review result, approver, decision (approved, edited, or rejected), and whether anyone acted on the output. Review the log weekly.
The Loop Register
The Loop Register is one spreadsheet where every Loop is a row. Use these columns: Loop name, Owner, Schedule, Audience/channel, Allowed sources, Excluded sources, Approval required (Y/N), Approver, Kill criteria, Status, Last reviewed. If a Loop isn't in the register, it shouldn't be running.
| Control | Failure mode it prevents | Minimum manual implementation |
|---|---|---|
| Owner per Loop | No owner, instruction drift | An "Owner" column in the register, reviewed monthly |
| Least-privilege scope | Data overreach | One service account per team, with a source allowlist in the register |
| Spec, not prompt | Noise, instruction drift | A shared template, version-controlled or in a shared doc |
| Propose-then-approve | Unreviewed posting, prompt injection | Drafts go to a private channel, and the owner reacts with ✅ before re-posting |
| Self-review pass | Hallucinated claims | A second LLM call with a citation checklist |
| Run log | No observability | An append-only sheet with one row per run |
Kill criteria, set before launch
Write the kill criteria into the register before the first run. For example: "If fewer than 1 in 5 posts leads to an action within 2 weeks, or if the approver substantially edits more than 50% of drafts, pause the Loop and rewrite or retire it."
Rollout cadence
Launch one Loop per team at a time. Run it for two weeks in approval-only mode, then review the run log before adding the next one.
Worked Example: A 60-Person B2B Company's First Five Loops
This is an illustrative scenario built from the method above, not a customer case study. The numbers belong to the scenario, not to industry benchmarks.
The setup: a 60-person B2B SaaS company with about 25 customer calls a week, around 300 support tickets a month, and four teams: leadership, CS, sales, and product. One ops lead owns the Loop Register.
- Loop 1: Weekday morning brief. Posts at 8:00 to #leadership with at most 5 bullets covering notable calls, escalated tickets, and deals that moved. It reads call transcripts and the escalations view. Owner: COO. In week 1, the COO edited 3 of 5 drafts, mostly to trim length. The team tightened the cap to 5 bullets, and edits fell to 1 of 5 by week 2. Kept.
- Loop 2: Churn risk watch. Runs daily but posts to #cs-private only when something triggers it: negative sentiment on calls, repeat tickets on the same issue, or a mention that a champion has left. Every flag cites quotes. Owner: CS lead. It averaged 2–3 flags a week, and most led to an outreach task. Kept.
- Loop 3: Promise tracker. Runs weekly on Friday and goes to each account owner. It pulls commitments made on calls ("we'll have SSO by Q2") and checks them against Jira status. Owner: VP Sales. It surfaced commitments nobody had ticketed. Approval stays mandatory here, because a wrong extraction creates a false promise. Kept.
- Loop 4: Weekly feature-request digest. Runs Monday and goes to #product. It groups requests from calls and tickets, counts accounts per theme rather than mentions, and weights by ARR tier. Owner: Head of Product. Kept, with a cap of the top 7 themes.
- Loop 5: Competitor-mention alert. Ran in real time to #sales and posted more than 30 times in five days. Most mentions were passing comparisons. The run log showed that 2 of those 30+ posts led to any action.
The Loop 5 decision. The Loop hit its kill criterion of fewer than 1 in 5 posts actioned. The team considered three options: narrow the trigger to deal-stage mentions only, batch it weekly, or retire it. They retired it and folded competitor mentions into Loop 4's weekly digest as a single line.
| Loop | Schedule | Audience | Avg posts/week | Approval rate | Edit rate | Actioned rate | Decision |
|---|---|---|---|---|---|---|---|
| Morning brief | Weekdays 8:00 | #leadership | 5 | 100% | 60% → 20% | 60% | Kept |
| Churn risk watch | Daily, on trigger | #cs-private | 2.5 | 90% | 20% | 80% | Kept |
| Promise tracker | Fridays | Account owners | 6 (1 per owner) | 95% | 30% | 70% | Kept, approval permanent |
| Feature-request digest | Mondays | #product | 1 | 100% | 25% | 100% | Kept, top 7 cap |
| Competitor alert | Real time | #sales | 30+ | 85% | 10% | ~6% | Retired, merged into digest |
Lesson: the most useful Loops posted the least. Frequency is a cost, not a feature. Every post asks for someone's attention, and a Loop has to earn that by leading to action.
Common Mistakes Teams Make With Proactive Agents
Most proactive-agent failures are process mistakes, and switching tools rarely fixes them. These come up most often:
- Cloning the engineer's agent, credentials included. Personal tokens cause most data-overreach incidents. They also make access impossible to audit, and they break the day that employee leaves.
- Approval fatigue and rubber-stamping. After about two weeks, approvers start clicking "approve" without reading. No product solves this on its own. What helps is fewer and shorter outputs, inline citations, and rotating spot-check audits where a second person reviews a random sample.
- Measuring posts instead of actions. "The agent sent 40 updates" is not a success metric. Track the actioned rate.
- No "nothing to report" path. If silence isn't allowed, the agent will make something up to fill the slot.
- Treating ingested customer text as trusted. Ticket and email content can contain instructions, as Greshake et al. described for indirect prompt injection in 2023. Simon Willison's "lethal trifecta" gives a quick test. If a Loop reads untrusted content, touches private data, and can post or act externally, break the chain. Never let read access and write access sit in the same unreviewed step.
- Garbage-in source data. If calls aren't recorded or tickets aren't tagged, the agent will confidently summarize the gaps. Fix the capture process, not the agent.
- Skipping the retirement review. Loops pile up over time. Schedule a monthly prune against the register.
- Underestimating self-hosting costs. Model API spend, uptime, secret rotation, and upgrades end up as someone's part-time job. Budget for that before you scale.
When You Need Tooling (and Which Tools)
A self-hosted agent plus a spreadsheet register works fine for one technical user running a handful of Loops. Manual governance stops working when any of these becomes true:
- Non-engineers need to create or edit Loops.
- Data access must be governed per team or per role, or audited for security and compliance reviews.
- Actions need a real approval queue with more than one approver.
- You have passed roughly 5–10 Loops across 2+ teams, and maintaining the run log has become a full-time job.
Gartner estimated in 2025 that only about 130 of the thousands of vendors claiming "agentic AI" offer genuine agentic capabilities. Judge tools on concrete controls such as approval steps, scoping, and logs, not on labels.
| Tool | Hosting | Decides when to stay quiet | Approval pattern | Scoped permissions | Best fit |
|---|---|---|---|---|---|
| OpenAGI | Local daemon (macOS, Linux, Docker, Pi), BYO-LLM | Yes: 7-axis Adaptive Scrutiny (act/ask/watch/ignore/propagate) | Built-in "ask" path before acting | Bounded specialists with their own permissions | Technical teams wanting judgment plus privacy |
| Hermes Agent | Self-hosted, model-agnostic | Schedule-driven | Build it yourself | Build it yourself | Single operators, open-source purists |
| LittleBird | Cloud SaaS (Mac app) | Partial | Vendor-defined | Vendor-managed, SOC 2 | Teams comfortable with cloud data handling |
| Lindy | Cloud SaaS | Trigger-driven | Configurable steps | Per-integration | Non-engineers building assistants |
| n8n | Self-hosted or cloud | Workflow-driven | Build it yourself | Build it yourself | Engineering-led teams wanting full control |
| Relay.app | Cloud SaaS | Workflow-driven | Native human-in-the-loop steps | Per-integration | Lightweight propose-then-approve flows |
1. OpenAGI
OpenAGI is a proactive personal agent that runs as a daemon on your own hardware. It covers what Hermes Agent does well (persistent memory, skills, multi-channel delivery, any LLM) and adds a decision layer that maps directly onto the six controls. Details are in the next section.
2. Hermes Agent
Hermes Agent is still the right baseline if you want maximum community support and are prepared to build governance yourself using the register, service accounts, and an approval channel.
3. Lindy
Lindy is a no-code builder for AI agents with triggers and integrations. Non-engineers can use it. It puts less emphasis on unifying call, ticket, and doc data into one source.
4. n8n
n8n is open-source, self-hostable workflow automation with AI agent nodes. Approval steps and governance are things you build yourself.
5. Relay.app
Relay.app is workflow automation with built-in human-in-the-loop approval steps. It is a good match for propose-then-approve in lightweight cross-app workflows.
Whichever tool you choose, keep the Loop Register and the six controls. A tool can enforce the method, but it doesn't replace it.
How OpenAGI Maps to the Six Controls
OpenAGI is built around the question this guide keeps asking: should the agent speak right now? Most agents, including Hermes Agent, OpenClaw, PicoClaw, and AutoGPT, run when the schedule fires and post whatever they produce. OpenAGI scores every signal on seven axes (urgency, impact, novelty, risk, confidence, specificity, conflict) and then picks one of five actions: act, ask, watch, ignore, or propagate. Here is how those features line up with the method:
- Propose-then-approve becomes the default. The "ask" action routes a draft to a human over SMS, Telegram, or an HTTP webhook. A webhook can feed an internal approval channel or a Slack incoming webhook. High-risk, low-confidence signals end up in "ask" instead of "act."
- Silence is built in. "Watch" and "ignore" are first-class outcomes. This is the "nothing to report" path, so the agent doesn't produce a Loop-5-style flood of competitor alerts.
- Least privilege happens per task. Bounded specialists are scoped sub-agents that get spawned for risky or repeated work, each with its own permissions. A ticket-reading specialist doesn't need write access to your CRM, which breaks the lethal trifecta by design.
- Edits stick. Tiered memory (short, medium, and long-term "Lava") means a correction you make once stays in place, so the edit rate trends down instead of resetting every session.
- Data stays on your machine. There's no telemetry and no account, and you bring your own LLM. Unlike LittleBird, which runs a similar always-on Mac assistant as cloud SaaS, OpenAGI keeps transcripts and context on your own hardware.
- Observation is opt-in. Local screen capture can generate skills from patterns it observes. For team deployments, leave it off unless the owner and the audience have explicitly agreed to it.
OpenAGI's MCP registry can also pull customer context, such as call themes and ticket history, from tools like BuildBetter, so a churn-watch Loop starts from real customer signal.
Honest fit note: OpenAGI runs per machine or per host. It isn't a central admin console with SAML SSO and multi-approver queues, so keep the Loop Register as your governance layer. It is source-available under PolyForm Noncommercial, so review the license terms before any commercial deployment. Its strongest fit is technical teams and founders who want an agent that makes judgment calls about when to speak, not one that just runs on a timer.
FAQ
What is Hermes Agent?
Hermes Agent is an open-source, self-hosted AI agent from Nous Research, the lab behind the Hermes open-weight models. It runs scheduled tasks, keeps persistent memory and reusable skills, works with many model providers, and can deliver outputs through messaging platforms such as Slack, Telegram, and Discord. It is designed mainly for individual or technical operators, not as a governed multi-team enterprise system.
Can I use Hermes Agent in an enterprise?
Yes, if your users are technical and willing to self-host and build governance themselves. You will need to add more once non-engineers need to create Loops, data access must be scoped per team, or actions need multi-approver review and audit trails. At that point, either build those controls (service accounts, an approval channel, a run log, and a register) or adopt a platform that provides them.
What is a proactive AI agent?
A proactive AI agent runs on a schedule or trigger instead of waiting for a prompt. It executes a standing instruction against defined sources and delivers or proposes an output. One example is a weekday 8am summary of yesterday's customer calls that flags churn risk.
What is a standing instruction for an AI agent?
A standing instruction is a written, persistent task that an agent executes on a schedule or trigger without being prompted each time. A good one specifies the trigger, audience and channel, allowed sources, what to include and never include, output format and length cap, and what to do when there is nothing to report.
Should a proactive AI agent post without human approval?
Not at first, and never for anything that leaves the company or changes a system of record. Run every new Loop in propose-then-approve mode for at least two weeks. Consider auto-posting only for internal, low-stakes outputs that have kept a consistently low edit rate.
How do you measure whether a proactive agent is working?
Measure the actioned rate, meaning the share of outputs that led to a decision, task, or outreach, along with the approver edit rate. The number of posts doesn't tell you much. A Loop that rarely leads to action should be narrowed, batched, or retired.
How many Loops should a team start with?
Start with one Loop per team. Run it in approval-only mode for two weeks, and review the run log before adding a second.
How is OpenAGI different from Hermes Agent?
Both are local, model-agnostic agents with persistent memory and multi-channel delivery. OpenAGI adds Adaptive Scrutiny, a 7-axis decision layer that chooses whether to act, ask, watch, ignore, or propagate. It also adds bounded specialists with scoped permissions and opt-in screen capture for learning from observed patterns.
Sources and Further Reading
- Nous Research, maker of the Hermes models and Hermes Agent: nousresearch.com
- OWASP Top 10 for Large Language Model Applications (prompt injection, excessive agency): owasp.org
- NIST AI Risk Management Framework: nist.gov
- Principle of least privilege: Wikipedia
- cron, the scheduling model behind proactive agents: Wikipedia
- SAML SSO: Wikipedia
- Gartner, agentic AI project cancellation prediction (June 2025) and IBM Cost of a Data Breach Report 2025
- Greshake et al. (2023), "Not what you've signed up for: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection"
- OpenAGI on GitHub: github.com/spshulem/openAGI
Run a Proactive Agent That Knows When to Stay Quiet
The worked example showed that the Loops worth keeping are the ones that post rarely and lead to action. OpenAGI builds that into the agent. It scores every signal before speaking, asks before acting on anything risky, splits sensitive work into scoped specialists, and keeps your data on your own machine with the LLM of your choice. It runs on macOS, Linux, Docker, or a Raspberry Pi in your server closet.
Install OpenAGI in 5 minutes. Star on GitHub to follow releases.