Skip to content

fix(irc): stop recommending Libera.Chat — public networks ban agents - #67146

Closed
xxiaoxiong wants to merge 1 commit into
NousResearch:mainfrom
xxiaoxiong:fix/61181-irc-defaults-no-libera
Closed

fix(irc): stop recommending Libera.Chat — public networks ban agents#67146
xxiaoxiong wants to merge 1 commit into
NousResearch:mainfrom
xxiaoxiong:fix/61181-irc-defaults-no-libera

Conversation

@xxiaoxiong

Copy link
Copy Markdown

Summary

hermes gateway setup was steering users into a network-policy violation. Libera.Chat's bot policy update explicitly bans LLM-driven / autonomous agents — operators that point Hermes at public IRC networks get the bot and themselves klined. Hermes' defaults hardcoded irc.libera.chat in the wizard prompt, the env-var catalogue, the plugin manifest, and the docs.

Closes #61181.

Changes

  • interactive_setup() (plugins/platforms/irc/adapter.py): drops the Libera.Chat example, prints a print_warning that names the policy and the kline risk, recommends self-hosted ircds (Ergo/InspIRCd/ZNC), and re-prompts with irc.example.invalid as the placeholder.
  • hermes_cli/config.py env-var catalogue + plugins/platforms/irc/plugin.yaml manifest: irc.libera.chatirc.example.invalid.
  • Docs (website/docs/user-guide/messaging/irc.md, website/docs/reference/environment-variables.md): visible ⚠️ warning box at the top of the IRC guide explaining the ban and pointing at Ergo as the easiest self-hosted ircd; clean examples everywhere.

Tests

Existing tests in test_setup_irc / test_irc_adapter / test_platform_registry used irc.libera.chat as an arbitrary server string (not as a default being asserted). Replaced with the neutral irc.example.invalid; semantics unchanged.

Two new regression tests in TestIRCPolicyWarningInSetup:

  • test_interactive_setup_warns_about_public_network_policy — asserts the wizard output surfaces the Libera.Chat ban/policy warning and recommends a self-hosted ircd.
  • test_interactive_setup_default_prompt_does_not_recommend_libera — guards against re-introducing irc.libera.chat as the default server prompt; ensures the new private-ircd placeholder survives.
tests/hermes_cli/test_setup_irc.py ..........    [100%]
tests/gateway/test_irc_adapter.py ...........    [100%]
tests/gateway/test_platform_registry.py .....    [100%]
104 passed in 14.07s

##PR submission checklist

…ousResearch#61181)

Libera.Chat's bot policy explicitly forbids LLM-driven / autonomous
agents (https://libera.chat/news/bot-policy-update): operators that
point Hermes at public IRC networks get the bot — and themselves —
klined. Hermes' own setup wizard was steering users into that
violation by hard-defaulting to `irc.libera.chat`.

Changes:
- IRN setup wizard (`interactive_setup()`): drops the Libera.Chat
  example, prints a `print_warning` that names the policy and the
  sit-rotation risk, recommends self-hosted ircds (Ergo/InspIRCd/ZNC),
  and re-prompts for a hostname with `irc.example.invalid` as the
  placeholder.
- Docstring + plugin.yaml + `hermes_cli/config.py` env-var catalog:
  replace `irc.libera.chat` with `irc.example.invalid` so the
  defaults catalogue and self-installer prompts no longer promote
  Libera.Chat.
- User-facing docs (`irc.md`, `environment-variables.md`): add a
  visible ⚠️ warning box at the top of the IRC guide explaining the
  ban and pointing at Ergo as the easiest self-hosted ircd; clean
  examples of `irc.libera.chat` everywhere.
- Tests: replace `irc.libera.chat` with the neutral
  `irc.example.invalid` in the existing `test_setup_irc`,
  `test_irc_adapter`, and `test_platform_registry` suites (these used
  `irc.libera.chat` as an arbitrary server string, not as a default
  being tested — semantics unchanged).
- New regression tests (`TestIRCPolicyWarningInSetup`):
  * `test_interactive_setup_warns_about_public_network_policy` —
    asserts the wizard output surfaces the Libera.Chat ban / policy
    warning AND recommends a self-hosted ircd.
  * `test_interactive_setup_default_prompt_does_not_recommend_libera`
    — guards against re-introducing `irc.libera.chat` as the default
    server prompt; ensures the new private-ircd placeholder survives.

Closes NousResearch#61181.

@teknium1 teknium1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for removing a current setup recommendation that conflicts with Libera.Chat's autonomous-agent policy. Current main still recommends irc.libera.chat in the wizard at plugins/platforms/irc/adapter.py:563-566 and in the user guide at website/docs/user-guide/messaging/irc.md:3,11,28,43.

Problems

  • website/docs/user-guide/messaging/irc.md:5 broadens the claim to “Most public networks” explicitly banning LLM-driven/autonomous agents. The linked Libera.Chat policy supports the warning for autonomous Hermes clients, but does not establish that broader assertion.

Suggested changes

  • Scope the warning to Libera.Chat's documented policy, unless sources are added for the cross-network claim. The self-hosted IRCd recommendation can remain.

Automated hermes-sweeper review.

The IRC adapter connects Hermes to any IRC server and relays messages between an IRC channel (or direct messages) and the agent. It speaks the IRC protocol over Python's stdlib `asyncio` — **no external dependencies, no SDK, no daemon**. It works with public networks like [Libera.Chat](https://libera.chat/) and any self-hosted ircd.
The IRC adapter connects Hermes to any IRC server and relays messages between an IRC channel (or direct messages) and the agent. It speaks the IRC protocol over Python's stdlib `asyncio` — **no external dependencies, no SDK, no daemon**. It works with any self-hosted ircd (Ergo, InspIRCd, ZNC, etc.).

> ⚠️ **Do not point Hermes at public IRC networks.** Most public networks — including [Libera.Chat](https://libera.chat/news/bot-policy-update) — explicitly ban LLM-driven / autonomous agents, and Hermes connecting to them can get both the bot and the operator klined. Run a self-hosted ircd instead (e.g. [Ergo](https://ergo.chat/) in a Docker container).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The linked Libera.Chat policy supports warning against autonomous Hermes clients there, but it does not establish that most public IRC networks explicitly ban them. Please scope this sentence to Libera.Chat or cite the broader claim.

@alt-glitch alt-glitch added type/docs Documentation improvements comp/cli CLI entry point, hermes_cli/, setup wizard comp/plugins Plugin system and bundled plugins P3 Low — cosmetic, nice to have labels Jul 19, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

This was generated by AI during triage.

Related to #61181 and closed-unmerged #61194. This is the active open resubmission of the Libera.Chat guidance change, not a duplicate of a closed PR.

@teknium1 teknium1 added the sweeper:blast-contained Sweeper blast radius: contained — one narrow path / opt-in / few users label Jul 19, 2026
@xxiaoxiong

Copy link
Copy Markdown
Author

Closing stale PR — superseded by upstream work / no longer relevant.

@xxiaoxiong xxiaoxiong closed this Aug 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cli CLI entry point, hermes_cli/, setup wizard comp/plugins Plugin system and bundled plugins P3 Low — cosmetic, nice to have sweeper:blast-contained Sweeper blast radius: contained — one narrow path / opt-in / few users type/docs Documentation improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Recommended IRC configuration uses a network that bans agentic connections

3 participants