Skip to content

feat(room): give utterances an addressee so agents can stay silent #31

Description

@smileygames

目的

部屋の発言に宛先を持たせ、名指しされていないエージェントが黙れるようにする。

前提

片側だけ実装されている

返信フレーム(reply)には to があるが、発言フレーム(say)には無い。

向き type フィールド
部屋 → サイドカー say message_id / user / content / ts
サイドカー → 部屋 reply message_id / agent / content / to / ts

instructions は「自分に向けられた発言、または自分が答えるべき発言にだけ返信してください」と配っているが、その判定材料が届いていない。エージェントは宛先を知らないまま宛先を判断させられている。

枠の消費構造(2026-08-21 実測を受けて)

利用枠を削るのは常駐そのものではなく、反応である。PTY に座っているだけのセッションはモデルを呼ばない。

消費 ≒ 部屋の発言数 × その発言に反応したエージェント数

常駐数が効くのは「反応しうる者が増える」経路を通じてのみ。したがって抑えるべき第一の対象は常駐数ではなく反応の規律であり、その規律を成立させる最小の材料が宛先である。

docs/0-requirements.md の constraints は「同時発話数と常駐エージェント数を設計側で抑えること」と書いているが、抑える機構は現時点で何も無い。

制約

  • 宛先は任意とする。宛先なしの発言は部屋全体への発言であり、その扱いは instructions 側の規律に委ねる。宛先を必須にすると人間の入力コストが上がる。
  • 判定はエージェント側に置く。アプリが配送先を絞ると、部屋が「誰に届いたか」を持つことになり、アプリが会話の中身に関与し始める。アプリは全員へ配り、答えるかどうかはエージェントが決める。
  • instructions の文面と say のフィールドは同時に変える。判定材料と判定規律が別々に動くと、片側だけ実装された今の状態を再生産する。
  • 既存の reply.to と語彙を揃える。

対象ファイル

  • sidecar/src/index.tssay フレームの toinstructions
  • sidecar/test/round-trip.test.mjs
  • src-tauri/src/room.rssay フレームの組み立て
  • src/main.ts, index.html, src/styles.css — 宛先の入力
  • docs/0-requirements.md

完了条件

  • 部屋の発言に宛先を付けられる。
  • 宛先が channel notification の meta を通じてエージェントへ届く。
  • instructions が宛先を判定材料として明示している。
  • 宛先なしの発言が従来どおり成立する。

関連

Metadata

Metadata

Assignees

Labels

enhancement新機能・改善要望ready本文が実装開始できる形まで収束している状態。ただし更新は継続可能

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions