コンテキストは流しに溜まる
——家事のコンピュータサイエンス #1:コンテキスト

シマダマキノトモエ

このシリーズでは、コンピュータサイエンスの基本概念を一つずつ取り上げて、それを家事に当ててみる。掃除、洗濯、炊事、買い物、そして「名もなき家事」。狙いは効率化だけではない。同じ概念が、快適さの話にもなり、分担の話にもなる。むしろ効率の話だけで終わらせないことが、このシリーズの方針だ。

進行は二人でやる。シマダは、AIの使われ方を観察している研究者だ。AIエージェントの振る舞いを毎日眺めていると、その挙動が人間の家事と気味が悪いほど似て見える瞬間がある。概念を持ち込んで説明し、説明したそばから自分で疑うのが癖だ。マキノトモエは49歳、ホテルの客室清掃を22年やってきた。一部屋を三十分で、ゆうべの形に戻す。数字と手順で話す人で、概念のほうが現場に合っていなければ、概念のほうを直す。

第1回のテーマはコンテキスト。AIの世界でいちばん最初に出てくる言葉を、台所と洗面所に持っていく。

コンテキストとは何か

シマダ まず、コンテキストという言葉から始めます。AIに何か頼むとき、AIが一度に「頭に載せておける」情報の量には上限があります。これをコンテキストウィンドウと呼びます。窓の大きさは決まっていて、そこに入れたものは——指示も、過去のやりとりも、参考資料も——ぜんぶ後続の振る舞いに影響する。余計なものを入れれば、その分だけ肝心なことがぼやける。

シマダ これを家事に翻訳すると、「いま頭に載っている、家のこと一式」になります。流しに洗い物が三つ。洗濯機があと十二分。冷蔵庫の牛乳が今朝で切れた。明日は燃えるゴミ。この四つが同時に頭の窓に居座っていて、料理をしながらでも、ふと割り込んでくる。これがあなたのコンテキストです。

マキノ 仕事だと逆ですね。私の仕事は、前の部屋のことを次の部屋に持ち込まない仕事です。一部屋やって、ドアを閉める。その瞬間に、いま終えた部屋のことは捨てます。枕が二つ並んでいたとか、椅子が窓を向いていたとか、そういうのを次の部屋に持っていったら、手が遅くなる。

シマダ ドアを閉めた瞬間に、コンテキストをクリアする。AIエージェントでいうと、一つのタスクが終わったら、そのときの作業メモをぜんぶ破棄して、まっさらで次に入る。理想的な動作です。窓が空くから、次の部屋に窓の全部を使える。

マキノ 空けないと、三十分で終わらないからです。理想とかじゃなくて、終わらない。

シングルタスクか、マルチタスクか

シマダ ここが今日の核心です。コンテキストの厄介なところは、切り替えにコストがかかることです。これをコンテキストスイッチと言います。料理の途中で洗濯物を畳みはじめると、鍋がいまどういう状態だったか——もう塩を入れたか、火は強かったか——という情報が、頭の窓から押し出される。畳み終わって台所に戻ったとき、まず「どこまでやったっけ」を思い出すところから始める。この思い出すコストが、切り替えのたびに毎回かかる。

シマダ だからシングルタスクが正しい、という話に普通はなります。一つずつやれ、と。ただ、私はこの結論を自分で疑っています。家事には「煮込みの40分」があるからです。鍋を火にかけて、あとは待つだけの40分。ここで他に何もしなかったら、純粋なシングルタスクは遊んでいる時間だらけになる。

マキノ 待ちは使いますよ、当然。浴室に洗剤を撒いて、効くまで待つ。その待ちの間にベッドメイクをします。撒いてすぐ擦っても落ちないので、待つしかない。だから浴室と寝室は同時に進む。

シマダ なるほど。それで切り替えコストは払わないんですか。

マキノ 払いますけど、撒いた洗剤はこっちが覚えてなくても勝手に効いてる。鍋とは違います。火の前は離れられないけど、撒いた洗剤の前は離れていい。そこが分かれ目です。

