fix(irc): stop recommending Libera.Chat — public networks ban agents - #67146
Closed
xxiaoxiong wants to merge 1 commit into
Closed
fix(irc): stop recommending Libera.Chat — public networks ban agents#67146xxiaoxiong wants to merge 1 commit into
xxiaoxiong wants to merge 1 commit into
Conversation
…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
reviewed
Jul 19, 2026
teknium1
left a comment
Contributor
There was a problem hiding this comment.
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:5broadens 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). |
Contributor
There was a problem hiding this comment.
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.
Collaborator
1 task
Author
|
Closing stale PR — superseded by upstream work / no longer relevant. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
hermes gateway setupwas 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 hardcodedirc.libera.chatin 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 aprint_warningthat names the policy and the kline risk, recommends self-hosted ircds (Ergo/InspIRCd/ZNC), and re-prompts withirc.example.invalidas the placeholder.hermes_cli/config.pyenv-var catalogue +plugins/platforms/irc/plugin.yamlmanifest:irc.libera.chat→irc.example.invalid.website/docs/user-guide/messaging/irc.md,website/docs/reference/environment-variables.md): visibleTests
Existing tests in
test_setup_irc/test_irc_adapter/test_platform_registryusedirc.libera.chatas an arbitrary server string (not as a default being asserted). Replaced with the neutralirc.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-introducingirc.libera.chatas the default server prompt; ensures the new private-ircd placeholder survives.##PR submission checklist