AI News HubLIVE
サイト内リライト3 分で読了

Show HN: Concord、いくつかのオープンソースのもの

Concord コグニティブエンジンのPRは、ベアメタル展開、接続切断、LLMパイプラインの安定性、運用耐久性の問題を修正し、静的アセットの永続化、状態保存の最適化、セキュリティ脆弱性の修正、GPUメモリ管理を含みます。

ソースHacker News AI著者: dutchtropez

最近、Concord コグニティブエンジンプロジェクトは、Docker からベアメタル展開への移行で発生した一連の問題に対処する重要なPRをリリースしました。このPRは、インフラストラクチャ、パフォーマンス、セキュリティ、信頼性にわたる複数の改善を含んでおり、複数のウェーブに分けて段階的に実施されました。

最初のウェーブでは、ベアメタル展開のブロッカーが解決されました。まず、静的アセットが読み込めないバグを修正し、Next.js フロントエンドが起動時に静的ファイルを正しくスタンドアロンバンドルにコピーするようにしました。次に、Cloudflare トンネルの設定を修正しました。以前は環境変数名の誤り(CF_TUNNEL_TOKEN が読み取られず)によりトンネルが静かに起動しませんでしたが、CLOUDFLARE_TUNNEL_TOKEN に変更し、イングレスルールを書き換えて /socket.io、/godot-ws、/api をバックエンド :5050 に直接ルーティングし、その他をフロントエンド :3000 に送るようにしました。また、システムサービス設定を最適化し、再起動後の永続性を確保しました。pm2 resurrect では5つの Ollama ブレインを復元できないため、startup.sh を再実行する方法を採用しました。新たに bootstrap.sh を追加し、新規マシンのワンクリックデプロイを可能にしました。さらに、埋め込みモデルを専用のユーティリティインスタンスに移動し、推論用のVRAMを占有しないようにしました。以前は埋め込み呼び出しごとに約9GBの14Bモデルがアンロードされ、チャット時に頻繁なコールドリロードが発生していました。

第2ウェーブと第3ウェーブでは、接続切断の問題とセキュリティ改善に重点が置かれました。バックエンドでは、2分ごとに無条件で実行されていた全状態セーバー(毎回約28MBのシリアライズ、SQLite書き換え、WALチェックポイント、1日あたり約40GBのディスク書き込みとイベントループブロッキング)を削除し、変更シーケンスに基づく5秒の先行ウィンドウマージ機構に置き換え、定常状態のシリアライズ回数を約20分の1に削減しました。重要な状態保存にはレート制限(2秒ウィンドウ+追従キャッチアップ同期)を追加し、マーケットプレイス購入のバースト時に毎回全量シリアライズされないようにしました。強制ガベージコレクションも削除され、イベントループブロッキングの悪化を防ぎました。Godot ゲートウェイの ping 検出は、2回の pong 欠落(約50秒)を許容するように調整し、以前イベントループ遅延により全 Godot クライアントが誤って切断されていた問題を解決しました。フロントエンドの接続状態検出は、プロキシによってバイパスされる可能性のある /health ポーリングに依存せず、ソケットの onConnectionLost/onReconnected ライフサイクルを使用するようになりました。セキュリティ面では、ユーザーがジョブキューを介して送信したタスクが内部コンテキスト権限を取得し、権限チェックをバイパスできる脆弱性を修正しました。ユーザージョブは自身の権限のみで実行されます。また、本番環境でレート制限バイパスを無効化し、/metrics エンドポイントにトークン保護を追加し、Stripe Webhook パスをレート制限から除外しました。

第4ウェーブでは、LLMパイプラインの安定性が向上しました。埋め込みモデルが14B意識ブレインを追い出さないようになりました(既に第1ウェーブで対処済み)。重要な改善点として、すべての Ollama 呼び出しパスで num_ctx パラメータを明示的に送信するようになりました。以前はどのパスでも送信されておらず、Ollama のデフォルト(2k/4k)が使用されていたため、プロンプトが切り詰められていました。VRAM 予算も再計算され、KV キャッシュが設定されたコンテキストサイズに正しくスケールするようになりました。以前は過剰に割り当てられていたVRAM(16384 MB)は、実際の数値に基づいて8192 MBに戻されました。ルーティングでは、ctx.llm.chat がローカルルーティングでリクエストされたスロットを尊重するようになり、ユーティリティやサブコンシャス向けの処理が14B意識モデルを消費しなくなりました。ストリーミングチャット(デフォルトのチャットUX)は、BYOK と _llmQueue を介して CRITICAL 優先度で実行されるようになりました。LLMキューは CRITICAL 用に1つの並行スロットを予約し、バックグラウンドタスクが全スロットを占有してライブチャットリクエストが待たされるのを防ぎます。

第5ウェーブでは、運用耐久性が強化されました。ヘルスチェックに、ハングしているがオンラインのプロセスを強制再起動するメカニズムが追加され、10分の猶予期間(移行中の中断防止)と5分のクールダウン(頻繁な再起動防止)が設定されました。マイグレーション番号の解析が修正されました。以前の正規表現は3桁のみにマッチし、4桁になると誤ってスキップされていましたが、可変幅キャプチャと数値ソートを使用するように修正されました。SQLite のページサイズ設定の誤りが修正されました。以前は WAL モード後に page_size を設定していましたが(実際には無効)、この設定を削除し、wal_autocheckpoint を再計算しました。また、ハードコードされた busy_timeout を持つ2つのデータベースハンドルが修正されました。アラート Webhook 設定は単一の変数 ALERT_WEBHOOK_URL に統合されました。

これらの修正により、ベアメタル環境における Concord の安定性とセキュリティが大幅に向上し、今後の開発の強固な基盤が築かれました。