本文へスキップ

← ブログ

リリースの話

Chimera Agent 0.85.0: 沈黙のハングを解消し、ブラウザがペアリング可能に

子プロセスから継承されたパイプによる実行ハングを修正、ワンタイムコードによるブラウザペアリング、チャットボット向けローカル音声、名前付きOpenAI互換エンドポイントを追加。

私たち自身のリリースについて、私たち自身が書いた文章です。 GitHub でリリースを読む →

終わらなかった実行

子プロセスが出力パイプを開きっぱなしにしていると、エージェントが無期限にハングしていた。リーダーはパイプが閉じるのを無制限に待ち続けた。パイプを継承した孫プロセス——テストランナーのワーカーやバックグラウンドサーバー——が、実行、キャンセルボタン、テストスイートを永遠に待たせていた。プロセスツリーが生き続けるためキャンセルボタンは無効で、テストスイートはデッドロックを報告せずに沈黙のままフリーズしていた。

これが0.85.0で変わる。出力リーダーは独自のスレッドで動作し、子プロセス終了後に5秒の猶予期間を持つようになった。実行をキャンセルすると、ChimeraはPOSIXではプロセスグループ全体を、Windowsではプロセスツリーを強制終了する。テストスイートもフリーズの壁の後ろに隠れるのをやめた。単一のテストが15分を超えて実行された場合、スイートは無言でロックアップする代わりに全スレッドのスタックトレースをダンプする。空白のターミナルではなく、診断情報が得られる。

この修正が最も重要になるのは、独自のサブプロセスを生成するツール——テストフレームワーク、ビルドスクリプト、バックグラウンドでサーバーをフォークするあらゆるコマンド——を連鎖させる場合だ。以前は、そのような実行は回復不能だった。今は、キャンセルは本当にキャンセルを意味する。

ポートを開かずにブラウザタブをペアリング

これまで、ブラウザタブに所有者の画面へのアクセスを許可するには、ブリッジかチャットチャネルを公開する必要があった。どちらの経路も必要以上の攻撃対象領域を持っていた。バージョン0.85.0では、それらを完全に排除するペアリングフローが追加された。

デスクトップアプリは8文字のコードを表示し、これは5分間かつ5回の試行まで有効だ。それをブラウザタブに入力する。そのタブはHttpOnly、SameSite属性のCookieを受け取り、最大12時間有効で、デスクトップからいつでも無効化できる。コードを発行できるのはデスクトップのみで、ブリッジやチャットチャネルは発行できない。ペアリングされたタブは、ブリッジを有効にしたり、完全な制御を有効にしたり、「権限を無視」をトグルしたりすることはできない。そこからの状態変更リクエストはすべて、同一オリジンから発信されなければならない。

これにより、時間制限付きで、無効化可能で、低権限な、所有者の画面への窓が手に入る。必要な時にタブをペアリングし、不要になったら無効化する。その間ずっと、ブリッジはオフのままだ。

音声メッセージがローカルで処理され、エンドポイントに名前が付く

DiscordとTelegramのボットが音声メッセージを聞き取り、音声で応答できるようになった。どちらもユーザーのマシン上で行われる。音声ノートは、固定されたモデルリビジョンを使用するfaster-whisperでローカルに文字起こしされる。デコード前に音声の長さがチェックされ、ユーザーごとのレート制限が悪用を防ぐ。音声による返信はデフォルトでオフだ。有効にするには、自身で選んだPiper音声の.onnxファイルをCHIMERA_CHAT_VOICE_MODELに指定する。Chimeraは音声モデルを同梱しておらず、piper-tts(GPL-3.0)は[full]の外にある、別個のvoiceエクストラとして存在する。音声はオプトインであり、音声モデルはユーザーが用意する。

OpenAI互換エンドポイントも第一級の扱いを受けるようになった。「設定 › 接続」にエンドポイント——ローカルのvLLM、LM Studio、llama.cppサーバー、またはホストされたもの——が一覧表示され、追加、テスト、削除が可能だ。テストは、そのエンドポイントに対してのみ、制限付きのGET /models呼び出しを1回行う。エンドポイントの変更やテストができるのは所有者の画面のみで、キーが表示されることは決してなく、エンドポイントのキーはそれ自身の*_API_KEY変数でなければならず、他のプロバイダーの認証情報やCHIMERA_設定であってはならない。これにより、#1133で長らく要望されていた機能が実現される。

今すぐやるべきこと

pip install chimera-agent --upgradeでアップグレードする。詳細なノートはChimera Agent v0.85.0で読める。チャットボットを使用していて音声が必要なら、voiceエクストラをインストールし、CHIMERA_CHAT_VOICE_MODELに自身のPiperモデルを設定する。ブラウザタブをペアリングするには、デスクトップアプリを開き、所有者の画面コントロールでペアリングコードを探す。

https://chimeraagent.space