← 一覧へ
連載 Agentic OS:技術スタックを下から読む の一部です ―― 目次を見る →

Agentic OS 技術スタックを下から読む 補講(12):同じ前置きを、二度読まない ―― 取っておいて使い回す、という節約

この記事の読み方
補講十一では、底の素材まで降りました。何を集め、どう整え、どう鍛えるかを見ました。

Agentic OS 技術スタックを下から読む 補講(12):同じ前置きを、二度読まない ―― 取っておいて使い回す、という節約

続・上の現場へ ―― 同じ前置きを、何度も読み直していた

補講十一では、底の素材まで降りました。何を集め、どう整え、どう鍛えるかを見ました。

今回は、そこから上へ戻ります。鍛え終えた重い本体を、毎回使う現場へ戻ります。

一つ問うたびに、決まった指示を渡します。長い説明も渡します。前のやり取りも貼ります。これらは、答えを書かせる前の土台です。ここでは、まとめて前置きと呼びます。

問題は、この前置きが、ほとんど変わらないことです。それなのに、毎回、先頭から読み直していました。同じ指示を読み、同じ説明を読み、同じ土台を、また組み直していました。

これは無駄です。

そこで、前置きを一度読んだときの途中状態を、取っておきます。次に同じ前置きが来たら、それを使い回します。今回は、この節約を、下から開きます。

読み込む相は、毎回そっくり同じ

第39回で見たように、答えを作る流れには、二つの相があります。

まず、与えられた文章をぜんぶ読む相があります。ここで、前置き、問い、資料を、順番に読みます。次に、答えを少しずつ書く相があります。こちらは、直前までに読んだものを手がかりにして、次の一文字を選びます。

重いのは、長い文章を読む相です。

読む相では、文章の一つ一つの位置について、前に出てきた語や文との関係を調べます。この指示は何を縛っているのか。この説明はどの部分に効くのか。この段落は、後ろの問いにどう関わるのか。そうした関係を、層を重ねながら作っていきます。

前置きが短ければ、負担は小さいです。けれども、前置きが何千行もあれば、読むだけでかなり重くなります。しかも、決まった指示や長い説明書は、毎回同じです。

同じなら、読む相で起きる計算も同じです。先頭から同じ文字列を渡せば、同じ順番で同じ途中状態が作られます。同じ本の同じ前書きを、質問のたびに頭から読み直しているようなものです。

計算済みの途中状態を、取っておく

そこで、一度読んだ前置きを、ただ捨てません。

前置きを読み終えた時点で、本体の中には、計算済みの途中状態が残っています。これは原文そのものではありません。前置きの文字を、そのまましまった写しでもありません。

もっと内側のものです。

前置きを読んだあと、どの位置で何を見たか。どの語が、どの前の語と結びついたか。どの指示が、後ろの答えを縛る土台になったか。そうした読み終えたしるしが、数の並びとして残ります。

このしるしを取っておきます。

次に、まったく同じ前置きが来たら、もう先頭から読みません。取っておいたしるしを出します。そして、その続きに新しい問いを足し、そこから答えを書き始めます。

つまり、読み込む相を丸ごと飛ばします。第39回で分けた二つの相のうち、前置きについての読む相だけを省きます。書き出す相は残ります。新しい問いや、新しく書く答えは、その場で扱う必要があるからです。

なぜ、これがそんなに効くのか

効くのは、長くて、変わらない前置きです。

たとえば、毎回同じ仕事の決まりがあります。出力の形、避ける表現、見るべき観点、読み手の前提、使ってよい資料の範囲。こうした決まりは、問いごとに変わりません。

また、長い説明書を毎回貼る場合もあります。商品の説明、社内の規則、画面の仕様、過去の決定、調査済みの資料。問いは一行でも、その前の土台が何千行になることがあります。

このとき、毎回重いのは問いではありません。前置きです。

問いが短いなら、新しく読む量は少ないです。けれども、長い前置きを毎回読むなら、短い問いのために、巨大な土台を何度も作り直すことになります。前置きを取っておけば、二回目からは、その土台作りを省けます。

一回だけなら、得は少ないです。取っておく手間もあります。けれども、同じ前置きを十回、百回と使うなら、話は変わります。最初の一回で土台を作り、あとは使い回します。読む時間も、計算の費用も、大きく減ります。

ここでの節約は、賢く短く読むことではありません。同じものを、二度読まないことです。

当たりと、外れ ―― 一字でも違えば、やり直し

ただし、条件は厳しいです。

