voice-agent-expert
This skill is a practical, 'use-it-while-debugging' reference for getting a LiveKit + Letta voice agent working reliably.
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o voice-agent-expert.zip https://jpskill.com/download/18973.zip && unzip -o voice-agent-expert.zip && rm voice-agent-expert.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/18973.zip -OutFile "$d\voice-agent-expert.zip"; Expand-Archive "$d\voice-agent-expert.zip" -DestinationPath $d -Force; ri "$d\voice-agent-expert.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
voice-agent-expert.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
voice-agent-expertフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 5
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Voice Agent Expert – デバッグチートシート (スキル)
このスキルは、LiveKit + Letta 音声エージェントを確実に動作させるための、実践的な「デバッグ中に使う」リファレンスです。
コアルール (問題の90%を解決します)
-
適切なLiveKitフックをオーバーライドする
- フレームワークは
llm_nodeを呼び出し、generate_replyは呼び出しません。 - 間違ったメソッドをオーバーライドすると、変更が実行されず、エージェントは「生きているように見えても」テキストを正しくルーティングしない場合があります。
- フレームワークは
-
音声エージェントプロセスは一度に1つしか実行できません
- 重複するプロセスは一般的に以下の原因となります。
- タイムアウト
- 音声の途切れ
- 一貫性のない動作 (あるプロセスのログを見ている間に、別のプロセスが実際にサービスを提供している)
- 重複するプロセスは一般的に以下の原因となります。
-
ローカルテストには
devモードを使用するstartはディスパッチを待機し、「壊れている」ように見えることがあります。- ローカルで積極的にテストしている場合は、
devモードが高速パスです。
核のリセット (行き詰まったとき)
物事が停滞したり、タイムアウトが発生したり、音声が途切れたりしたときにこれを実行してください。 古いプロセスを強制終了し、LiveKitを開発モードで再起動し、その後Letta音声エージェントを再起動します。
pkill -9 -f letta_voice_agent.py
pkill -f livekit-server
sleep 2
cd /home/adamsl/ottomator-agents/livekit-agent
nohup ./livekit-server --dev --bind 0.0.0.0 > /tmp/livekit.log 2>&1 &
cd /home/adamsl/planner/a2a_communicating_agents/hybrid_letta_agents
/home/adamsl/planner/.venv/bin/python3 letta_voice_agent.py dev > /tmp/letta_voice_agent.log 2>&1 &
生きているか?チェック (最速のシグナル)
-
LiveKitが応答しているか (単に「リッスンしている」だけでなく)
curl -v http://localhost:7880/ 2>&1 | head -20これがハングアップしたりタイムアウトしたりする場合は、LiveKitがスタックしています → 再起動してください。
-
重複する音声エージェントプロセスがないことを確認する
ps aux | grep letta_voice_agent | grep -v grep正確に1つだけ表示されるはずです。
-
Lettaルーティングが実際に使用されていることを確認する
llm_nodeがヒットしていることを示す 🎤 マーカー (または同等のロギング) がログに表示されるか監視してください。
よくある落とし穴
WebSocketの二重スラッシュ問題
ブラウザが以下を試行する場合:
ws://127.0.0.1:7880//rtc
代わりに以下を使用してください:
ws://localhost:7880
理由: クライアントアプリが /rtc を追加し、一部の設定では二重スラッシュが生成されてしまうためです。
コードの変更が反映されない
- 実行中のプロセスを強制終了して再起動するまで、編集は適用されません。
- コードを編集しても何も変わらない場合は、古いプロセスが実行されていると仮定してください。
Letta Desktopにメッセージが表示されない場合
最も一般的な原因:
- 間違ったメソッドをオーバーライドした (
llm_nodeの代わりにgenerate_reply) - 古いプロセスがまだ実行されている (編集がライブではない)
- セッションLLMがLettaルーティングをバイパスしている
推奨される修正フロー
- コードで
llm_nodeを検索し、オーバーライドが適切に行われていることを確認してください。 - 実行中のすべてのエージェントプロセスを強制終了してください。
- 上記の「核のリセット」セクションを使用して、クリーンに再起動してください。
- ログをテールし、🎤 マーカーが表示されることを確認してください。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Voice Agent Expert – Debugging Cheat Sheet (Skill)
This skill is a practical, "use-it-while-debugging" reference for getting a LiveKit + Letta voice agent working reliably.
Core rules (fix 90% of issues)
-
Override the right LiveKit hook
- The framework calls
llm_node, notgenerate_reply. - If you override the wrong method, your changes won't run and your agent may "look alive" but never route text correctly.
- The framework calls
-
Only ONE voice-agent process can run at a time
- Duplicate processes commonly cause:
- timeouts
- audio cutting out
- inconsistent behavior (you're looking at logs from one process while another is actually serving)
- Duplicate processes commonly cause:
-
Use
devmode for local testingstartcan sit waiting for dispatch and look "broken."- If you're actively testing locally,
devmode is the fast path.
Nuclear reset (when it's just stuck)
Run this when things are wedged, timeouts are happening, or audio is cutting out. It kills old processes, restarts LiveKit in dev mode, then restarts the Letta voice agent.
pkill -9 -f letta_voice_agent.py
pkill -f livekit-server
sleep 2
cd /home/adamsl/ottomator-agents/livekit-agent
nohup ./livekit-server --dev --bind 0.0.0.0 > /tmp/livekit.log 2>&1 &
cd /home/adamsl/planner/a2a_communicating_agents/hybrid_letta_agents
/home/adamsl/planner/.venv/bin/python3 letta_voice_agent.py dev > /tmp/letta_voice_agent.log 2>&1 &
Is it alive? checks (fastest signals)
-
LiveKit responding (not just "listening")
curl -v http://localhost:7880/ 2>&1 | head -20If this hangs or times out, LiveKit is stuck → restart it.
-
Confirm you don't have duplicate voice-agent processes
ps aux | grep letta_voice_agent | grep -v grepYou should see exactly one.
-
Confirm Letta routing is actually being used Watch your logs for your 🎤 marker (or equivalent logging) that proves
llm_nodeis being hit.
Common gotchas
WebSocket double-slash problem
If the browser tries:
ws://127.0.0.1:7880//rtc
Use instead:
ws://localhost:7880
Reason: The client appends /rtc, and some configs end up producing a double-slash.
Code changes not taking effect
- Edits don't apply until you kill + restart the running process.
- If you edited code and nothing changed, assume you're running an old process.
If messages aren't showing up in Letta Desktop
Most common causes:
- You overrode the wrong method (
generate_replyinstead ofllm_node) - An old process is still running (your edits aren't live)
- The session LLM is bypassing Letta routing
Recommended fix flow
- Search your code for
llm_nodeand confirm your override is in place. - Kill all running agent processes.
- Restart cleanly using the Nuclear reset section above.
- Tail logs and confirm you see your 🎤 marker.
同梱ファイル
※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (3,094 bytes)
- 📎 README.md (5,778 bytes)
- 📎 scripts/diagnose_voice_system.py (4,425 bytes)
- 📎 scripts/generate_token.py (1,943 bytes)
- 📎 scripts/start_voice_system.py (3,213 bytes)