OpenClaw型パーソナルAIエージェント
デジタル秘書として動く自律型AIエージェント。Slack、Googleカレンダー、GitHub、メールに直接つながり、簡単な自然言語の指示だけで日々の業務フロー全体を処理する。

担当領域
設計から運用まで一貫して担当。エージェントグラフのトポロジー設計、7つのサブエージェントの実装、リアルタイムUIの構築、本番インフラのデプロイまで手がけた。
期間
3か月
年
2026
技術スタック
ステータス
稼働中デジタル秘書として動く自律型AIエージェント。Slack、Googleカレンダー、GitHub、メールに直接つながり、簡単な自然言語の指示だけで日々の業務フロー全体を処理する。
経営層は1日3時間以上を、会議の調整、メールの仕分け、CRMの更新、複数ツール間の連携といった繰り返し作業に費やしている。Zapierのような既存の自動化ツールは単純な条件分岐なら処理できるが、文脈を理解したり、優先順位を賢く判断したり、判断とツール横断の調整を伴う複数ステップの業務をこなすことはできない。
LangGraphのsupervisionグラフを使い、階層型のマルチエージェントシステムを構築した。中央のオーケストレーターが自然言語を解釈して依頼をサブタスクへ分解し、7つの専門エージェントへ並列に委譲する。pgvectorを基盤にした永続的な記憶層でユーザーの好みを学習し、$500を超える取引やコード変更といった高リスクな操作にはヒューマンインザループの承認を挟む。
階層型エージェントのオーケストレーション
LangGraphのsupervisionグラフが7つの専門サブエージェント(カレンダー、移動、コミュニケーション、コード、CRM、リサーチ、管理業務)を統括し、タスクの分解と並列実行を自動で行う。
ヒューマンインザループの承認
高リスクな操作には設定可能な承認ゲートを置く。$500を超える取引、コードのpush、社外への連絡は、実行前に必ずユーザーの明示的な確認を通る。
永続的なユーザー記憶
pgvectorを使った好みの学習により、ZoomとMeetのどちらを使うか、どの航空会社を選ぶか、会議を入れたい時間帯といった判断を記憶し、やり取りを重ねるごとに精度が上がる。
実行状況のリアルタイム可視化
ワークフローのDAGをライブ表示し、各エージェントの状態遷移、実行ログ、承認ゲートを、依頼から完了までの流れとして追える。
複数プラットフォームとの連携
Slack、Googleカレンダー、GitHub、Twilio SMS、Uberの各APIとネイティブに接続し、すべてを1つの自然言語インターフェースから操作する。
このプロジェクトを形づくった技術選定と、それぞれを選んだ理由。
LangGraph 0.2.5
AI・ML明示的なステートマシンとして書けるため、CrewAIではなくこちらを選んだ。エージェントの遷移と承認ゲートを細かく制御する必要があった。CrewAIの暗黙的な委譲では、複雑なワークフローのデバッグがほぼ不可能だった。
Claude Sonnet 4.6
AI・ML指示への追従性と構造化出力の安定性が高く、計画担当のLLMとして採用した。GPT-4oも試したが、複数ステップの計画ではツール呼び出しの幻覚が15%多く発生した。
Neon Postgres + pgvector
データベクトル10万件未満という規模ではコスト効率が良いため、PineconeではなくサーバーレスのPostgresを選んだ。SQLと密に統合されているおかげで好みを引く問い合わせが単純になり、インフラの運用負荷も下がった。
Next.js 15 App Router
フロントエンドServer Componentsによってダッシュボードのクライアント側JSを40%削減できた。Server Actionsを使うことで、専用のWebSocket基盤なしに実行ログのリアルタイム配信を実装できた。
ヒューマンインザループの承認ゲートと永続的な記憶層を備えた、階層型マルチエージェントのオーケストレーション。
入力層
音声・テキスト → Claude 4 Sonnetによる意図分類
タスク計画
LangGraphのSupervisorが依頼を依存関係グラフ付きのサブタスクへ分解
エージェントの振り分け
CalendarAgent、TransportAgent、CommunicationAgent、CodeAgent、CRMAgentを並列に実行
承認ゲート
高リスクな操作($500以上、コード変更、社外連絡)に人の確認を挟む
実行
承認されたタスクが実APIを呼ぶ。Googleカレンダー、Uber、Twilio、GitHub
完了通知
結果を集約 → Slack通知、ダッシュボードの更新、SMSでの確認送信
開発中にぶつかった難所と、どう乗り越えたか。
エージェント間のデッドロック
複数のサブエージェントが同じリソースを必要とする場面、たとえばCalendarAgentとTransportAgentがどちらも予約時刻を必要とする場合に、共有状態の待ち合わせでデッドロックが起き、複数ステップの依頼の23%がタイムアウトしていた。
イミュータブルな状態スナップショットを使うメッセージパッシング方式に変えた。各エージェントは凍結されたスナップショットを読み、書き込みはマージキューへ送る。競合はSupervisorが優先順位ルール(カレンダー > 移動 > 通知)で解決する。
本番環境でのデッドロックはゼロになった。エージェント間の調整にかかる時間も平均8秒から2.3秒へ短縮した。
ツール呼び出しの信頼性
Claudeがツール呼び出しの引数を誤った形式で生成することがあり、日付フォーマットの誤りや必須項目の欠落によって、初期テストでは12%のリクエストがAPIエラーになっていた。
LLMの出力とAPI実行の間にPydanticAIによる検証層を挟んだ。不正なツール呼び出しは捕捉し、スキーマとエラー内容をLLMへ返して自己修正させる。リトライは最大2回で、それを超えると人へ引き継ぐ。
ツール呼び出しの成功率は88%から99.2%へ改善した。リトライによる追加の待ち時間は平均400msにとどまる。
