0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

oh-my-agent: 共有Serenaデーモンと上限付きリトライループ

0
Posted at

今週は CLI を 15.0.2 から 15.0.6 まで 5 回リリースしました。テーマは、長時間動くエージェントを行儀よく保つことです。余計なプロセスを減らし、メモリ使用量に上限を設け、リトライループが止まるタイミングを判断できるようにしました。

20 コミット、69 ファイル、追加は約 3,700 行です。大半は、すべてのエージェントが依存するコード検索バックエンド Serena を oh-my-agent がどう管理するかに費やしました。

新機能

  • マネージド Serena ランタイム: バージョンで制御された Serena アダプターをインストールし、ファイル単位の SQLite シンボルキャッシュを持たせました。Python がワークスペース全体のシンボルツリーをメモリに保持することはなくなります
  • oma serena check: Serena の設定を検証し、共有デーモンに対して Dart のチェックを実行する新コマンド。スクリプトから扱える終了コード付き
  • デーモンの定期クリーンアップ: アイドル状態の共有 Serena デーモンを、独立した定期タスクが回収します。登録済み PID にシグナルを送る前にプロセスの同一性を確認するため、再利用された PID を誤って kill することはありません
  • マネージド Dart 診断: パッケージ診断が、マネージドな Dart language server を再利用します。共有デーモンの起動時や置き換え時には、アダプターのリビジョンを記録します
  • doctor レポート: oma doctor が Serena アダプターの状態を、ターミナルのフッターと JSON レポートの両方に出力

修正

  • Serena スタックの重複: 共有サーバーに接続できない場合、プライベートな Serena スタックを新たに起動せず、接続失敗をそのまま報告します。マネージドコンテキストはレジストリ検索の前に正規化します
  • 負荷時のデーモン置き換え: クライアントが接続中にランタイムのリビジョンが変わった場合は、稼働中のデーモンを使い続け、置き換えは全クライアントの切断を待ちます。アクティブ、ビジー、旧リビジョンの各ケースをテストでカバーしています
  • Dart 解析の先行実行: Dart の既定を、ファイルを開いたときに解析する設定に変更しました。SDK バージョンが未設定なら、ローカルの stable SDK のバージョンを使います
  • オーケストレーションのリトライが無制限になる問題: プランはディスパッチ時に固定し、リトライはワークフローの系譜と論理ゴール単位で数えます。証拠の失敗とプロダクトの失敗を分離し、メタデータ欠落には、プロダクトのプランニングをやり直さずに 1 回だけ修復を試みます
  • 不安定なチェック: ブリッジのタイムアウトテストは、実行時間ではなく保護対象ブリッジのレスポンスを検証するようにしました。境界スキャンは、TypeScript ワーカーの一時的な終了をリトライします

改善

  • 静かな更新: oma update は、変更された Hyperframes コンポーネントを表示し、修復したリンクの重複を除き、最後にバージョンの要約を 1 つだけ出します。不正確なファイル総数と定型の通知は出なくなりました
  • モジュール境界の整理: Serena の設定検証を共有 I/O レイヤーへ移したので、serena check とセットアップはブリッジのコマンドスライスを import しません。挙動は変わりません
  • 検証: 重複サーバーの修正は、影響を受ける 211 件のテスト、型チェック、lint、境界チェックに加え、Serena 1.7.0 と Dart 3.13.4 でのシンボル検索と定義検索のスモークテストで確認しました
  • ドキュメントとテスト: integrations/serena/README.md を拡充し、Dart アダプター、インストーラー、シンボルキャッシュ向けの Python テストを追加しました

インストール

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1 | iex

リンク

oh-my-agent は、プロンプトを書くよりオーケストレーションに時間を使うチームのためのツールです。次は長時間のオーケストレーション実行まわりのガードレールを強化し、行き詰まったゴールがループせず早めに失敗するようにします。


原文(英語): https://dev.to/gracefullight/oh-my-agent-shared-serena-daemons-bounded-retry-loops-4g6

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?