生産環境向けのGo言語Agentフレームワークであるcovonautは、また一つ信頼できる同僚のように磨き直されました。最新版のv1.1.4では、ローリングツール実行プールやマルチモーダルな読み取り機能、そしてセキュリティと隔離に関する一連の強化が追加され、すべてが純粋にGoで実装されており、MITライセンスを使用しています。Agentのメインループ、ツール呼び出し、図編成、および複数プロトコル間の相互運用性をカバーしています。最も嬉しいのは、開発者がv1.1.4にアップグレードする際にはインターフェースコードを一切変更する必要がなく、新機能は即座に使用可能になることです。
今回の変更の中心はスケジューリングです。これまでの並列実行は戦略を考慮しない請負業者のように、一度にすべての呼び出しを開始し、その後并发制限で順番待ちしていました。遅いツールが長時間枠を占有し、後の作業を妨げていました。v1.1.4では単一のローリングプールスケジューリングに変更され、呼び出しがモデルが示す順序に厳密に開始され、空いた枠にすぐに補うようにしました。これにより、遅い呼び出しが後続の並列可能なタスクを遅らせることがなくなりました。並列不可能な呼び出しの場合、プール内の実行中のタスクを一旦終了させた上で、個別にインラインで実行し、シリアルバッファを形成します。モデルが見ている返還順序は常にシリアル実行と完全に一致しており、各呼び出しは独立してpanicをキャッチし、単一のツールのクラッシュが同じグループ内の他の呼び出しに影響を与えないようにしています。スケジューリングの厳しさは、ツール自体の並列安全性宣言と実行モードによって決定されます。並列モードは最も柔軟で、明確に並列非対応と宣言されたツールのみが隔離されシリアルで実行されます。今回の新規追加されたハイブリッドモードはさらに保守的で、宣言されていないまたは宣言が不明なタスクはすべてシリアルで実行され、開発者はツールエコシステムの信頼性に基づいてどちらかを選択できます。それに伴って、ツール結果のマルチモーダルなコンテンツチャネルも追加され、スクリーンショットなどの豊富なコンテンツが、マルチパート返還をサポートするモデルに透過的に渡されるようになりました。サポートしていないサービスでは自動的にテキストのみに降格されます。
読み取りツールは今回、多面手の属性を完全に獲得しました。以前はテキストだけを認識していたものが、拡張子やコンテンツ特徴に応じてテキスト、画像、PDF、Jupyter Notebook、動画の5つの処理経路に自動的に分岐するようになり、ローカルパスやネットワークリンクを直接入力することができます。テキストとNotebookは行またはセル単位でページ分割が可能です。Notebookは読みやすいテキストにレンダリングされます。画像は最大8つの対象を一度に送信でき、質問に焦点を当てた説明を添えることができます。PDFはページ範囲、最大ページ数、メタデータのみ取得の3種類の使用方法をサポートしています。動画はフレーム抽出数と時間ウィンドウを指定できます。豊富なメディア処理ロジックは挿入可能なコールバック形式で提供され、接続されていない場合でも明確なヒントを表示するようにし、静黙的な失敗を防ぎます。テキストが切り取られるときには末尾に継続読み込み位置のヒントが付随し、モデルはその場所から読み続けることができ、コンテンツを失いません。本当に二進ファイルは上記文脈に押し込められることなく、フォーマット識別結果をただ返却します。
運用担当者にとって最も安心なのは、削除操作がシステムのゴミ箱に統一されていることです。削除ツールとシェルの削除コマンドは、ファイルを永続的に破壊しなくなり、プラットフォームに応じてゴミ箱に移動します。macOSではゴミ箱を訪問し、異常時はユーザーのごみ箱に戻ります。Linuxではfreedesktopのゴミ箱インターフェースを優先し、失敗時は手動でゴミ箱ディレクトリに移動します。Windowsではシステムのゴミ箱に移動します。同名の衝突は自動的にタイムスタンプのサフィックスを追加して上書きを防ぎ、組み込まれたセキュリティのバリアがファイルシステムのルートディレクトリ、現在の作業ディレクトリ、ユーザーのホームディレクトリを明確に拒否し、あらゆる状況下でも永久削除には退化しません。コマンド側ではシェルの構文木を解析し、トップレベル、単純な、パスが文字列リテラルである削除コマンドのみをブロックします。複合コマンド、変数の結合があるパス、リダイレクトを含む文は、真のシェルに引き渡し、無作為に実行します。消去や粉砕など、元に戻せないコマンドは直接ブロックされ、代替の復元可能な方法への変更を促します。
隔離と強化も十分に行われています。シェルのサブプロセスとチャット画面は完全に分離され、制御端末やマウスのフォーカス、ジョブコントロールを継承しなくなり、画面内でvimやlessのようなインタラクティブなプログラムを実行してもレンダリングを乱しません。フレームワークはJSON Schemaに従って構造化された出力を検証する能力を追加し、モデルのJSONモードの返還とツールの出力パラメータに再利用されています。ネットワーク検索の認証なしのバックエンドは、実行領域に応じて自動的に調整され、中国語環境ではBingを優先し、その他の環境ではDuckDuckGoを優先します。領域は環境変数、システム言語、タイムゾーンから推測されます。さらに、明示的に有効にする必要がある永続的なターミナルツール群が追加され、偽擬端子に基づいて、作業ディレクトリ、エクスポート変数、およびバックグラウンドジョブを複数の呼び出し間に保持し、毎回新しいプロセスを生成する方法とは異なります。デフォルトで同時アクセス数を制限し、各セッションに対してロールオーバー出力バッファを維持します。
v1.1.4にモジュールのバージョンを指定するだけでアップグレードできます。今回は破壊的なインターフェースの変更はありません。唯一注意すべき点は、並列モードのスケジューリングの意味論が全量並列からローリングプールと緩やかな准入に変更されたことです。保守的なスケジューリングを維持したい場合は、新たに追加されたハイブリッドモードを使用し、ツールの並列安全性宣言を補完してください。
VIP会員