# Refusal: Hermes Agent plugin

> Detects when a model refuses a request or deflects to an educational alternative, and retries the turn on the next model in your fallback_providers chain.

Canonical: https://hermeswatcher.com/plugins/refusal  
Tier: Community  
Official page (Nous Research): https://hermes-agent.nousresearch.com/docs/plugins/refusal  
Last updated in catalog: 2026-10-25

Detects when a model refuses a request or deflects to an educational alternative, and retries the turn on the next model in your fallback_providers chain; optionally appends your own text to the retry's system prompt after a refusal. Detection is local and rule-based (regex patterns over the response prose); tool-calling responses, code blocks and partial answers are treated as genuine answers.

## Good to know before installing

An llm_execution middleware inspects every model response before the agent loop uses it, and when it detects a refusal it sets finish_reason to content_filter (Anthropic: stop_reason to refusal) so Hermes activates its fallback model; this is logged and counted identically to a real provider-signalled refusal (reason=content_policy_blocked), with no way for a plugin to register a distinct reason, so the detection log line carries session/model/provider/api_request_id to let the two be told apart by hand; a triggered fallback resends the full conversation to the fallback provider and spends tokens there; with no fallback provider configured, Hermes replaces the response with its standard safety-refusal notice, so a false positive discards a valid answer. Optional (off by default, empty preprompt/preprompt_escalated settings): an llm_request middleware appends your configured text to the system prompt of requests in an armed session, so a same-route retry of the same model carries it; armed state is memory-only unless persist_state is enabled, in which case session ids/levels/turn ids (never text or credentials) are kept in Hermes's plugin state. No network calls, no files read or wr

From the plugin's catalog listing.

## How to install

1. Install it. Hermes asks for any API keys it needs, then asks whether to turn it on.

```bash
hermes plugins install refusal
```

2. Said no? Turn it on later:

```bash
hermes plugins enable refusal
```

3. Restart Hermes so it loads the plugin.

Some plugins also need a sign-in or settings: see the official page. Memory plugins ask whether to become your memory provider instead. Steps follow the official plugins guide: https://hermes-agent.nousresearch.com/docs/user-guide/features/plugins

## Facts

- Category: AI models & providers
- Maintained by: 0ldev (Community)
- Needs: No API keys declared
- Requires Hermes: `>=0.22.3`
- Version: 0.2.0
- In the catalog since: 2026-10-24, updated 2026-10-25

## Links

- [Full setup and settings (official page)](https://hermes-agent.nousresearch.com/docs/plugins/refusal)
- [Source code](https://github.com/0ldev/refusal/blob/b1bd080caeba423309d437f7df6ee564bd5d27dd/README.md)
- [All plugins](https://hermeswatcher.com/plugins.md)

---

HermesWatcher is an independent guide. It is not affiliated with or endorsed by Nous Research. The [official Hermes Agent documentation](https://hermes-agent.nousresearch.com/docs) and [repository](https://github.com/NousResearch/hermes-agent) from Nous Research are the authority; each page here lists the official sources it was written from. If this site and the official docs disagree, trust the official docs. Index for agents: https://hermeswatcher.com/llms.txt