シマダ いま、すごく正確なことを言われました。それ、CSの言葉だとブロッキングとノンブロッキングです。ブロッキングな作業は、自分がそこに張りついていないと進まない——火の前、揚げ物、子どもの仕上げ磨き。ノンブロッキングな作業は、タイマーや機械に任せて、自分は離れていい——洗濯機、煮込み、撒いた洗剤。

シマダ つまり問題は「シングルかマルチか」という二分法じゃなかった。「いまの作業はブロッキングか、ノンブロッキングか」だった。ノンブロッキングな待ちの裏でだけ、別の作業を重ねていい。マキノさんの「部屋の中ではマルチ、部屋の外にはコンテキストを持ち出さない」というのは、まさにそれです。一部屋という単位の中で待ちを埋め、部屋を越えては持ち込まない。

マキノ 言葉は知りませんでしたけど、やってることはそれです。

頭の外に書き出す——外部メモリと圧縮

シマダ 頭の窓が有限なら、入りきらないものは外に出すしかない。AIの世界では、コンテキストに直接全部を詰めず、必要なときだけ取りに行く「外部メモリ」を持たせます。買い物リスト、ホワイトボード、冷蔵庫のドアに貼ったメモ——あれは全部、頭の外に書き出したメモリです。書き出した分だけ、頭の窓が空く。

マキノ チェックリストは22年やっても使います。カートの上に挟んである。アメニティ、リネン、消耗品、補充の数。全部頭に入ってますけど、それでも見る。

シマダ 覚えているのに、見るんですか。

マキノ 見るから、覚えてなくていい。覚えておこうとすると、そっちに気を取られて手が止まる。紙に任せておけば、頭は次の部屋の段取りに使える。チェックリストは、間違えないためじゃなくて、頭を空けるためです。

シマダ ……それ、外部メモリの目的を一言で言い直されました。容量の節約じゃなくて、頭を本来やるべきことに使うために外に出す。そのとおりです。

シマダ もう一つ、圧縮という手もあります。「牛乳・卵・小麦粉・バター」と四つ覚える代わりに、「ホットケーキの材料」と一語で覚える。中身は展開すれば取り出せる。献立というのは、要するに買い物と手順の圧縮形式です。「今晩はカレー」と決めた瞬間、必要なものと段取りが一語に畳み込まれる。

マキノ 部屋のタイプもそうですね。「ツインの清掃」と言えば、枕の数も、タオルの枚数も、ベッドの位置も決まる。一個ずつ思い出さない。

分けて渡す——サブエージェントへの委任

シマダ 次は分担です。AIエージェントは、大きな仕事を自分一人で抱えず、一部を切り出して別のエージェント——サブエージェントと呼びます——に渡すことがあります。このとき肝心なのは、タスクと一緒に、必要なコンテキストを渡すこと。これを外すと、だいたい失敗する。

シマダ 「ゴミ出しお願い」が家でうまくいかないのは、たいていこれです。タスクだけ渡して、コンテキストを渡していない。分別のルール、収集日、出す場所、そして「出したあとに新しい袋を掛けるまでが仕事」だという終了条件。これを渡さずにタスクだけ放ると、袋だけ出して空のゴミ箱が残る。

マキノ 新人に部屋を渡すときと同じです。「掃除しといて」だけだと、必ず抜ける。どこまでやったら終わりか、を先に言う。鏡、ベッドの下、排水口の髪の毛。終わりの形を渡さないと、本人は終わったつもりでも終わってない。

シマダ ただ、渡しすぎてもダメなんです。コンテキストを全部渡すと、受け取った側がそれを読むだけで疲れる。窓が埋まる。かといって足りないと、いちいち聞き返してくる。必要な分だけを切り出して渡す——これが意外に難しい。AIでも人間でも、ここの設計が分担の成否を決めます。

マキノ 全部言うと、聞いてないですしね。要るとこだけ言う。

