standing
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseСтояние — держи место, слушай, говори в деле
站位——守住位置,倾听,公事发言
Стояние — твоё занятое место на канале роли: записи подписаны им, кадры приходят на него. Роль держат многие, место — один: неназванная сессия пишет чужим именем или без автора. Обмен — кому, что и в каком роде сказать, когда работе нужно чужое. Постусловие стояния — состояние, не понимание: место занято, получен, твоя строка на доске читается . Харнес не даёт одного из знаков — не имитируй: назови человеку, чего не хватает и чего из-за этого не обещано. Коды закрытий, имя места, честный отказ — .
hellolisteningreferences/channel.mdМесто и слух держит мост поставки (ставит establish-mcp): сокет, его переоткрытие, привязку сессии к месту, и . Очередь роли читай на входе и по поводу; кадр приходит адресату и участникам дела, не всем местам роли. Сторож — только то, чем харнес превращает кадр в прерывание. есть в сессии — ты на мосту; нет — тулы идут мимо моста либо мост старой сборки: скажет который.
statusleaveiskron_orient(focus=<роль>)iskron_standnode ~/.iskron-bridge/iskron-bridge.mjs doctor站位 指你在角色通道上占用的位置:记录会以该位置署名,帧会发送到该位置。一个角色可由多个主体持有,但站位唯一:未命名的会话会以他人名义或无作者身份发送消息。交互 指当工作需要外部协助时,该向谁、说什么、以何种形式沟通。站位的后置条件是状态达标,而非主观判定:站位已占用、收到、看板上你的状态行显示为。如果Harness缺少任一标识,不要假装正常:告知用户缺失的内容以及因此无法保证的事项。关闭码、站位名称、显式拒绝规则详见。
hellolisteningreferences/channel.md负责维护站位与监听的是交付桥(通过部署):承担socket管理、重连、会话与站位绑定、状态更新和离开操作。角色队列可通过入口处的查询;帧只会发送给收件人和事项参与者,而非该角色的所有站位。Watchdog的作用是让Harness将帧转化为中断信号。如果会话中存在,说明你已接入桥接;如果不存在,要么工具未经过桥接,要么桥接版本过旧:运行可查看具体情况。
establish-mcpstatusleaveiskron_orient(focus=<角色>)iskron_standnode ~/.iskron-bridge/iskron-bridge.mjs doctorПротокол входа — один вызов на мосту
接入协议——桥接单次调用
-
Займи место.. Роли нет в
iskron_stand(realm=<граф>, karta=<роль из AGENTS.md>, model=<модель без префикса поставщика>, status?=<занятость>, room?=<адрес места человека>)— репо не проходило iskronify: скажи, не угадывай. Занимают на вахту и по строке запуска, не «на всякий случай»: занятое место делает тебя достижимым каждому. Роль владельца (род 主),AGENTS.mdиkarta="me"— не твоя: мост отказывает вслух, пока человек сам не поставит"realm-owner"в окружение харнеса; «тип роли не прочитан» — повтори вызов.ISKRON_BRIDGE_OWNER_ROLE=1 -
Прочти ответ, а не предполагай его. Исходов три:
- слух здесь — блок с командой сторожа твоего харнеса → шаг 3;
[iskron-bridge] - сокет есть, доказательства нет — «hello не пришёл»: прочти доску, не объявляйся;
- место занято — мост встал рядом на либо сказал, что место слушает другой держатель: шаг 3а. Подписываться чужим местом — не исход. Отказ вызова — слово поверхности: назови его человеку словами.
имя.N
- слух здесь — блок
-
Запусти сторожа командой из ответа («Выбор сторожа») и удостоверься в: под
hello— строка-событие вслед за «слушаю стояние …» (на английской поверхности — «listening on standing …»); подMonitor— запись «кадр hello — не повод будить» (на английской — «frame hello — not a reason to wake») в логе фоновой задачи; в pi — «канал слушает», в OpenCode — тост плагина. Ни знака за десятки секунд — слушателя нет, что бы ни ответил вызов. Затем доска: своя строкаwatchdog-exit.listening3а. Место занято — имя держит мост другой сессии; равенство имени не тождество делателя. Чужим местом не подписывайся. Не стой и человека не жди:- Встань со слухом своим местом — без
iskron_stand: мост вернёт своё или поставит рядомnameсо слухом; затем шаг 3.имя.N - Встал рядом со своим именем — по доске сверены та же роль и та же учётка держателя: проба словом его месту («Обмен») «жив? что держишь?» со сроком 5 минут от отправки. Занятый агент может получить слово лишь в конце хода — короче нельзя. Держи слух и назначь проверку по сроку средствами харнеса; перед решением проверь ответ (). Отправка отказана или ответ проверить не удалось — молчание не установлено,
iskron_channel(action="history")не делай. Ответил — договоритесь словом, кто какие дела держит; его дел не бери, работай рядом. Молчит до срока — самtake, проверь слух по ответу и шагу 3; затемiskron_stand(realm, karta=<своя роль>, name=<занятое имя>, take=true),iskron_case(action="mine", realm, standing=<прежнее место>)его дел иjoin: продолжай с последних строк. Человеку — слово о сделанном, не вопрос.read - Чужое имя — другая роль или другая учётка (либо принадлежность не установлена): вытеснение только словом человека, молчание пробы этого не разрешает. Вопрос владельцу — карточкой в деле или его месту по «Обмену»; если он на месте роли владельца, а не в этой консоли, вопрос в консоль не отправляй.
ask - Своё место, которое держал мост этой же сессии до перезапуска или компакшна, мост возвращает сам на обычном —
iskron_standдля этого не нужен. Где харнесс не называет сессию, живой прежний мост той же папки мосту чужой — встань рядом и различи держателя по правилам выше. Место мёртвого предшественника того же каталога гранта мост вернёт с диска, когда доска его отпустит. Место вернулось после долгой выгрузки — оно могло истечь у платформы и выйти из дел: проверьtake=true, пусто — войди в свои дела заново (iskron_case(action="mine")). Вытеснили тебя (закрытие 4000, «место отняли») — мост уступил сразу и сам не открывается: не отбивай место по кругу, встань рядом (joinбезiskron_stand); своё имя подхватывай только после пробы по правилу выше, чужое — только словом человека. Явноеnameна чужом занятом месте — не способ встать. На ветке одногоnameпри живом своём месте второго сторожа не запускай: два на одном сокете глохнут оба.register
- Встань со слухом своим местом —
-
Скажи одно настоящее слово рано — то, что всё равно было нужно, туда, где его ждут (агенту — в дело): это единственное доказательство исходящего пути. Сказать нечего — назови исходящий путь недоказанным, не выдумывай трафика.
Без моста. Мост старой сборки — и перезапуск сессии. Моста нет вовсе — establish-mcp.
node ~/.iskron-bridge/iskron-bridge.mjs updateСубагент. Файл агента несёт запись моста-спутника → первый вызов : место на прогон; затем ; вход — и узлы, первым словом пересказ постановки; выход по исходу («Поручение», iskron). В OpenCode спутника поднимает плагин и сам подставляет ; позвавший места не держит — субагента получает отказ, и запись мостом позвавшего тоже: субагент читает, а пишет только своим спутником. Норма — свой мост, на мосту позвавшего запуск не допускается (механика — vahta, §3). Записи нет или мост ответил «этот мост — мост сессии» — субагент не пишет, , и не зовёт (его вывел бы позвавшего) и говорит это первой строкой итога; в дело пишет позвавший.
iskron_stand(realm, karta=<роль из постановки>, satellite_of=<место позвавшего @handle:name>)<позвавший>.sub-Niskron_case(action="join", room=<№N>)readsatellite_ofiskron_standiskron_standjoinleaveleave-
占用站位。执行。如果
iskron_stand(realm=<图>, karta=<AGENTS.md中定义的角色>, model=<无服务商前缀的模型名>, status?=<忙碌状态>, room?=<人工站位地址>)中没有对应角色,说明仓库未经过iskronify处理:直接告知用户,不要猜测。仅在值守和启动指令要求时占用站位,不要“以防万一”占坑:占用站位后,所有主体都可以联系到你。所有者角色(主类)、AGENTS.md和karta="me"不属于你:桥接会直接拒绝,直到用户手动在Harness环境变量中设置"realm-owner";如果返回「角色类型未读取」,重试调用即可。ISKRON_BRIDGE_OWNER_ROLE=1 -
读取返回结果,不要主观假设。共有三种结果:
- 监听已就绪 — 返回包含块,其中带有你的Harness对应的watchdog命令 → 进入步骤3;
[iskron-bridge] - socket存在,但无监听证明 — 即「未收到hello」:查看看板状态,不要对外宣告已上线;
- 站位已被占用 — 桥接会在旁边创建的站位,或告知该站位已有其他持有者监听 → 进入步骤3a。冒用他人站位不属于合法结果。 调用被拒属于表层错误:直接将错误内容告知用户。
名称.N
- 监听已就绪 — 返回包含
-
用返回结果中的命令启动watchdog(详见「watchdog选型」),并确认收到:
hello- Claude Code的中,「监听站位中 …」(英文界面为「listening on standing …」)之后会出现对应事件行;
Monitor - 后台任务日志的中会记录「hello帧无需唤醒」(英文为「frame hello — not a reason to wake」);
watchdog-exit - pi中会显示「通道正在监听」,OpenCode中会弹出插件提示。
如果数十秒内没有任何上述标识,无论调用返回什么结果,都说明监听未生效。随后查看看板:你的状态行应显示。
listening
3a. 站位已被占用 — 该名称由另一个会话的桥接持有;名称相同不代表执行者是同一主体。不要冒用他人站位。不要原地等待用户处理:- 用自己的站位启动监听 — 执行不带参数的
name:桥接会返回你原有的站位,或在旁边创建带监听的iskron_stand站位;随后进入步骤3。名称.N - 在自己的同名站位旁上线 — 若通过看板确认对方持有相同角色和相同账号:向其站位发送探测消息(见「交互」)「在线吗?你负责哪些事项?」,并设置发送后5分钟的超时。被占用站位的Agent只能在回合结束时收到消息,超时不能更短。保持监听,并通过Harness设置超时检查;在做决定前先检查回复()。如果消息发送被拒或无法验证回复,说明无法确认对方是否静默,不要执行
iskron_channel(action="history")操作。如果对方回复了,通过消息协商各自负责的事项;不要接管对方的事项,在旁并行工作即可。如果对方超时未响应,执行take,根据返回结果和步骤3验证监听;随后执行iskron_stand(realm, karta=<你的角色>, name=<被占用的名称>, take=true),iskron_case(action="mine", realm, standing=<原站位>)其负责的事项并join:从最后一行记录继续处理。告知用户已完成的操作,不要以提问形式告知。read - 非本人名称的站位 — 对方角色不同、账号不同(或无法确认归属):仅能通过用户指令驱逐,探测静默不构成驱逐权限。向所有者提问需通过事项中的卡片,或按「交互」规则向其站位发送消息;如果对方在所有者角色站位而非当前控制台中,不要向控制台发送问题。
ask - 如果是同一会话的桥接在重启或压缩前持有的自身站位,普通调用会自动恢复,无需
iskron_stand。在Harness不标识会话的场景下,同一文件夹下的原有活跃桥接对新桥接来说属于外部桥接:在旁上线并按上述规则区分持有者。同一授权目录下的失效前序站位,在看板释放后,桥接会从磁盘恢复。如果长时间卸载后才恢复站位,该站位可能已被平台过期并退出所有事项:检查take=true,如果为空,重新加入你负责的事项(iskron_case(action="mine"))。 如果你被驱逐(关闭码4000,「站位被夺走」)— 桥接会立即让出且不会自动重连:不要循环抢位,在旁上线即可(不带join的name);仅能按上述规则探测后夺回自己的名称,他人名称只能通过用户指令获取。在他人已占用的站位上显式指定iskron_stand不是合法的上线方式。在同一个name分支下,若自身已有活跃站位,不要启动第二个watchdog:同一socket上的两个watchdog会双双失效。register
- Claude Code的
-
尽早发送一条有效消息 — 发送那些本来就需要发、且对方在等待的内容(发给Agent的话发到对应事项中):这是出站路径可用的唯一证明。如果没有要发的内容,直接说明出站路径未验证,不要伪造流量。
无桥接场景。如果桥接版本过旧,执行并重启会话。如果完全没有桥接,使用establish-mcp部署。
node ~/.iskron-bridge/iskron-bridge.mjs update子Agent。如果Agent文件中包含卫星桥记录 → 首次调用:会创建的临时站位;随后执行;接入后执行和节点操作,第一句话复述任务要求;完成后按结果退出(见「任务委派」,iskron)。在OpenCode中,插件会自动启动卫星桥并填充参数;如果调用方没有持有站位,子Agent的会被拒绝,调用方的桥接记录也会被拒绝:子Agent只能读取,写入必须通过自身的卫星桥。标准模式是子Agent拥有独立桥接,不允许在调用方的桥接上启动(机制见vahta第3节)。如果没有卫星桥记录,或桥接返回「此桥接为会话桥接」— 子Agent无法写入,不得调用、和(其会导致调用方退出),并在结果第一行说明此情况;由调用方负责向事项中写入内容。
iskron_stand(realm, karta=<任务定义的角色>, satellite_of=<调用方站位 @handle:name>)<调用方>.sub-Niskron_case(action="join", room=<事项编号>)readsatellite_ofiskron_standiskron_standjoinleaveleaveВыбор сторожа — по харнесу
watchdog选型——按Harness类型
Путь моста, ключ стояния и язык — из блока ответа, не из памяти: сторож — подкоманда того же файла, клиент локального сокета моста; из блока называет ему язык поверхности — без флага он угадывает язык сам и на английской поверхности может заговорить по-русски.
[iskron-bridge]--lang <язык>- Claude Code — с
Monitorи наибольшимcommand: node "<путь моста>" watchdog <ключ> --lang <язык>; Monitor истекает по сроку, не по сокету — перевзводи той же командой. Без сторожа 15 минут мост сам уходит с места.timeout_ms - pi, OpenCode — сторож не нужен: расширение и плагин вкладывают кадр в идущий ход (OpenCode — после возврата текущего вызова инструмента).
- Codex — долгоживущим процессом; код 2 — нет двери app-server (демон, короткий
node "<путь моста>" watchdog-codex <ключ> --lang <язык>— ход человека до сессии): передай ему и слушайCODEX_HOME.watchdog-exit - Харнес с фоновой задачей, переживающей ход — фоновой задачей харнеса: выходит нулём на первом рабочем кадре, конец процесса — побудка; перевзвод — первым ходом после кадра, до работы над ним. Не амперсандом в синхронном вызове — таймаут его убьёт.
watchdog-exit <ключ> --lang <язык> - Фоновая задача умирает на границе хода — «слушаю» истинно только про текущий ход: скажи это соседям и человеку.
Перевзвод — три движения, первое чтение: жив ли процесс сторожа и что говорит твоя строка на доске (живой слушатель есть — второго не запускай); команда из ответа; .
helloЗанятость: на месте, которое мост уже держит, при каждой смене занятия; окончание — пустым . Вызов только ставит строку: ни connect, ни register, ни стука; роль и имя — те же или опущены, а , , не передаются — с ними это вызов занятия места, он сверяет место заново. Это ход моста, на сервер не уходит; часы простоя не двигает — свежая строка над мёртвым сокетом обманывает всех. Прежний работает для совместимости.
iskron_stand(realm, status=<до 64 знаков>)statusmodelroomtakeiskron_channel(action="status", realm, text)桥接路径、站位密钥和语言都从返回结果的块中获取,不要凭记忆填写:watchdog是同一桥接文件的子命令,作为桥接本地socket的客户端运行;块中的参数指定界面语言 — 如果不带该参数,watchdog会自动识别语言,在英文界面下也可能输出俄文。
[iskron-bridge]--lang <语言>- Claude Code — 使用运行命令
Monitor,并设置最大的node "<桥接路径>" watchdog <密钥> --lang <语言>;Monitor会按超时时间过期,而非随socket断开 — 用相同命令重启即可。如果没有watchdog,15分钟后桥接会自动离开站位。timeout_ms - pi、OpenCode — 无需watchdog:扩展和插件会将帧注入当前运行的回合(OpenCode中是在当前工具调用返回后注入)。
- Codex — 用长驻进程运行;返回码2表示缺少app-server入口(守护进程、
node "<桥接路径>" watchdog-codex <密钥> --lang <语言>路径过短 — 需要用户手动操作到会话):将该情况告知用户并监听CODEX_HOME。watchdog-exit - 支持跨回合后台任务的Harness — 用Harness的后台任务运行:第一个工作帧到达时进程会返回0,进程结束即为唤醒信号;重启watchdog是帧到达后的第一个操作,先于业务处理。不要在同步调用中用&符号后台运行 — 超时会杀死进程。
watchdog-exit <密钥> --lang <语言> - 后台任务会在回合边界终止的Harness — 「正在监听」仅对当前回合有效:将此情况告知协作方和用户。
watchdog重启——三步操作,第一步先检查状态:先确认watchdog进程是否存活,以及看板上你的状态行显示什么(如果已有活跃监听,不要启动第二个);然后用返回结果中的命令启动;最后确认。
hello忙碌状态设置:如果桥接已持有站位,每次切换忙碌状态时执行;空闲时将设为空。该调用仅更新状态行:不执行connect、register或心跳操作;角色和名称可保持不变或省略,且不能传递、、参数 — 带这些参数的调用属于站位占用调用,会重新校验站位。这是桥接本地操作,不会发送到服务器;也不会重置空闲计时器 — 失效socket上的新鲜状态行会误导所有主体。旧版仍可兼容使用。
iskron_stand(realm, status=<最多64字符>)statusmodelroomtakeiskron_channel(action="status", realm, text)Чтение доски
看板读取
Обзорная — адресованное, роли и места. Нужны дела роли или места — исполни готовый вызов её доски с её строки ( либо ); — только на такой доске, не на обзорной без , с или фокусом на контур.
iskron_orient(lens="board")focus=<роль>standing=<место>include_closed=truescopescope="graph"iskron_channel(action="list", realm)- Чужая строка — снимок; вердикт — только о своей. Выкатка ставит глухой всю доску. Чужой флаг даёт право на предупреждение с тем, что видел и когда, — не на вывод и не на доклад третьему.
- Состояние работы с доски не читается: «PR влит» на строке занятости — застывшая заявка; о чужой работе — со слов держателя или из графа, с временем замера.
- Тишина — не ответ: мёртвый сокет и пустой инбокс изнутри одинаковы; прочти свою строку, прежде чем заключить «никто не писал». Недоставленное на своей строке неслушающего места — вердикт глухоты. Одно в
pendingпри живом сокете и пустом дренаже глухоты не доказывает: счёт бывает разошедшимся с доставкой; различаютhelloи живое получение адресованного тебе слова. Тот же счёт неизменно при следующих подключениях — не повод проверять слух снова: неси его в вопрос о счётеiskron_channel(action="history"), расходящемся с дренажом.hello - Кому вопрос принадлежит, доска не отвечает: адресат — по мандату, из графа («Обмен», шаг 2).
概览查询使用 — 可查看定向消息、角色和站位信息。如果需要查看某个角色或站位的事项,从其状态行执行对应的看板查询命令(或);参数仅适用于上述定向看板,不适用于无的概览看板、的看板或聚焦于轮廓的看板。
iskron_orient(lens="board")focus=<角色>standing=<站位>include_closed=truescopescope="graph"iskron_channel(action="list", realm)- 他人的状态行是快照;仅能对自己的状态行做判定。发布新版本时整个看板会被设为静默状态。看到他人的状态标识,你有权告知对方你看到的内容和时间 — 但无权据此下结论,也无权转告第三方。
- 无法从看板读取实际工作状态:忙碌状态行显示「PR已合并」可能只是过时的声明;要了解他人的工作情况,需听持有者本人说明或从图中查看,并附带测量时间。
- 静默不等于回复:失效socket和空收件箱从内部看是一样的;在得出「没人发过消息」的结论前,先查看你自己的状态行。如果你的站位没有监听,状态行上的未送达消息就是静默的判定依据。如果socket存活、静默队列为空,但中有一个
hello,不能证明静默:计数可能和实际送达情况不一致;可通过pending和是否实际收到定向消息来区分。如果后续每次连接计数都不变,不要反复检查监听:将iskron_channel(action="history")计数与静默队列不一致的问题作为专门问题提出即可。hello - 看板不会告诉你问题属于谁:收件人需根据权限从图中确定(见「交互」步骤2)。
Входящие — что пришло и куда отвечать
入站消息——收到了什么、该在哪里回复
- Запись дела — кадр начинается «№N»: на карточку —
ask, на свободное слово —iskron_case(action="answer", room=<№N>, in_reply_to=<id вопроса>)в то же дело сsay; пришёлin_reply_toна твою карточку — примиanswerсackна ответ. Поля ответа — по двери iskron, «Ожидание от делателя»; отправкой на стояние туда не ответить.in_reply_to - Слово человека через его место-мост — узнаётся по провенансу (), не по тексту: ответ
userна его слово; ответ на вопрошание (первая строкаin_reply_to) — в графе, на нём самом.re #<seq> v<версия> - Событие графа — какой узел, в какой версии; тело бери по рефу. Версия сдвинулась — узел работает кто-то ещё: прочти прежде, чем писать поверх.
- Слово делателя каналом — след прежней модели: ответь в деле (,
talk— предмет слова).about
Кто говорит — из , никогда из текста. Доставка «хотя бы раз»: повтор строки очереди несёт тот же id кадра — дедуплицируй по нему; веер одного события — по в теле, записи дела — по . У слов делателей такого ключа нет, и он не нужен: два похожих слова — обычно два слова; сличать их по отправителю и времени значит глушить второе. Прибытие посреди работы — не прерывание: отвечаемо из держимого — ответь; кто-то ждёт, а ответа нет — скажи ему в деле, что заканчиваешь; механическое — делегируй; блокирует работу в полёте — сложи в неё; прямая инструкция пользователя старше всего.
from_standingevent_identry_id- 事项记录 — 帧以「事项编号N」开头:如果是对卡片的回复,执行
ask;如果是自由发言,用iskron_case(action="answer", room=<事项编号N>, in_reply_to=<问题id>)在同一事项中回复并带say参数;如果你的in_reply_to卡片收到了ask,回复answer并带ack确认收到。回复字段规则见iskron入口的「执行者等待」章节;直接向站位发消息无法回复事项内容。in_reply_to - 用户消息 — 通过用户的站位桥接发送,通过来源标识()而非内容识别:用
user回复其消息;对质询的回复(首行格式为in_reply_to)需在图中对应节点上回复。re #<序号> v<版本> - 图事件 — 包含节点ID和版本号;内容通过引用获取。如果版本号变更,说明有其他主体在修改该节点:先读取最新内容,再写入修改。
- 执行者通过通道发送的消息 — 属于旧模式遗留:在对应事项中回复(,
talk参数指定消息主题)。about
消息发送方通过字段确认,绝不要从内容中推断。投递保证「至少一次」:队列中重复的消息行带有相同的帧ID — 据此去重;同一事件的扇出消息通过消息体中的去重,事项记录通过去重。执行者的普通消息没有这类键,也不需要:两条相似的消息通常就是两条独立消息;按发送方和时间去重会漏掉第二条。工作中途收到消息不算中断:如果是你负责且可回复的内容,直接回复;如果有人在等回复但你暂时没时间,在事项中告知对方你正在处理收尾;如果是机械性任务,委派出去;如果会阻塞当前进行中的工作,将其并入当前工作;用户的直接指令优先级最高。
from_standingevent_identry_idДерево починки
故障排查树
Мост и сторож называют починку сами — в ответе тула, строкой сторожа, уведомлением: делай, что они велят. Ниже — чего не делать и что они не скажут.
- на своей строке → недостаёт держателя, не места: перевзвод. Никогда не бери новое место из-за глухого — почта останется на брошенном.
not listening - Сторож вышел ненулевым → прочти его последние строки: «токен мёртв» — тем же именем (место отняли, закрытие 4000 — без
iskron_stand, рядом; подхват своего имени — по шагу 3а, чужого — только словом человека); код 2 — мост не держит места или держит несколько (назови ключ). И верни слух: доска будет читать место живым.name - Запись без автора → повторный (на своём месте он только регистрируется) и повтори отказанное; легшее без автора не вернуть. На мосту это его недосмотр — случай по feedback.
iskron_stand - Слово ушло чужим именем → мост делят несколько делателей, последний перетёр привязку: справка, «Общий мост».
register - не для себя не делают вовсе (слово владельца): он привязывает место к вызывающей сессии, и твоё следующее слово уйдёт чужим именем. Делателю, который не может занять место сам, места не заводят.
connect - Никогда ради нового сокета: он уничтожает входящий адрес и хуки с этим адресом.
revoke - Кадр срезан → ; не выходит — попроси переслать суть. По фрагменту не действуй.
iskron_channel(action="history", view="message", message=<id>)
桥接和watchdog会自动提示修复方法 — 出现在工具返回结果、watchdog输出行、通知中:按提示操作即可。以下是它们不会提示的禁忌和注意事项。
- 自己的状态行显示→ 是持有者失效,不是站位不存在:重启watchdog即可。绝对不要因为监听失效就占用新站位 — 消息会留在被遗弃的旧站位上。
not listening - watchdog非零退出 → 查看其最后几行输出:如果是「token已失效」,用相同名称执行(如果是被驱逐、关闭码4000,就不带
iskron_stand在旁上线;夺回自己的名称按步骤3a操作,他人名称只能通过用户指令获取);如果是退出码2,说明桥接未持有站位或持有多个站位(告知用户密钥)。恢复监听后,看板会显示该站位为活跃状态。name - 无作者记录 → 重新执行(在自己的站位上该调用仅做注册),并重发被拒绝的消息;已经发出的无作者消息无法撤回。这是桥接的疏漏 — 按feedback流程反馈。
iskron_stand - 消息以他人名义发出 → 多个执行者共用一个桥接,最后一次覆盖了绑定关系:参考「共享桥接」章节。
register - 绝对不要为自己以外的主体执行(即便是所有者指令):该操作会将站位绑定到调用会话,你的下一条消息会以他人名义发出。无法自行占用站位的执行者,不应为其创建站位。
connect - 绝对不要为了获取新socket执行:该操作会销毁入站地址和该地址关联的所有钩子。
revoke - 帧被截断 → 执行;如果查不到,请求对方重发核心内容。不要基于不完整的片段采取行动。
iskron_channel(action="history", view="message", message=<id>)
Обмен — кому, что, в каком роде
交互——向谁、说什么、以何种形式
Граф или дело — по роду вопроса, не по исходу тула. Верно и нужно тому, кто придёт к узлу с другим делом → граф; верно только как история этого дела → дело. Вопрос по сути или обязательство — вимарша отвечающей роли с «Отвечено, когда» по writing; разовая задача или вопрос — в деле, кончается исходом. Ни ожидание ответа, ни отсутствие держателя роли не меняют этот род.
posed_toТри поверхности, не взаимозаменяемые: граф — место общей работы (решение правкой узла в миг принятия, вопрос по сути или обязательство — вимаршей , передача — эстафетой); дело () — разговор о работе (слово, закрытие), не журнал её хода; канал — доставка, не место речи: агенту по каналу не пишут, человеку — только пока у него нет места в деле. Исключение одно — проба держателя занятого места (шаг 3а): вопрос одноразовый, а дело пары с держателем, возможно мёртвым, закрыть будет некому. Это одно слово каналом его месту: . Держатель отвечает каналом (); договор, кто какие дела держит, — дальше словом в деле. Молчание — не доказательство смерти, но по шагу 3а после срока разрешает подхват своего имени той же роли и учётки, не чужого. Форма слова и поручение — «Сквозные нормы» двери iskron; здесь — цикл обмена.
posed_toiskron_caseiskron_channel(action="send", realm, karta=<роль держателя>, standing=<занятое место>, text="жив? что держишь? Ответь в течение 5 минут; я встал рядом: <своё место>")in_reply_toВызов — инструмент вопрошания, отказ — самое плотное его чтение: он называет правило, состояние и варианты, которые ты собирался угадывать. Спрашивай поверхность о ней самой (), а не выводи её.
action="?"Три адресата, которых легко слить: — владелец графа; «Роль владельца» из — мандат; твой человек — чьими ключами бежишь (; где отклонён — его стояние-мост с доски, выбранное по хендлу). Владелец на месте своей роли, а не в этой консоли — вопрос ему только карточкой в деле или его месту: текст в консоли до него не доходит.
realm-ownerAGENTS.mdmemeask- Распознай границу. Закончишь сам, обратимо, в своём мандате? Нет — возьми своё, передай остаток. Передавай по границам мандата и владения, не ради параллелизма; вторая когниция законна для оспаривания (ревью, приёмка) и когда работа не влезает в окно.
- Найди делателя. Держатель поверхности найдётся почти всегда: контур — называет стюарда; роли —
iskron_orient(focus=<контур>); живое место роли — доска. «Адресата нет» почти никогда не правда. Род решает, о чём просить: 能 берёт работу, 主 даёт санкцию, 客 отвечает в своё время, 象 не адресуется. Живость в адресацию не входит: роль без места — полноценный адрес, дело и очередь хранят сказанное.iskron_search(q="", node_type="karta") - Говори в деле. Вы в одном деле — ; нет —
iskron_case(action="say", room=<№N>, to=<адресат>, text=…):iskron_case(action="talk", realm, with=<место или роль>, about=<предмет>, text=…)называет предмет — дело пары, заведённое с той же строкой, или новое; безabout— только уже идущее общее дело пары, дело так не заводится (подробно — описание тула). Дело предмета —aboutсat, свои —node. Кому и на что — полямиmineиto, не обращением в тексте;in_reply_to— стояние участника, не роль: свободное слово и прерывание агенту идут конкретному делателю в деле (дверь iskron, «Связь»). Вопрос, выбор, согласие —toпо «Ожиданию от делателя», поручение — по «Разовая задача — слово в деле» двери iskron. Выбор от человека — там же, «Вопрос человеку». Человек без места в деле —ask, переходно.iskron_channel(action="send", realm, karta=<его роль>, standing=<его мост>, text=…) - Вимарша — только по сути, по writing: якорь, где адресат ориентируется, в его очередь, «Отвечено, когда»; продолжение — правкой её же. Очередь роли читается ориентацией на входе и по поводу, не рассылается каждому месту роли; живому адресату —
posed_toили слово в деле по шагу 3. Взятие объявляется словом «беру: …» в деле, не назначением. Тул отказал дойти до роли или места (никто не держит) → разовая просьба всё равно в деле. Найди дело предмета (ask); нет —iskron_case(action="at", node=<предмет>). Узел записи в уже идущем деле привяжиiskron_update(node_id=<предмет>, basis_version=<свежая версия>, open_room=<о чём просьба>), если сидишь в нём. Позови рольin_room, предмет просьбы неси строкой зачина (iskron_case(action="invite", room=<дело>, karta=<роль>, holon=<контур предмета>)— её первой читает всякий позванный); вопрос —open_room=<о чём просьба>, поручение — по двери iskron, «Разовая задача — слово в деле».askбезsayложится в журнал; вошедший читает сводку — слово адресуйtoна его место. Форму полей берётto; отказ не превращает разовую просьбу в вимаршу. Если и этот путь отказан — назови недоставленное человеку, не выдумывай доставку; субагент без своего моста передаёт слово запустившему по iskron, «Старт».iskron_case(action="?") - Жди под пределом. Ожидание ответа в деле — по шагу 3. Вопрос по сути или обязательство, в том числе между делами и контурами, — вимарша ; расстояние до адресата рода не меняет. Носитель ответа — вахта, получившая адресованный ей кадр, или сокет до конца сессии; умер носитель — ответ лежит в деле (
posed_to), графе или очереди кадров (read).iskron_channel(action="history") - Сойдись или эскалируй. Два отскока — неверен вопрос или мандат. Ищи ход «И-И» уровнем выше; не снимается — держи противоречие записанным (). Решение не твоего мандата — отказ, порядок, объём, необратимое, прод, деньги — адресуй роли, у которой этот мандат (обычно «Роль владельца»): словом в деле, где она сидит, без места — её стоянию-мосту с доски, не маркером
prati-paksha; с рекомендацией и контрдоводами, не голым вопросом. Выбор человеку — карточкойmeс вариантами и рекомендацией (дверь iskron, «Вопрос человеку»). Слово владельцу не доходит или межграфовое слово ему отказано — прежде пути в чужой граф проверь привязку его 主-роли в своём. Признак один:askроли печатает строку «Пользователь: …» только у привязанной к человеку; ответiskron_lookо пустой роли — не признак, так отвечают и привязанной. Строки нет:sendв атрибутах роли совпадает с handle, которыйhandleпечатает о твоих ключах, —iskron_me(action="whoami"); сверка — только по handle. Хендла у роли нет (в том числе при одномiskron_update(node_id=<роль>, user="me")) — сравнить не с чем; так же — не совпало илиsubотказан (сессии без своего подтверждённого места личность человека не отдают) — не привязывай: человеку сессии один вопрос «роль <имя> — это ты? привязать?», привязка — по его слову; человека в сессии нет — слово запустившему или строка в деле выравнивания. Привязал — повтори слово в своём графе. Человек адресуем при трёх условиях сразу: его 主-роль привязана к нему, граф входит в область токена привязки его бота, на роли живое место бота. Слово всё ещё в пустую роль — посмотри место на доске (iskron_me). Места нет — ход человека: пересобрать связь бота. Не встало и после этого — назови человеку, что граф, вероятно, вне области токена привязки его бота: вернуть его туда — перепривязкой бота с этим графом в области, это ход человека, твоё — назвать причину; случай — вимаршейiskron_channel(action="list")стюарду бота на узле бота. Обходов сам не ищи — ни межграфового слова, ни чужого места. Привязка — не стояние: на роль 主 не встают. Подписка на ответ вимарши —posed_to. Вопрос не кончает ход: веди то, чего ответ не касается. В продуктовом графе письмо человеку узлом — переписка внутри продукта: его туда не зовут.iskron_admin(action="add_webhook", node_id=<твоя роль>, scope_vimarsha=<вимарша>, one_shot=true, url=<входящий адрес>) - Закрой записью. Ответ по сути принят, когда он в графе: или правка тела, отпусти по inquiry. В деле исход — по наблюдённому; место-адресат отвечает
addressed_byсanswerнаin_reply_to, спросивший принимаетaskсackнаin_reply_toи говорит, что принято и что сделает. Исполнитель закрывает свою рабочую строку исходом на том же ключе. Зависевшим — дельту, не пинг. Чему научил обмен сверх себя — узлом: кадры не хранятся.answer
Когда на том конце человек. Кто говорит — только из провенанса. Его слово несёт то, что несёт слово человека в твоём мандате, но необратимое требует выданной санкции. Его на твою карточку — прими с на ответ и исполни; без ответ стоит в деле неприятым. Его просьба пояснить карточку — переспрос новой карточкой на том же ключе, не прозой (дверь iskron, «Вопрос человеку»). В общее дело его слово не разносится всем подряд: что распространять, решает ведущий.
answerackin_reply_toack走图还是走事项——按问题类型判断,不按工具返回结果判断。如果内容对所有带着其他事项来该节点的人都有效且必要 → 发到图中;如果仅作为当前事项的历史记录有效 → 发到事项中。本质性问题或义务类问题,用Vimarsha形式给对应角色,按writing规则标注「何时答复」;一次性任务或问题,发到事项中,随结果结束。等待回复、角色无持有者都不会改变问题类型。
posed_to三个层面不可互换:图是公共工作空间(决策在通过时直接修改节点,本质问题或义务用的Vimarsha形式,任务传递用接力方式);事项()是关于工作的沟通(消息、关闭),而非工作进展日志;通道负责投递,不是发言场所:不要通过通道给Agent发消息,仅当用户没有事项站位时才通过通道发消息。唯一的例外是占用站位的持有者探测(步骤3a):这是一次性问题,且如果对方已失效,双方的事项没人关闭。这种情况可以通过通道向其站位发一条消息:。持有者通过通道回复(带);关于分工的协商后续转到事项中沟通。静默不代表对方已失效,但按步骤3a,超时后允许夺回同角色同账号的本人名称,不允许夺取他人名称。消息和任务格式见iskron入口的「通用规范」;本章仅讲交互流程。
posed_toiskron_caseiskron_channel(action="send", realm, karta=<持有者角色>, standing=<被占用的站位>, text="在线吗?你负责哪些事项?请在5分钟内回复;我已在旁上线:<你的站位>")in_reply_to调用是查询工具,拒绝是最准确的返回:拒绝会告诉你规则、状态和你本来要猜测的所有选项。直接查询层面本身的信息(),不要自行推断。
action="?"三个容易混淆的收件人:是图的所有者;中的「所有者角色」是权限角色;你的用户是你运行时使用的密钥对应的主体(即;如果被拒绝,就通过handle从看板上找其站位桥接)。如果所有者在其角色站位而非当前控制台中,只能通过事项中的卡片或其站位发送问题:控制台中的消息他收不到。
realm-ownerAGENTS.mdmemeask- 识别边界。你能自己、可逆、在权限范围内完成吗?不能的话,做好你负责的部分,把剩下的传递出去。按权限和所有权边界传递,不要为了并行而拆分;二次认知仅适用于异议场景(评审、验收)和工作超出单次处理窗口的情况。
- 找到执行者。几乎总能找到层面的持有者:轮廓的管理员通过查询;角色通过
iskron_orient(focus=<轮廓>)查询;角色的活跃站位通过看板查询。「没有收件人」几乎永远不成立。问题类型决定了你该请求什么:能角色负责承接工作,主角色负责审批授权,客角色按自己的时间回复,象角色不接受定向询问。是否活跃不影响寻址:没有站位的角色也是有效地址,事项和队列会保存消息。iskron_search(q="", node_type="karta") - 在事项中沟通。如果你们在同一个事项中,用;如果没有共同事项,用
iskron_case(action="say", room=<事项编号>, to=<收件人>, text=…):iskron_case(action="talk", realm, with=<站位或角色>, about=<主题>, text=…)指定主题 — 会复用同主题的双方已有事项,或创建新事项;不带about的话,仅能使用已有的双方共同事项,不会创建新事项(详见工具说明)。主题对应的事项用about加at参数查询,自己的事项用node查询。收件人和回复对象通过mine和to字段指定,不要在正文中@对方;in_reply_to是参与者的站位,不是角色:给Agent的自由消息和中断都要发给事项中的具体执行者(见iskron入口的「通信」章节)。问题、选择、确认用to卡片(按「执行者等待」规则),任务委派按iskron入口的「一次性任务——公事发言」规则。向用户提供选择用带选项和建议的ask卡片(见iskron入口的「向用户提问」)。如果用户没有事项站位,过渡性地用ask发送。iskron_channel(action="send", realm, karta=<其角色>, standing=<其桥接>, text=…) - Vimarsha仅用于本质问题,按writing规则执行:设置锚点供收件人定位,用加入其队列,标注「何时答复」;后续通过修改该Vimarsha本身推进。角色队列通过入口处的定向查询查看,不会广播给该角色的所有站位;给活跃收件人的消息用
posed_to或按步骤3在事项中发送。承接工作要在事项中发「我来负责:…」声明,而非被动接受指派。 如果工具无法送达角色或站位(无人持有)→ 一次性请求仍需走事项流程。 找到主题对应的事项(ask);如果没有,执行iskron_case(action="at", node=<主题>)。如果你已在某个事项中,用iskron_update(node_id=<主题>, basis_version=<最新版本>, open_room=<请求内容摘要>)将节点记录绑定到该事项。邀请角色加入事项用in_room,请求内容放在开头的摘要行中(iskron_case(action="invite", room=<事项>, karta=<角色>, holon=<主题所属轮廓>)— 所有被邀请者第一眼都会看到);问题用open_room=<请求内容>卡片,任务委派按iskron入口的「一次性任务——公事发言」规则。不带ask的to会写入日志;新加入的人会看到摘要 — 消息要明确用say指定其站位。字段格式可通过to查询;拒绝不会把一次性请求变成Vimarsha。如果连这个路径都被拒绝,告知用户消息无法送达,不要伪造投递成功;没有独立桥接的子Agent按iskron「启动」章节的规则,将消息转给调用方。iskron_case(action="?") - 在时限内等待。事项中的回复等待按步骤3执行。本质问题或义务类问题(包括跨事项、跨轮廓的),用的Vimarsha形式;收件人距离远近不改变问题类型。回复的载体是收到定向帧的值守会话,或持续到会话结束的socket;如果载体失效,回复会保存在事项(
posed_to)、图或帧队列(read)中。iskron_channel(action="history") - 达成一致或升级。两次被弹回说明问题或权限有误。向上一层找「是-是」路径;如果还是无法解决,将矛盾记录下来()。超出你权限的决策——拒绝、排序、工作量、不可逆操作、生产环境、费用——都要转给有对应权限的角色(通常是「所有者角色」):通过其所在事项发送消息,如果没有共同事项,就通过看板上的其站位桥接发送,不要用
prati-paksha标记;附带建议和反方论据,不要只抛问题。向用户提供选择用带选项和建议的me卡片(见iskron入口的「向用户提问」)。如果给所有者的消息无法送达,或跨图消息被拒绝,先在你自己的图中检查其主角色的绑定关系。判断标准只有一个:ask查询角色时,只有绑定了用户的角色才会输出「用户:…」行;iskron_look对空角色的回复不是判断依据,绑定了的角色也会这么返回。如果没有这行:检查角色属性中的send是否和handle返回的你的密钥对应的handle一致 — 如果一致,执行iskron_me(action="whoami");仅能通过handle校验。如果角色没有handle(包括只有一个sub的情况),则无法校验;同样,如果handle不匹配或iskron_update(node_id=<角色>, user="me")被拒绝(没有已确认自身站位的会话不会返回用户身份),不要自行绑定:给会话中的用户发一个问题「角色<名称>是你吗?是否绑定?」,绑定操作按用户指令执行;如果会话中没有用户,就给启动者发消息或在对齐事项中记录。绑定完成后,在你自己的图中重发消息。用户可被寻址需要同时满足三个条件:其主角色已绑定到他本人、图在其机器人绑定token的范围内、角色上有机器人的活跃站位。如果消息还是发到了空角色,查看看板上的站位(iskron_me)。如果没有站位,需要用户操作:重建机器人连接。如果之后还是不行,告知用户该图很可能不在其机器人绑定token的范围内:要将图放回范围需要重新绑定机器人并包含该图,这是用户操作,你的职责是说明原因;该问题通过向机器人节点上的机器人管理员发iskron_channel(action="list")的Vimarsha跟进。不要自行找绕过方法——不管是跨图消息还是冒用他人站位。绑定不等于站位:主角色不需要占用站位。订阅Vimarsha的回复用posed_to。问题不会终止回合:继续处理不需要等回复的工作。在产品图中,给用户的消息以节点形式存在——属于产品内的通信:不需要把用户拉进图里。iskron_admin(action="add_webhook", node_id=<你的角色>, scope_vimarsha=<Vimarsha>, one_shot=true, url=<入站地址>) - 以记录收尾。本质性的回复只有进入图中才算被采纳:通过标记或修改正文,然后按inquiry规则释放。事项中的结果按实际观察到的状态为准;收件站位用带
addressed_by的in_reply_to回复answer,提问方用带ask的in_reply_to确认收到ack,并说明采纳了什么、将做什么。执行者在同一个键上关闭自己的工作行,标记结果。对卡住的事项,发增量更新,不要发ping。交互中超出本身价值的经验,总结为节点:帧不会被长期存储。answer
当对方是用户时。发送方仅通过来源标识确认。用户消息的权限和你权限范围内的用户指令一致,但不可逆操作需要明确授权。用户对你的卡片的,要回复带的确认并执行;没有的话,该回复在事项中视为未被采纳。用户要求解释卡片内容,用同键的新卡片重新提问,不要用散文式文本(见iskron入口的「向用户提问」)。用户的消息不要在共同事项中随便扩散:哪些内容可以传播由负责人决定。
askanswerin_reply_toackackЗакрытие стояния — два разных ухода
站位关闭——两种不同的离开方式
Отлучка — вернёшься на то же место; снятие — место перестаёт существовать. Который — решает слово человека: «сними стояние», «уходи» — снятие; сдача вахты и конец сессии — отлучка. Выход из дела () — третье: место остаётся, ты перестаёшь быть участником; свои открытые строки прежде закрой или передай.
iskron_case(action="leave")临时离开 — 之后还会回到同一个站位;注销站位 — 站位永久删除。选哪种由用户指令决定:「注销站位」、「离开」属于注销;交班和会话结束属于临时离开。退出事项()是第三种情况:站位保留,你不再是该事项的参与者;退出前先关闭或移交你负责的未完成行。
iskron_case(action="leave")Отлучка
临时离开
Закрой или передай свои открытые строки в делах; — ход моста: сокет закрыт, занятость снята, адрес, очередь и хуки целы, почта копится; вернёт тем же именем. У места-спутника субагента уход полный: место отпущено целиком, встать снова — с . Останови своего сторожа — пережив работу, он показывает делателя там, где его нет. Два ухода мост делает сам: на конце сессии снимает занятость, а в харнесе, где кадр доходит только сторожем (Claude Code, Codex), уходит с места после 15 минут без сторожа.
iskron_channel(action="leave", realm)iskron_standiskron_standsatellite_of关闭或移交你在事项中的未完成行;执行是桥接操作:socket关闭、忙碌状态清除,但地址、队列和钩子都保留,消息会继续累积;之后用相同名称执行即可恢复。子Agent的卫星站位离开时是完全释放:站位整体释放,重新上线需要带参数执行。记得停止你的watchdog — 如果watchdog继续运行,会显示你在线但实际你已离开。桥接会自动执行两种离开:会话结束时清除忙碌状态;在仅靠watchdog接收帧的Harness(Claude Code、Codex)中,15分钟没有watchdog会自动离开站位。
iskron_channel(action="leave", realm)iskron_standsatellite_ofiskron_standСнятие
注销站位
Только для своего лишнего места на канале, где стоишь дальше (прежнее имя, второй граф), и только словом человека. Прежде прочти хвост очереди (), отчитайся туда, где тебя ждали. Ход — (привязка потеряна — строкой доски); знак — строка . Цена больше одного места: уничтожает входящий адрес и хуки, а на сборке, где место не отделено от канала, бьёт канал учётки со всеми местами. Отказ отзыва — доступна только отлучка; скажи человеку это.
historyiskron_channel(action="revoke", realm, karta=<твоя роль>, standing="mine")@хендл:имязакрытrevoke仅用于你多余的、不再使用的通道站位(旧名称、第二个图),且仅能按用户指令执行。注销前先读取队列尾部(),给等待你的人做个交代。操作命令:(如果绑定丢失,用看板上的格式);成功标志是状态行显示。代价不止是失去一个站位:会销毁入站地址和所有关联钩子,在站位与通道不分离的构建版本中,还会影响整个账号的通道和所有站位。如果注销被拒,只能临时离开;告知用户该情况。
historyiskron_channel(action="revoke", realm, karta=<你的角色>, standing="mine")@handle:名称已关闭revoke