在 Issue 中与本地 Agent 协作
GitHub Issue、Linear Issue 可以成为本地 Codex 的对话入口。首次邀请建立任务绑定,以后的留言继续同一个任务;原 Issue 会显示已接收、已开始和完成状态。无需另建服务端或重新填写平台凭据,优先复用本机 gh 或 linear CLI 登录。
连接一次
需要 Node.js 22.13+、本地 Codex,以及已登录且有目标项目读写权限的 GitHub CLI 或 schpet Linear CLI。NextClaw 用户运行:
nextclaw collaboration connect github --adapter github --repository OWNER/REPO --workspace /absolute/project
nextclaw collaboration connect linear --adapter linear --team TEAM --workspace /absolute/project
nextclaw collaboration check
nextclaw collaboration start只接一种平台时只执行对应的 connect。独立使用可以安装 npm install -g @nextclaw/collaboration,把上述 nextclaw collaboration 换成 nextclaw-collaboration。平台 CLI 不在 PATH 时用 --executable /absolute/cli 指定;工作目录是 Agent 获准工作的项目目录。
默认仅接受当前登录账号的输入。连接时用 --allow account1,account2 授权其他参与者;GitHub 填 login,Linear 填用户 UUID。平台账号变化会停止消费并显示错误,不会悄悄更换身份。
优先验收这三条
- 新增并唤醒:在已连接项目中新建 Issue,写“请记住暗号 BLUE-47,只回复已记住”,加上
agent:mozhao标签(首次需在平台创建标签)。电脑在线、宿主运行时,通常一个 30 秒轮询周期内开始接收;原 Issue 出现状态回执和 Codex 任务 ID,执行开始时显示“已开始处理”,随后收到回复。网络和排队会延长等待,用本地status查看原因。 - 继续同一任务:在原 Issue 留言“刚才的暗号是什么?”应得到 BLUE-47,回执中的 Codex 任务 ID 不变。GitHub 和 Linear 均可按此验证。没有必要回复的消息可以安静处理,回执会说明结果。
- 暂停再恢复:单独留言
/agent pause,看到暂停后再留言一个问题;不会立即执行。再单独留言/agent resume,待处理问题在原任务中继续。/agent cancel请求取消当前执行并暂停后续跟进,/agent status查询状态。
标签是首次邀请开关;已参与的 Issue 不需要每条留言再次邀请。旧 Issue 可用 follow CONNECTION SUBJECT 显式邀请(GitHub 填 Issue 编号,Linear 填 UUID)。关闭 Issue 会暂停,重开只解除由关闭造成的暂停,不解除用户主动暂停。
本地运行与排错
GitHub webhook(可选)
需要及时接收时,在仓库 Webhooks 配置一个独立的 Smee 通道:JSON 格式,只订阅 issues 和 issue_comment,设置至少 32 字符随机 secret,并将相同 secret 保存在本地权限为 600 的文件。转发服务能看到事件内容,本地仍会验证 GitHub 签名和仓库;仅配置可信的转发服务。
nextclaw collaboration stop
nextclaw collaboration webhook github --relay-url https://smee.io/YOUR_CHANNEL --secret-file /absolute/github-webhook.secret
nextclaw collaboration start
nextclaw collaboration status这会关闭该 GitHub 连接的定时轮询,宿主通过长连接接收推送,收到有效消息后自动添加 👀,继续原 Codex 任务。status 中 webhooks 显示连接或重连状态。Smee 转发并非离线可靠队列;本机停机期间漏掉的事件需在 GitHub 重投,或停止宿主后执行 webhook github --disable,恢复 30 秒轮询并补采。其它平台连接不受此配置影响。
显示标识由接入方配置,框架默认不附加名字或内部 Agent ID。停止宿主后运行 nextclaw collaboration presentation CONNECTION --prefix '🤖[墨爪]',再启动即可;省略 prefix 表示只显示正文。--strip-prefix LABEL... 可清除接入方自身规则产生的前导标识,不修改正文内部引用。更换显示标识不改变签名身份或任务绑定。
GitHub 原 Issue 或新评论出现 👀 表示消息已持久接收,不代表任务已经开始或完成;即使暂停或最终静默,也可确认消息到达。状态评论显示具体 Agent 和执行进度。同账号多个 Agent 共用平台 reaction,身份仍以签名状态为准。reaction 失败会记录在本地事件中,既有状态回执继续工作;其它平台目前使用状态回执。问候、邀请和连通性测试会简短回应,只有无关通知或明确不需要回复的输入才静默。对外身份前缀由宿主统一添加。
nextclaw collaboration status
nextclaw collaboration show CONTEXT_KEY
nextclaw collaboration restart
nextclaw collaboration stop本机休眠、关机或离线时不能处理;恢复并启动后从本地游标继续。start 是后台进程,不自动安装开机服务;需要自启动时让现有系统服务管理器运行 run。状态保存在 ~/.nextclaw/collaboration,其中含私钥及任务输入;不要在运行时删除。启动时压缩 30 天前已处理的正文,保留绑定和小型去重记录。
执行接受状态未知时先 reconcile CONTEXT_KEY 查询;不会盲目重做。发送结果未知时检查原平台,再按 resolve-output --help 恢复。retry-run --confirm-safe 是确认历史副作用后才使用的显式重试。旧官方讨论监听停止后可用 migrate-discussion --workspace /absolute/project 导入原游标和 Codex 绑定。
官方讨论连接至少按 30 秒轮询;从旧监听迁移的更短间隔会在宿主启动时自动归一并保存。status 的 intervalMs 显示实际间隔。来源或回写暂时失败时,outbox 会持久记录 attempts、nextAttemptAt 和错误并指数退避;用 show CONTEXT_KEY 查看,不要通过频繁重启绕过退避。
同账号的多个 Agent 与新平台
Agent 使用独立签名身份,与平台账号分开。通过 trust CONNECTION PUBLIC_IDENTITY_FILE ACCOUNT 信任对方公钥,同账号 Agent 也能对话;自己的回写、状态和未验证身份不会触发。只有额外授予 --controls 的 Agent 能执行控制指令。默认限制四跳、每主题每小时十二次执行、全局两项并发,触限暂停。
第三方平台实现公开 SourceAdapter,安装模块、连接现有认证后即可使用同一条链路;普通命令也可作为 Consumer。无需新增平台管理系统。完整合同和非 Issue 示例见 SDK 协议说明。可选协议事件入口接收经过认证和标准化的事件,默认轮询无需 webhook 服务。