エージェントのあらゆる行動はイベントです。繰り返されるものはコードになり得ます。
Waggle は、エージェントのあらゆる行動、あらゆる受信 Webhook、そして人によるあらゆる判断を、何かが起きる前にひとつの永続的なイベントログへ通します。エージェントの行動が見えなくなることはなく、繰り返されるものが永遠にモデル呼び出しのままである必要もありません。
Webhook の迷路ではなく、ひとつのイベントログ
エージェントのあらゆる行動、あらゆる受信 Webhook、そして人によるあらゆる判断は、どこかへルーティングされる前に、永続的でリプレイ可能なイベントログ上のひとつのエンベロープになります。
インジェスト
Webhook、cron の実行、あるいはエージェント自身の出力が、ひとつの入り口に到着します。生のボディとヘッダーは届いたままの形で保持され、イベントには先へ進む前にテナント、プリンシパル、信頼レベルが刻印されます。
永続的なログ
イベントは永続的でリプレイ可能なイベントログに追記されます。たとえばタイムアウト後に再送された Webhook のような同一イベントの重複配信は認識され、二重に処理されることなく破棄されます。
決定的なルール
テナントごとに1つのルーティングルールファイルが、イベントをソース、タイプ、信頼レベルに照らして照合し、行き先を決めます。最初に一致したルールが採用され、ひとつのルールが複数の宛先へファンアウトすることもできます。
宛先とトレース
イベントは、ある人の受信箱、別のエージェント、送信 Webhook のいずれかへ配信されるか、意図的に破棄されます。すべてのホップが記録されるため、誰でも到着から配信までイベントを後からたどれます。
内部では、バスは組み込みの NATS JetStream で、EVENTS と ROUTES という2つのストリーム上で動きます。ルーティングルールはテナントごとに1ファイルの TOML で、ファイルが変わると自動的に再読み込みされます。同一イベントの重複配信はメッセージ ID によって2時間認識されます。
エージェントの行動に実際に起きていること
これは宣伝文句ではなく、Waggle が動いているファブリックについての事実です。
エージェントのあらゆる行動はイベントである
エージェントが何を発言し、何を求め、人が何と答えたかは、すべて同じ方法で、同じログに記録されます。
生のインジェストは保持される
Webhook が実際に送信した内容、ボディとヘッダーは、解析後に破棄されることなく、正規化されたイベントとあわせて保持されます。
配信は冪等である
再送された Webhook や再配信されたメッセージは認識され、二重に処理されることはありません。
すべてのイベントをトレースできる
その発生元、一致したルール、配信されたかどうかは、複数のシステムをまたいで探すのではなく、ひとつの照会で分かります。
人の判断を待つ行動もある
エージェントが認証情報の利用を求めたり、新しいエージェントを提案したりする行動は、何かが起きる前に立ち止まり、承認または却下のカードを人に示すイベントになります。
Webhook は双方向に働く
イベントは、正規化されたエンベロープとして、あるいは元のリクエストをそのまま、指定した URL へ送り返すこともできます。
パターンが安定したら、モデル呼び出しをやめられる
エージェントの行動は、ルーティングされた後に消えてしまうわけではありません。何が起きたか、何に一致したか、どこへ送られたかという、毎回同じ種類の記録としてイベントログに残ります。同じパターンが何度も現れれば、その繰り返しは書き起こしの中に埋もれるのではなく、ログそのものの中に見えています。
繰り返されるパターンをルールや小さな決定的ハンドラーに変えるのは、今日、当社のエンジニアがお客様と一緒に行う作業です。トレースを読み、ルーティングルールを編集するか、コードパスを手で書きます。Waggle がパターンを自動的にルールへ昇格させることはなく、ここに自動学習の仕組みはありません。イベントファブリックが与えてくれるのは、パターンを見つけるための可視性と、答えが見つかったときにそれを受け止めるルールエンジンです。
ルールの一致や小さなハンドラーは、モデルを呼び出すことなく、ルーターから直接応答します。お客様のケースでそれがどれだけの節約になるかという割合はお示しできません、それはパターン次第だからです。ただし決定的な経路は、別のエージェントのターンのように、接続したモデルのサブスクリプションに対するタスク課金を発生させません。
CTO がまず尋ねること
行動をルールに変えるのは自動ですか?
いいえ。イベントログを読み、ルールエンジンを使って、当社のエンジニアがお客様と一緒に行います。今日の Waggle には、行動を自動でルールに昇格させる仕組みはありません。
具体的に何が記録されますか?
エージェントのあらゆる行動、ワークスペースに届くあらゆる Webhook、人によるあらゆる判断が、何が起きたか、何に一致したか、どこへ配信されたかという同じ種類の記録として記録されます。Webhook の生のボディとヘッダーも保持されます。
ひとつのイベントを複数の宛先に届けられますか?
はい。ルールの宛先はリストにでき、それぞれが独自の配信とトレース上の独自のホップを持ちます。
人の判断が必要な行動はどうなりますか?
たとえば認証情報の利用要求や新しいエージェントの提案のように、その人の受信箱のカードになります。そしてその判断自体も同じログ上のイベントとして記録されます。
これは Waggle とは別の製品ですか?
いいえ。これは app.hachiflow.com/waggle のビルダーを動かしているのと同じ、Waggle 自身のイベントファブリックです。これを手に入れるために別途購入するものはありません。
あなたのアーキテクチャについて相談しませんか。
お客様のエージェントがすでに何度も繰り返していることを教えてください。私たちは一緒にトレースを見て、何かを作り始める前に、ルールや小さなハンドラーが合うかどうかを正直にお伝えします。