meeting-facilitate
用 meeting_* 工具跑一场多 Agent 会议:创建 → 亲自 spawn 参与者 → 推进轮次 → 签到 → conclude 并把决策上墙。仅当已决定以「开会」形式产出一个需上墙的决策时使用;按 Council…
CC 与 Codex(或两个各自独立运行的 CC 会话)之间用 OS 信道留言、查未读、被新消息唤醒。触发:要跨 harness 把结论交给对端、给对端留言或清未读、用户问"能不能让 Claude 和 Codex 互相沟通"。不适用于派子 agent 或 workflow 内部协作——那是 Agent 与 SendMessage,信道对同会话的子 agent 没有意义。
$ npx -y skills add CronusL-1141/AI-company --skill os-channel --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/os-channelContext preview
The summary Claude sees to decide when to auto-load this skill.
CC 与 Codex(或两个各自独立运行的 CC 会话)之间用 OS 信道留言、查未读、被新消息唤醒。触发:要跨 harness 把结论交给对端、给对端留言或清未读、用户问"能不能让 Claude 和 Codex 互相沟通"。不适用于派子 agent 或 workflow 内部协作——那是 Agent 与 SendMessage,信道对同会话的子 agent 没有意义。
name: os-channel description: CC 与 Codex(或两个各自独立运行的 CC 会话)之间用 OS 信道留言、查未读、被新消息唤醒。触发:要跨 harness 把结论交给对端、给对端留言或清未读、用户问"能不能让 Claude 和 Codex 互相沟通"。不适用于派子 agent 或 workflow 内部协作——那是 Agent 与 SendMessage,信道对同会话的子 agent 没有意义。
两个 AI 会话各自独立、互不可见。这个信道让它们能留言、能知道有人叫自己、甚至能被 新消息叫醒。
| | CC | Codex | |---|---|---| | 发信 / 主动读信 / 标记已读 | ✅ 实测 | ✅ 实测 | | **开口时自动提示未读** | ✅ 实测 | ✅ 实测(2026-09-09,CLI 与桌面端各一次):提示在任何工具调用之前进入模型上下文 | | **没人开口时也能收到消息** | ✅ 实测:**事件驱动**,武装 watcher 后约 8 秒 | ✅ 实测:**显式等待**,会话调 `channel_wait` 挂起,来信即返回;没在等的空闲会话不会被叫醒 | | 会话已退出后被叫醒 | ❌ | ❌ |
两侧第三行的机制**根本不同,不要混为一谈**:
调起模型。延迟取决于轮询间隔(默认 8 秒)。
补读结果。响应里的 `delivery_source` 说明走的是哪条路:`replay`(一开始就有信)、 `event`(等到推送后补读)、`timeout_read`(到期补读,可能有信也可能为空)。没有调 `channel_wait` 的空闲会话什么都收不到,这一点与 CC 的 watcher 不对等。
(Codex 侧 hook 要让模型看见输出必须走 `hookSpecificOutput.additionalContext`,纯文本 stdout 不注入——这条属 Codex hook 开发面,见 `plugin/harness/codex/`。)
**失效模式也不同类,排障时先分清是哪一种**:
反应,容易发现。
于会被执行;没调就等于没在收。另有到期返回空页的正常情况(`status=timeout`),别当 成故障。
所以「对方没回」不能直接推成「对方没收到」,两种形态要用不同办法确认。
两条纪律:
时不要含糊成"实时通信"。
不同:描述 Codex 时说"开口时会被提示、可以显式挂起等信",不要说"消息会把它叫醒"。
于它有没有在等。给用户解释时别用这些数去承诺一个确定的延迟,也别说"实时互通"。
的,按会话记已读水位会让每开一个新会话就把全部历史消息重算成未读。
广播,同项目的其他会话都会读到。频道名只过格式校验,不要求 team 真实存在。
channel_send(
channel="team:aiteam-os-bridge",
message="...",
sender="leader-cc",
mentions=["leader-codex"], # 不写 mentions 对方就不会被提示
project_id="<项目 id>", # 你自己解析不到项目时必须显式传,见下
)哪运行无关。现行纪律下 worktree 一律建在仓库内 `.worktrees/`,属子目录,能正常解析; 只有 cwd 落在所有已注册项目路径之外(例如 worktree 被建到了仓库同级目录)才解析不到。 拿不准就先 `context_resolve`。
这是刻意的取舍(拒收会打死所有不用未读功能的历史调用方),但代价是漏传 project_id 这件事不会报错,只会让消息静悄悄地谁也不通知。
channel_read(channel="team:aiteam-os-bridge") # 纯读,不清未读
channel_read_ack( # 清零
channel="team:aiteam-os-bridge",
reader="leader-cc",
project_id="<项目 id>", # 同上:你解析不到项目时必须传
last_read_at="<你实际读到的最后一条的 created_at>",
)`last_read_at` 填**你本次实际读到的最后一条的 `created_at`**(工具描述与每轮注入的未读 提示行里都已给出这个口径和拼好的 ack 命令)。
水位按 `(reader, channel, project_id)` 记,而**同一端的所有会话共用同一个 reader**。所以 你一 ack,同一 harness 的其他会话的徽章**一起消失**——那条消息对它们从此隐形,除非有人 主动 `channel_read` 去翻。
这是刻意的取舍:按会话记水位会让每开一个新会话就把全部历史消息重算成未读,那更糟。 代价就落在纪律上:
任务),**读了就好,不要 ack**,把它留给该处理的那个会话
默认情况下,对方发的消息要等**下次有人跟你说话**时你才会看到。要让它主动叫醒你:
bash scripts/os-watch.sh <session_id> <team_id> <reader> # 必须以宿主的后台任务方式起(run_in_background)
watcher 每 8 秒问一次 `GET /api/wake/actionable`,发现有人点名你就退出,而后台任务 退出会让 harness 重新调起你。实测:对端发消息后约 8 秒内自动醒来,用户零输入。
约束:
兜底(`OS_WATCH_MAX=43200`,2026-09-08 由 1h 上调)。它不是常驻服务;触发一次即退出, 醒来后要重新武装
孤儿退出(日志 `WATCHER_ORPHANED`),看起来像"又被杀了"
进展 memo 都会叫醒你
channel_unread(reader="leader-cc") # 纯读,不会清掉未读
Multi-agent team operating system for Claude Code. 108 MCP tools, 40+ agent templates, 10 lifecycle hooks, 7 pipeline workflows. Persistent teams, structured meetings, task wall, real-time React dashboard. No LangChain/AutoGen — pure CC native integration.
Repo: CronusL-1141/AI-company
用 meeting_* 工具跑一场多 Agent 会议:创建 → 亲自 spawn 参与者 → 推进轮次 → 签到 → conclude 并把决策上墙。仅当已决定以「开会」形式产出一个需上墙的决策时使用;按 Council…
你被派来参加 AI Team OS 会议(派你的 prompt 里带 meeting_id),且要在 Round 2 及之后发言时用:怎么拿到自己的 agent_id、怎么引用前人发言、round_number 怎么填。Round 1 的材料、发言规则与调用样例已经写在派你的 prompt 里,不必读本技能。
发布 AI Team OS 新版本的完整清单——预检、版本七处锁步、中英双语 CHANGELOG、双份 dist 构建、私有术语扫描、commit/tag、双仓推送、建 GitHub Release 条目并核对 latest 徽章、事后核对。当准备发版、补建漏掉的 Release 条目、或核对已发版本的线上状态时使用。
AI Team OS 里用 CC 内置 Workflow 的两件事:产出回写 OS 的标准模板(§1-2、§4),以及审查分级与派工档位纪律(§3/§3.1)。准备调用 Workflow 编排子 agent 时,或要判定一件事该按 L0/L1/L2 哪一档审查(含「这活要不要开 workflow」)时使用。