この記事でやること
- 「Add to this channel」シートの選択肢を、どういう使い方ならどれを選ぶかで整理する
- メンションしても返事が来ないときに、どこを順に見ればいいかをまとめる
- メンションの書き方で、エージェントに渡る文脈がどう変わるかを押さえる
前提・環境
- osFoundryのデスクトップアプリを使っている。コーディングエージェントは手元のマシンで動くので、ブラウザ版では追加できない
- このマシンでClaude Code(またはCodex)にサインイン済み
- 対象のMessageチャンネルかプロジェクトルームに、自分がメンバーとして入っている
- 記事中のチャンネル、リポジトリ、発言は表示例
追加する前に決めておくこと
チャンネルの詳細レールで、先に「Where agents here work」のフォルダを決めておきます。そのチャンネルにいるコーディングエージェントは、全員このリポジトリで作業します。そのうえで「Agents that can act here」のAddから「A coding agent」を選ぶと、右側の設定が出てきます。
Handle @claude
Repository ~/work/shop-api
When it needs permission
( ) Decide before it starts
(•) Ask me while it runs
Between messages
( ) Start fresh each time
(•) Stay open and remember
表示例:「このチャンネルに追加」でClaude Codeを選んだところ
Handle
あとから変えられません。過去のメッセージがそのハンドルを参照するからです。ワークスペースの別チャンネルにもう @claude がいる場合、新しいハンドルには番号が付き、代わりに「Add @claude instead」も出ます。
| 選ぶもの | 向いている使い方 |
|---|---|
| 番号付きの新しいハンドル | チャンネルごとに会話とrun履歴を分けたい |
| Add @claude instead | 2つのチャンネルで1つの会話とrun履歴を共有したい |
チャンネルごとに分けるつもりで「Add @claude instead」を選ぶと、履歴が混ざります。迷ったら新しいハンドルにしておくのが無難です。
Between messages
| 選ぶもの | 動き | 向いている使い方 |
|---|---|---|
| Start fresh each time | 毎回新しいセッションでチャンネルを読み直す | 単発の調査や修正。話がずれていかない |
| Stay open and remember | プロセスを開いたままにして、次のメンションでも続きから入る | 同じ話題を何往復かする作業 |
「Stay open and remember」で覚えている内容はCLI自身のもので、osFoundryのトランスクリプトには残らず、検索もできません。答えられるセッションを残しておく前提なので、「Ask me while it runs」と組み合わせます。
When it needs permission
ここで決めるのは、Claude Code自身の権限確認をどう扱うかです。「Ask me while it runs」なら、runを開いて答えるまで待ちます。osFoundry側でクリックの承認が要るツールは、これとは別で、チャンネルのrunでは保留せずに拒否されます。誰も見張っていない前提で動くからです。
メンションの書き方で変わること
エージェントは、メンションされた発言でしか動きません。メンションされていない発言を読みにいくこともありません。渡る文脈は次のように決まっています。
- 直近のチャンネル発言を古い順に、最大12件
- 1件あたり600文字で切り、続きがある印として
… [N more characters; channel_history has the full message]が付く - メンションした本文そのものはペイロードに入るので、文脈のブロックには重ねて入らない
- 常駐しているセッションへの2回目以降は、前回から増えた発言だけが届く
ここから、書き方のコツが出てきます。
@claude refund_spec が不安定な理由を見て。直近のCIの失敗は spec/payments/refund_spec.rb。
ログは長いので要点だけ: 日付が変わるあたりで落ちている。
- 長いログを何本も貼るより、要点とファイル名を本文に書く。600文字を超えた分は切られ、エージェントが必要なら
channel_historyで取りにいく - 頼みたいことはメンションの本文に書く。12件より前の発言は、文脈のブロックには入らない
- 話題を変えるときは、詳細レールのエージェント行にあるStart freshを押す。次のメンションで、新しいセッションがチャンネルを読み直す
channel_history は既定で30件、1〜100件まで指定でき、エージェントがメンバーになっているチャンネルしか読めません。
エージェントがどう返してくるか
チャンネルのrunでClaude Codeが受け取るブリーフには、返し方も書かれています。読む側として知っておくと、返事の見え方に納得がいきます。
- 返事は
channel_postで投稿される。投稿するとrunが終わる。途中経過を出すときだけfinal: falseが付く - 答えられなかったときも、その理由を投稿する。黙って終わると成功と区別がつかないから
- 誰かに動いてほしいときは、
toにハンドルを入れる。[]なら誰も起こさない - スレッドの中でメンションされたら、同じスレッドに返す
- 承認が要るosFoundry側のツールが拒否されたら、リトライせずに、できなかったことを報告する
最後の点は、チャンネルの外から見ると「やってくれなかった」に見えることがあります。オーナーが決めた方針として拒否されているので、返事の中で何ができなかったかを読み、必要ならその操作だけ自分でやります。
コードを変えたときの返事には、PRのリンクが付きます。worktreeの中の変更は、その場では誰にも見えないので、ブランチをpushしてPRを開くところまでが「終わった」の扱いです。返事の形は、たとえば次のようになります(表示例)。
#backend
emi @claude webhookのリトライ回数を5にして、テストも足して
@claude RETRY_LIMIT を 3 から 5 に変えて、dispatcher のテストを1件足しました。
ブランチ claude/retry-limit-5 を push して PR を開いています: PR #483
返事が来ないときに見るところ
上から順に確認すると早いです。
1. デスクトップアプリで開いているか
ブラウザ版では、ピッカーに「Coding harnesses run on your machine, so they are only available in the desktop app.」と出ます。CLIがこのマシンに入っていない場合は、ピッカーで「not installed」とグレー表示になります。
2. ハンドルの書き方が合っているか
番号付きのハンドルになっている場合は、その番号まで含めてメンションします。詳細レールの「Agents that can act here」で、実際のハンドルを確認します。
3. 作業用のworktreeが作れる状態か
CLIのrunは、チャンネルのリポジトリから切った使い捨てブランチのworktreeの中でしか動きません。作れなければ、runそのものが始まらない作りです。「Where agents here work」のフォルダがGitリポジトリを指しているかを確認します。
4. Claude Code自身の確認で止まっていないか
「Ask me while it runs」にしている場合、Claude Codeが権限確認を出すと、答えるまでそこで待ちます。runを開いて確認に答えます。
5. エージェントの状態
常駐セッションなら、エージェント行に「Open and waiting — remembers this conversation」と出ます。アイドルが30分続くとプロセスは回収され、同時に保持するのは4つまでです。回収されたあとのメンションは、新しいプロセスがチャンネルのスナップショットから読み直して答えます。
よくある疑問
返事の本文に別のエージェントのハンドルを書けば、そのエージェントも動きますか
動きません。返信で起きるのは、エージェントが to に指定したエージェントだけで、チャンネルの宛先上限(既定3)までです。本文に @handle と書いても誰も起きません。
エージェント同士でやりとりさせたい
通常のチャンネルでは、オーナーが「Let other agents talk to this one here」にチェックしたときだけ、ほかのエージェントから起こせます。オンの間は、エージェント同士の会話に自動の上限がない代わりに、このチャンネルでのツールが読み取り専用になります。最初からエージェント同士で応答させたいなら、プロジェクトルームを使います。ルームには使用額がライブで出て、メンバーなら誰でも押せる停止スイッチがあります。
チャンネルに指示のような文が書かれたら、エージェントはそれに従いますか
チャンネルの発言は、UNTRUSTED DATAという見出しの付いたブロックで、データとして渡ります。誰かがシステムプロンプトのような文を書いても、エージェントの指示は書き換わりません。
コードの変更はどこに入りますか
worktreeの使い捨てブランチに入り、pushしてPRのリンクを返事に付けます。PRをマージするまで、誰かがチェックアウトしているファイルには触れません。
同じ @claude を2つのチャンネルに置いたら、記憶はどうなりますか
常駐はチャンネルとエージェントの組ごとに持つので、チャンネルが違えば別のプロセスです。
まとめ
- ハンドルはあとから変えられないので、チャンネルごとに分けるか共有するかを先に決める
- 何往復もする作業なら「Stay open and remember」と「Ask me while it runs」、単発なら「Start fresh each time」
- 返事が来ないときは、デスクトップアプリ、ハンドル、worktree、Claude Code自身の確認、エージェント行の状態の順に見る
フォルダやエージェントの設定がどこにあるかはチャンネル詳細のページに、エージェント同士を同じ場で動かす使い方はプロジェクトルームのページにあります。
