なぜ、追いつくのが速いのか

シリーズ・第 3 回 — 「AI エージェントのためのタスク管理をつくる」。前回は全体像でした。今回は、そのグラフの読み方です。

第 1 回で「探索が約 2 倍軽い」と実測し、第 2 回で「ストアはグラフ」と示しました。今回は、その読み方 —— なぜ軽いのかを見ます。

エッジをたどるだけ

あるタスクに追いつくとき、Amenbohttps://amenbo.work/)が読むのは、そのタスク本体と、つながった数件だけです。前提になった決定、いま止めているブロッカー、コメント。どれもタスクの番号から、索引で一発でたどれます。

ストア全体をなめて回すことはありません。だから、ストアが何千件・何万件に育っても、1件に追いつく手間は変わらない —— つながった数件ぶんのままです。第 1 回で測った「約 2 倍軽い」の正体は、この読み方にあります。

タスクに追いつくときの読み取り。中心の T-123(いま追いつくタスク)を番号で引き、前提の決定 D-45、ブロッカー T-120、コメントを、それぞれ索引で一発でたどる。読むのはつながった数件だけで、ストア全体は走査しない。
追いつく=そのタスクとつながった数件を、索引でたどるだけ

状態は、保存せず導出する

「このタスクは着手できる(ready)か」「この決定はまだ現行か」——こうした状態を、Amenbo列に保存していません。読むたびに、エッジからその場で導出します。

保存しない理由は、ズレを生まないためです。もし「着手できる」を保存したら、依存や決定が変わるたびに、一覧・カード・着手ガードのすべてを更新して回らないといけない。導出なら、判定は 1 か所。同じ判定をみんなが使うので、「一覧では着手できそうなのに、いざ着手するとブロックされる」が起きません。

状態は保存せず、その場で導出する。左の入力(依存のエッジ=ブロッカーは残っているか、決定のエッジ=supersede されていないか)から、中央でその場に ready か現行かを導出する。導出された同じ判定を、右の3つ(一覧フィルタ、カード表示、着手ガード)が共有するので、表示と判定がズレない。
状態はグラフから都度導出。1つの判定を、一覧・カード・着手ガードが共有する

次回

第 4 回:AI の活動範囲を、構造で区切る です。プロンプトのお願いではなく、.amenbo を境界に「読めない・書けない」を仕組みでつくる話をします。

☕ チップを送る