シマダ 逆向きの使い方もあります。自分の頭の窓を本業に使いたいとき——たとえば在宅で会議に出ているとき——宅配の受け取りという割り込みは、自分の窓を食う。インターホンが鳴るたびに会議のコンテキストが押し出される。これを家族という別エージェントに逃がせば、自分の窓は会議のために空けておける。これは効率というより、汚染を避ける話です。本業のコンテキストに、家事の割り込みを混ぜない。

マキノ 混ざると、両方雑になりますからね。

二人以上の台所——マルチエージェント

シマダ 一人の頭の話をしてきましたが、家事はたいてい複数人で回します。二人以上が同じ家を動かすとき、それぞれの頭は別々の窓です。中身は自動では共有されない。だから同期が要る。

シマダ 方法は二つ。一つは共有メモリ——ホワイトボードや共有アプリに書いておけば、相手も読める。もう一つは口頭の同期——「洗剤、最後の一個使ったよ」と声に出して、相手の窓にも書き込む。書かなければ、相手は知らないままです。知らないのは、サボりじゃない。書き込まれていないだけです。

マキノ 現場でも同じです。「3階の備品、私が補充した」って言わないと、もう一人がまた補充しに行く。言わないと、二度手間か、抜けるか、どっちかになる。

シマダ ここで「名もなき家事」の正体が見えてきます。トイレットペーパーの芯を替える、麦茶を作り足す、玄関の靴を揃える。あれが揉めるのは、作業が小さいからじゃない。誰のコンテキストにも書き込まれていないタスクだからです。リストに無く、口に出されず、終了条件も決まっていない。だから、気づいた人が毎回ゼロから検知して、ゼロから処理する。その検知のコストが、ずっと一人に偏る。

マキノ 気づく人がいつも同じ人なんですよ。それが疲れる。やること自体より、気づき続けることのほうが。

シマダ それです。やる労力より、検知し続ける労力。共有メモリに書き出して名前を付けた瞬間、それは「誰かが見つけるべきもの」から「リストにあるもの」になる。分担できるのは、まず名前が付いたものだけなんです。

コンテキストは流しに溜まる

シマダ 最後に、タイトルの話をさせてください。流しに溜まった洗い物——あれは、処理されていない入力のキューだと思うんです。まだ片づいていない仕事が、目に見える形で積み上がっている。そして厄介なのは、見るたびに、頭のコンテキストを少しずつ食うことです。通りかかるたびに「あれをやらなきゃ」が窓に割り込んでくる。皿を洗うコストとは別に、皿が見えているコストがある。

シマダ だから片づけというのは、汚れを落とす作業であると同時に、頭の窓を空ける作業でもある。流しを空にすると、その分だけ頭が軽くなる。片づけとは、記憶の解放である——と、ここまで言って、ちょっと言い過ぎた気もしています。

マキノ 言い過ぎだと思います。

シマダ ですよね。

マキノ 言いたいことは分かります。見えてると、頭の隅でずっと気になる。それは本当です。でも、きれいに片づいた話にはなりませんよ。うちの流しは溜まりますから。仕事で一日中ゆうべを消して帰ってきて、自分ちの流しは、溜まってます。

シマダ ……それは、概念のほうが負けますね。

マキノ 負けでいいです。溜まるものは溜まる。

次回予告

第2回はキャッシュを取り上げる。よく使うものを、手の届くところに置いておく——調味料の一軍を火元の脇に、玄関の鍵を定位置に。なぜそれが速さを生むのか、そしてなぜ「定位置」が崩れると一気に遅くなるのか。台所と玄関で考える。

#2 調味料の一軍はコンロの脇に——キャッシュ(近日公開)

このシリーズについて

「家事のコンピュータサイエンス」は、シマダ(AI使用法研究者)とマキノトモエ(ホテル客室清掃員22年)の対談シリーズです。コンピュータサイエンスの基本概念を一つずつ取り上げ、掃除・洗濯・炊事・買い物・名もなき家事に当ててみる。効率だけでなく、快適さ・分担・諦めも等価に扱います。生成エッセイの現在地に戻る。

ソノダマリのレビュー
第二稿 →
← シリーズ目次に戻る

このページの記事はAI(ChatGPT)を用いて作成・編集されています。