使用 ii(极简基于文件的 IRC 客户端)持久化 IRC 在线状态,支持事件驱动提及检测。适用于在 IRC 部署 AI 代理、监控频道、发送消息或通过 ii集成 OpenClaw。涵盖 ii 配置、提及监视器、systemd 服务以及消息收发。
ii- IRC: Evolution- Driven IRC for AI Agents. ii 将所有频道活动写入普通文件. 是一个用于引用和触发 OpenC是一项面向实际任务的技能,主要用于Respons通过写入发送 t。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
ii 将所有频道活动写入纯文本文件。一个监听脚本持续监控消息中是否提及 Bot,并据此触发 OpenClaw 系统事件;Bot 的响应则通过向 FIFO 文件写入完成。
~/irc/ ├── irc.sh # 管理脚本(启动/停止/状态查询/发送消息) ├── watch-daemon.sh # 提及监听器 → 触发 openclaw 系统事件 └──/ └── / ├── in # FIFO 文件 — 向此写入可发送消息 └── out # 所有频道消息的仅追加日志
ii 已收录于多数包管理器中。Arch Linux 用户执行:pacman -S ii;Debian/Ubuntu 用户执行:apt install ii;也可从 suckless.org 源码构建。
运行随附的配置脚本(将生成 ~/irc/irc.sh 和 ~/irc/watch-daemon.sh):
bash scripts/setup.sh --server irc.example.org --port 6667 --nick MyBot --channel "#mychannel"
或手动创建 — 参见 scripts/irc.sh.template 和 scripts/watch-daemon.sh.template。
实现开机自动启动:
mkdir -p ~/.config/systemd/user # IRC 连接服务 cat > ~/.config/systemd/user/irc-bot.service << 'EOF' [Unit] Description=IRC connection (ii) After=network-online.target Wants=network-online.target [Service] Type=simple ExecStart=/usr/bin/ii -s SERVER -p PORT -n NICK -i %h/irc ExecStartPost=/bin/bash -c 'sleep 3 && echo "/j CHANNEL" > %h/irc/SERVER/in' Restart=always RestartSec=10 [Install] WantedBy=default.target EOF # 提及监听服务 cat > ~/.config/systemd/user/irc-watcher.service << 'EOF' [Unit] Description=IRC mention watcher After=irc-bot.service Wants=irc-bot.service [Service] Type=simple ExecStart=%h/irc/watch-daemon.sh Restart=always RestartSec=5 [Install] WantedBy=default.target EOF # 替换服务文件中的 SERVER、PORT、NICK、CHANNEL,然后执行: systemctl --user daemon-reload systemctl --user enable --now irc-bot.service irc-watcher.service
# 通过管理脚本发送 ~/irc/irc.sh send "Hello, world!" # 或直接写入 FIFO echo "Hello, world!" > ~/irc// /in
重要提示:ii 在字节边界处截断长消息,可能导致单词或 UTF-8 字符被中途截断。请将单条消息控制在约 400 字符以内;如需发送更长内容,请拆分为多条消息,并在各条之间加入短暂延迟。
# 获取最近 N 条消息(对 token 使用高效) tail -n 20 ~/irc// /out # 快速查看状态(最近 5 条消息) ~/irc/irc.sh status
切勿读取整个 out 文件 —— 其大小会无限增长。务必始终配合限制参数使用 tail。
watch-daemon.sh 对频道的 out 文件运行 tail -Fnick)openclaw system event --text "IRC mention: " --mode now in FIFO 发送响应该机制为事件驱动型 —— 无轮询、响应即时、资源开销极低。
ii 支持在同一服务器上加入多个频道。每增加一个频道,请执行:
echo "/j #other-channel" > ~/irc//in
若需监听多个频道,可选择:为每个频道单独运行一个监听器实例,或修改 watch-daemon.sh 以同时监控多个 out 文件。
ii 正在运行(pgrep -f "ii -s"),并核对服务器地址与端口in FIFO 已存在;检查 ExecStartPost 中的延时是否足够(必要时增大 sleep 时间)pgrep -f watch-daemon),并核实昵称拼写完全一致Restart=always 自动处理;ii 在断连时退出,systemd 将立即重启它相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章