取っておいたしるしがそのまま使えるのは、前置きが一字一句まで同じときだけです。余分な空白が入る。日付が変わる。番号が振り直される。先頭にその日の一言を足す。これだけで、同じ前置きではなくなります。

なぜ、そこまで厳しいのか。

読み終えたしるしは、前から順に積み上げて作られるからです。先頭の一字が変われば、その位置の読みが変わります。その変化は、次の位置へ伝わります。さらに、その次へ伝わります。後ろに行くほど、前の違いを含んだ状態になります。

途中の一字が違う場合も同じです。違うところより前は、同じしるしを使えるかもしれません。けれども、違ったところから後ろは、もう同じではありません。そこから先は作り直しです。

先頭が違えば、ほぼ全部やり直しです。途中が違えば、そこから後ろがやり直しです。最後だけが違うなら、助かる部分は大きいです。

当たれば大きく得をします。外れれば、ほとんど得をしません。この仕組みは、その差がはっきりしています。

だから、固定を前に、変化を後ろに

この条件が、前置きの組み方を決めます。

変わらないものは、前に置きます。決まった指示。共通の説明。いつも使う資料。守るべき書式。これらを、先頭にまとめます。

変わるものは、後ろに置きます。その時々の問い。今日だけの追加資料。利用者ごとの指定。今だけの条件。これらは、できるだけ最後に回します。

こうすると、長い前置きの大半が、毎回そっくり同じになります。取っておいたしるしが、後ろの変わる部分の直前まで当たり続けます。読む相を省ける範囲が長くなります。

逆に、変わる一語を前に混ぜると、後ろが全部巻き込まれます。たとえば、先頭近くにその日の時刻を書くとします。その下に長い説明書を置くとします。時刻は毎回変わります。すると、その下の説明書は同じでも、途中状態としては同じになりません。長い説明書を、また読み直すことになります。

順番ひとつで、節約は生きます。順番ひとつで、節約は消えます。

第4回で見た中間状態の話とも、ここでつながります。あちらは、中間状態を圧縮して持ち回る節約でした。今回は、同じ中間状態を取っておき、もう一度作らない節約です。似ていますが、狙いは別です。

どこに、いつまで取っておくか

もう一つ、決めることがあります。

取っておいたしるしを、どこに置くか。いつまで持つかです。

ここで、第39回や補講四で見た、置き場の階層がまた出てきます。速い置き場は、すぐ取り出せます。けれども、狭くて高いです。遅い置き場は、広くて安いです。けれども、取り出すまでに余分な手間がかかります。

何度も使う前置きは、速い置き場に残す価値があります。次の問いがすぐ来るなら、取り出しの速さがそのまま効きます。

たまにしか使わない前置きは、速い置き場を占め続けると邪魔になります。ほかの前置きを置けなくなるからです。そういうものは、遅くても広い置き場へ追い出すか、捨てます。

いつまで持つかも、取引です。

長く持てば、久しぶりに来た問いにも当たります。けれども、その間ずっと場所を使います。短く捨てれば、場所は空きます。けれども、少し後に同じ前置きが来ても、もう当たりません。また最初から読みます。

だから、よく使われる前置きは温存します。しばらく使われない前置きは、頃合いを見て捨てます。温存する時間と、空けておく容量を、いつも天秤にかけます。

取っておいて、使い回す ―― そして

まとめます。

前置きを取っておいて使い回す仕組みは、毎回同じ前置きを先頭から読み直す無駄をなくす工夫です。一度読み込んだ計算済みの途中状態を取っておきます。同じ前置きが来たら、それを出します。読み込む相を飛ばし、続きから書き始めます。

ただし、効くのは、前置きが完全に同じときだけです。一字でも違えば、違ったところから後ろは作り直しです。だから、固定の部分を前に置きます。変わる部分を後ろに置きます。

さらに、取っておく場所と時間も決めなければなりません。速い置き場は狭くて高いです。遅い置き場は広くて安いです。長く持てば当たりやすくなりますが、場所を占めます。短く捨てれば場所は空きますが、後の問いには外れます。

補講十一で、底の素材を整えて鍛える話をしました。今回は、その鍛え終えた重い本体を、現場で安く速く使う話でした。前に見た中間状態を圧縮して持つ節約とは別に、同じものを二度計算しない、という節約です。

取っておいた前置きは、置きっぱなしにすると、だんだん冷えて捨てられます。温かいうちに、また使えば得をします。

では、その「また使う」は、いつ起こすのでしょうか。待つのか。間を置くのか。何かが起きたら動くのか。次は、エージェントと時間です。いつ動き、いつ待ち、いつ眠るかの話へ降ります。補講は、まだ続く。

← 一覧へ