Claude Code上に音声制御マルチエージェントシステムを構築する

r/ClaudeAIの開発者が週末プロジェクトとして、macOS上のClaude Codeに音声制御機能を追加しました。ウェイクワード、WebRTC音声ループ、マルチエージェントオーケストレーションシステムを完備。利便性を追求したハックから始まり、リードエージェントがタスクを分解し、サブエージェントを募集して並列実行し、自動トリガーでQAを実施するシステムへと進化しました。
動作の仕組み
- ウェイクワード:「Yabby」で音声ループを起動。Siriなどのアシスタントとの競合を避けるため、カスタムウェイクワードを採用。
- 音声ループ:WebRTCでリアルタイム音声ストリーミングを処理。AnthropicのRealtime APIを使用して音声認識と音声合成を実現。目標レイテンシは300ms未満だが、APIの遅延が発生することも。
- リードエージェント:音声リクエストを受け取り、調査フェーズを実施してプロジェクト計画を作成。マネージャー1名とサブエージェント2~3名からなるチームを編成し、実行手順を割り振る。
- 並列実行:可能な限りサブエージェントを並列実行し、順次実行が必要な場合は逐次処理。各エージェントは個別のスレッドでClaude Code CLIセッションを持ち、会話が混ざらない。
- 自動QA:サブエージェント終了後、5秒のデバウンスを経てレビューパスが起動。テスト中、あるエージェントが別のエージェントのバグを検出する創発的な動作が発生。
- 計画承認モーダル:エージェント実行前にモーダルが表示され、ユーザーが計画を確認できる。未検証のアクション実行を防止。
課題点
- 話者認証:話者埋め込みのコサイン類似度を使用。閾値調整が難しく、厳しすぎると風邪の時にユーザーを拒否、緩すぎると部屋内の誰でもコマンドを実行可能。
- ロケール問題:コード作成時のデフォルトがフランス語。現在修正中。
- バックグラウンドタスクのライフサイクル:親プロセスのClaude Code CLIが終了すると、バックグラウンドタスクが停止。OSレベルのPID監視機能と追跡用シェルスクリプトで、長時間稼働サーバーのクラッシュを検出。
- 過剰な計画立案:ファイル名変更のような簡単なリクエストに対しても、リードエージェントが4フェーズのプロジェクト計画を作成することがある。
未解決の疑問
開発者は現在、QAフェーズの冗長性削減、サブエージェントによる再帰的委任の有無、Realtime APIの不安定時における300ms未満の音声レイテンシ維持に取り組んでいる。また、Anthropic公式の音声モード(ユーザーの5%に展開中)がマルチエージェント連携をどう処理するかにも関心を示している。
📖 全文ソース: r/ClaudeAI
👀 See Also

ClaudeのHTML出力ページ用ローカルホストダッシュボード(ライブリロード対応)
Claude AIが生成したすべてのHTMLページを集約する小さなlocalhostホームページ。ライブリロード、更新インジケーター、プレビュー画面を備え、エージェントがシンボリックリンクでページを登録できます。

GitHubのSpec-KitとClaude Codeを2ヶ月使ってみて: 有効な点、改善が必要な点
開発者がGitHubのSpec-Driven DevelopmentツールキットをClaude Codeで使用した実践的なノートを共有。5フェーズのワークフロー、ドリフト問題、オーバーヘッドのトレードオフ、セットアップのコツをカバー。

DELIGHT: ローカルオーケストレーターが複数のChatGPTセッションを連携エージェントとして活用
DELIGHTは、複数の隠れたChatGPTブラウザセッションを同時に実行し、それらをエージェントチームのように調整するローカルオーケストレーターです。APIキーやGPUリソースを必要とせず、OpenClawにアクションレイヤーとして接続して実際のファイルに変更を加え、テストを実行します。

Claude Codeユーザーが、読み取り専用の会話用に/discussコマンドを作成しました。
Claude Codeユーザーが、会話中に「変更を加えないで」と繰り返し入力する煩わしさを解消するために、/discussというカスタムスキルを開発しました。この25行のスキルは、ファイル変更を引き起こさずに、アーキテクチャの決定、コードの探索、ブレインストーミングについて議論するための読み取り専用モードを作成します。