hmo
5d35d97f0a
merge: resolve conflict in xmpp_agent_core.py (keep unified version)
2026-06-21 16:17:21 +08:00
hmo
babbc46801
refactor(xxm): consolidate 4 bot implementations into unified xmpp_agent_core.py
...
- Merge bot_base.py, gateway/scripts/xmpp_bot.py, bots/*, xmpp_bot_rest.py
into single xmpp_agent_core.py with --agent flag (xxm|mohe|zhiwei|xiaoguo)
- Add xxm_bot.py wrapper (encoding=utf-8 for Windows exec)
- Fix slixmpp connect() API: use host=/port= keyword args (was tuple)
- Clean up orphans: bots/, scripts/, hermes_state.py, xmpp_bot.py, xmpp_bot_rest.py
- Add docs/CLEANUP_PLAN.md documenting the migration
- Update README.md project structure
- Also: fix WeChat agent path resolution (relative paths)
2026-06-21 16:13:57 +08:00
mohe
90ed30dd36
kanban API: comment endpoint + usage docs, notification includes curl example
2026-06-21 11:29:17 +08:00
mohe
aa7b67fc2b
readonly: discard LLM response, never send; default=readonly for non-coordinator
2026-06-21 10:40:47 +08:00
mohe
f1590e08d1
revert bare-name match, keep only @ mention
2026-06-20 20:21:21 +08:00
mohe
9a45f155a8
match nick without @ (XMPP strips @ symbol)
2026-06-20 20:18:47 +08:00
mohe
be8699ae4c
lead= switch, @mention auto-grant
2026-06-20 20:16:09 +08:00
hmo
b9df510f31
feat(xxm): implement coordinator protocol (aligned with mohe/zhiwei/xiaoguo)
...
- GRANT: [GRANT:xxm] one-time speak permission, overrides REVOKE
- REVOKE: [REVOKE:xxm] 5-min speak ban, read-only mode
- Coordinator switch: hmo can change with 'coordinator=xxm'
- Shut-up: hmo says keywords → 5-min silence (was 30s)
- Read-only mode: revoked agents see messages but output __SILENT__
- Removed old _is_silenced/_SILENCE_UNTIL, unified under _REVOKED_UNTIL
2026-06-20 20:09:01 +08:00
mohe
efc4cd1a9e
coordinator prompt: first job is to moderate, not to speak
2026-06-20 19:57:03 +08:00
mohe
ad3e0f004b
coordinator: default all can speak, REVOKE=read-only 5min, GRANT overrides
2026-06-20 19:54:37 +08:00
mohe
aabec04d8a
non-speaking bots still see messages for context (read-only LLM injection)
2026-06-20 19:07:50 +08:00
mohe
90429116c7
coordinator: use XMPP in-band signaling instead of shared DB (cross-machine compatible)
2026-06-20 19:02:04 +08:00
mohe
457ad27044
implement coordinator pattern: GRANT-based turn control, code-level speak permission
2026-06-20 18:53:44 +08:00
mohe
947bb1e6d0
intercept __SILENT__/__REPLY__ misuse in LLM response body
2026-06-20 01:48:37 +08:00
mohe
5051b0bfd7
add silent phrase interception: block LLM announcing silence instead of being silent
2026-06-20 01:41:42 +08:00
hmo
885439f3c4
refactor(xxm): use [YOU] prefix for TUI context (align with Hermes)
2026-06-20 01:31:04 +08:00
hmo
e8fba49cb8
feat(xxm): dynamic TUI session context injection for coregroup
...
- chat_bridge: mark_active_tui_session() + get_active_tui_session()
Tracks active TUI session via temp/.active_tui_session.json,
auto-expires after 1 hour (matching Hermes state_meta pattern)
- chat_bridge: inject TUI context when processing coregroup messages
Bot now sees what hmo was discussing in TUI when replying in group
- session_router: record active session ID on every TUI message
Uses _resolve_session() to get the current bound session ID
2026-06-20 01:27:39 +08:00
mohe
50a0716c4d
add dynamic session switch documentation
2026-06-20 01:21:03 +08:00
mohe
2d0f390657
unify xmpp bots: single xmpp_agent_core.py + --agent param wrappers
2026-06-20 01:05:12 +08:00
hmo
ee86052219
fix(xxm): adopt improved __SILENT__ observer prompt (align with mohe/zhiwei)
...
- Changed from vague '别人对话→ __SILENT__' to explicit 3-condition rule
- LLM response must be ONLY '__SILENT__' (10 chars), nothing else
- Prevents LLM from saying '好的,我输出 __SILENT__' which leaked as chat message
2026-06-20 00:19:38 +08:00
hmo
2206dbb3a3
fix: bot默认走deepseek直连(跳过火山doubao)
2026-06-15 03:18:23 +08:00
hmo
c639281988
feat: bot接入火山方舟Coding Plan(doubao-seed-code)
2026-06-15 03:14:00 +08:00
hmo
ffbe278fc7
fix: 提示词精简——80行砍到10行核心规则
2026-06-15 02:45:53 +08:00
hmo
b4a3c77021
feat: 上下文感知框架——判断是否在对话中再决定搜不搜
2026-06-15 02:35:51 +08:00
hmo
19f8381e86
fix: 动手之前先搜session——避免重复劳动
2026-06-15 02:33:40 +08:00
hmo
8c801b60aa
fix: 自消息错误回环过滤
2026-06-15 02:29:43 +08:00
hmo
5103aff586
fix: @mention必须回放最后 + 简洁版规则
2026-06-15 02:17:01 +08:00
hmo
ca37d24ba2
fix: @mention必须回复不准__SILENT__
2026-06-15 02:15:33 +08:00
hmo
248b55687a
fix: 多源信息合成原则 — 通用推理规则
2026-06-14 13:13:20 +08:00
hmo
9a618e483b
fix: 证据合成规则 — 计划vs现状不矛盾
2026-06-14 13:11:42 +08:00
hmo
f7e8ec12e8
fix: 去除硬编码IP + 证据冲突时信任session优先
2026-06-14 13:05:20 +08:00
hmo
d1a0348c77
fix: 自消息放行 + session搜索策略细化
2026-06-14 12:18:36 +08:00
hmo
28523beccf
feat: search_sessions 跨session搜索工具 + 提示词强化
2026-06-14 12:02:39 +08:00
mohe
94c511479d
docs: add '通道不限制行动力' principle to session bridge protocol
2026-06-14 03:08:09 +08:00
hmo
8c0ab4d63a
fix: 群聊沉默协议 — 禁止确认循环
2026-06-14 02:52:37 +08:00
hmo
e7719d9d5c
feat: bot言出必行 — 提示词强化 + git_pull/read/write 命令
...
1. chat_bridge.py: 系统提示增加「言出必行」规则
- 说去做某事必须同时用 run_command 真正执行
- 只说不做被视为空话
2. session_router.py: 新增命令处理器
- git_pull 拉代码 / git_push 推代码
- read_file 读文件 / write_file 写文件
- run 执行shell命令
- 命令指南自动注入 LLM prompt
2026-06-14 02:34:48 +08:00
mohe
ae16cd4e0f
simplify: remove __REPLY__ marker, only __SILENT__ needed
...
Default LLM behavior is to reply - no prefix needed.
Only the exceptional case (silence) needs a marker.
Updated xmpp_bot.py, MEMORY.md, and protocol doc.
2026-06-14 02:00:33 +08:00
mohe
34e4477642
docs: clarify markers must be bare text, no backticks
...
Also updated xmpp_bot.py regex to handle backtick-wrapped markers defensively.
Updated MEMORY.md prompt to require bare markers.
2026-06-14 01:58:00 +08:00
mohe
8c2355d95f
docs: refine session bridge search priority - own session first, then others
2026-06-14 01:54:42 +08:00
mohe
ec335aff20
docs: add cross-session bridge protocol
...
Define how agents should handle messages referencing context
from other sessions (CLI/XMPP/WeChat channel switching).
- SOUL.md: new section 五 on session bridging
- agentmemory: saved as shared architecture rule
- SESSION-BRIDGE-PROTOCOL.md: full protocol doc
2026-06-14 01:30:15 +08:00
mohe
90b729c292
docs: add observer mode protocol (__SILENT__/__REPLY__)
...
Define code+LLM collaboration protocol for group chat participation:
- Code layer: no @mention gate, forward all msgs to LLM
- LLM layer: output __SILENT__ (discard) or __REPLY__ (send)
- Documented in MEMORY.md (LLM prompt) and AgentsMeeting (shared ref)
- Update xmpp_bot.py to remove @mention gate
2026-06-14 00:42:05 +08:00
mohe
3a14d776c0
zhiwei bot: 添加MUC群聊支持(配置化房间列表 + 群消息收发 + 稳定重连)
...
改动内容:
- 从配置文件 zhiwei_rooms.txt 读取待加入群聊列表
- 注册 xep_0045 插件,on_bind 时自动加入所有配置房间
- on_msg 处理 groupchat 类型,只响应 hmo/xxm
- 群聊回复使用 xmpp.send_message(mtype='groupchat')
- 改为手动重连(auto_reconnect=False),指数退避
- 添加 xep_0199 keepalive(60s 间隔)防断线
- 私聊添加秒回确认 '收到,正在思考...'
- 超时从 600s 改为 120s
- __main__ 添加 PID 文件防多进程
2026-06-14 00:42:05 +08:00
hmo
0b99d6b07e
fix: 文档补充核心操作手册 — XMPP 发送的正确方式 (UTF-8 编码)
2026-06-13 22:54:08 +08:00
hmo
399c77ccbc
fix: health_check now queries /health endpoint before log analysis
...
If xmpp_connected=false, force restart immediately instead of
waiting 10 minutes for message timeout. This catches the most
common failure mode: process alive but XMPP dead.
2026-06-13 02:22:36 +08:00
hmo
2e708359f1
docs: add repo and dashboard links to README
2026-06-12 21:55:20 +08:00
hmo
1b2b935832
Initial: multi-agent XMPP communication system with dashboard
...
- Platform-based architecture (Windows/Linux/Mac)
- Agent instance registry (agents.yaml)
- Management dashboard with cross-platform monitoring
- xmpp_bot with HTTP bridge + health endpoints
- wechat_agent with WeChat-Hermes bridging
- Platform services: ProcessGuardian, HealthProbe, APIRouter, ChannelBridge
- Deployment: systemd (Linux) + PowerShell (Windows)
- Monitoring: SSH+ejabberdctl for cross-platform presence
2026-06-12 21:51:36 +08:00