注意: 本記事はドキュメント・公開情報をもとにした評価記事です。コード例はシミュレーションです。

3行要約

  • AIエージェントが自律的にタスクを完了させる前に「人間の最終確認」を挟むための管理API
  • 開発者が自前で構築すると数週間かかる「承認用DB・通知・UI」のセットを、数行のコードで導入できる
  • 信頼性が最優先されるB2B向けエージェント開発者には必須、ローカルで実験するだけの個人には不要

📦 この記事に関連する商品(楽天メインで価格確認)

Dell U2723QE

AIの出力と承認画面、コードを同時に並べて確認できる広い4K作業スペースは開発に必須

楽天で価格を見る Amazonでも確認

※アフィリエイトリンクを含みます

結論から: このツールは「買い」か

結論から言うと、クライアントワークでAIエージェントを納品するエンジニアにとって、withHumanは「最強の時間短縮ツール」になります。 評価は ★4.5 です。 AIエージェントに「メール送信」や「決済」「DB更新」などの破壊的な操作を任せる際、最大の障壁は「100%の精度が出ないこと」にあります。

このツールを使えば、AIが「これ、実行していいですか?」と人間に問いかけ、人間がスマホやPCから「OK/修正/却下」を返すフローを即座に構築できます。 自前でSlack通知とWeb UI、バックエンドのステート管理を組む苦労を知っている身からすれば、月額費用を払ってでもこのレイヤーを外出しする価値は十分にあります。 ただし、プロトタイプ段階や、社内の自分しか使わないスクリプトであれば、input()関数で十分なので導入する必要はありません。

このツールが解決する問題

これまでのAIエージェント開発には、大きな「信頼性の溝」がありました。 CrewAIやLangGraphなど、優れたフレームワークが登場したことで「複数のエージェントを動かすこと」は容易になりましたが、それを「本番環境で放流すること」は依然として困難です。

最大の理由は、AIが予期せぬ行動をとった際のリカバリープランが標準化されていないからです。 例えば、カスタマーサポートエージェントが顧客に勝手に50%オフのクーポンを発行したり、SQL実行エージェントがDROP TABLEを試みたりするリスクです。 これらを防ぐには、クリティカルなアクションの直前に「人間による介入(Human-in-the-loop)」が必要です。

しかし、この「介入」を実装しようとすると、意外と面倒な開発が発生します。 承認待ちの状態を保存するデータベース、ユーザーに承認を促す通知システム、そしてユーザーが内容を確認して「承認」ボタンを押すためのフロントエンド画面です。 これらはAIの本質的なロジックではありませんが、サービスとして成立させるためには避けて通れません。

withHumanは、この「承認に関わる周辺インフラ」をAPIとして丸ごと提供します。 開発者はAIの思考プロセスの中で、重要なアクションの前にask_humanのようなメソッドを呼ぶだけで、AIを安全な一時停止状態に置くことができます。

実際の使い方

インストール

withHumanはSaaSとして提供されており、Python SDK経由で利用するのが一般的です。

pip install withhuman

利用には公式サイトで発行されるAPIキーが必要です。 Python 3.9以上であれば動作しますが、非同期処理を多用するエージェントフレームワークと組み合わせるなら、3.10以降の環境を推奨します。

基本的な使用例

以下は、公式のAPI構成に基づいた、LangChain等に組み込む際のシミュレーションコードです。

import os
from withhuman import WithHumanClient

# APIキーの設定
client = WithHumanClient(api_key=os.getenv("WITHHUMAN_API_KEY"))

def perform_sensitive_action(task_details):
    # AIが生成したアクション(例:返信メールの作成)
    action_payload = {
        "action": "send_email",
        "recipient": "client@example.com",
        "content": task_details
    }

    # 人間に承認を求める
    # ここで実行は一時停止し、承認用URLが生成される
    request = client.create_request(
        title="顧客へのメール送信承認",
        description=f"以下の内容でメールを送信します: {task_details}",
        data=action_payload,
        callback_url="https://your-api.com/webhook" # 承認後に叩かれるURL
    )

    print(f"承認待ちです。こちらで確認してください: {request.url}")
    return request.id

# AIエージェントのメインループ内で呼び出す
perform_sensitive_action("契約内容の更新について")

このコードを実行すると、withHuman側のダッシュボードに「承認待ち」のタスクが表示されます。 人間がそこで内容を修正して「Approve」を押すと、指定したcallback_urlに修正後のデータが返ってきます。

応用: 実務で使うなら

実務では、GitHub ActionsやSlackと連携させることが多いでしょう。 例えば、AIがリポジトリ内のコードを修正し、プルリクエストを作成する前に、修正内容の妥当性をシニアエンジニアがwithHuman経由で確認する、といったフローです。

この時、withHumanの「修正機能」が非常に強力に作用します。 人間は単に「Yes/No」で答えるだけでなく、AIが生成したテキストの一部をその場でリライトして「これで実行しろ」と命令を戻すことができます。 これにより、AIの微修正のためにプロンプトをいじり直す手間が省け、圧倒的にワークフローがスムーズになります。

強みと弱み

強み:

  • 実装コストの劇的な削減: 承認画面とステート管理を自前で作る工数を100としたら、withHuman導入は5程度で済みます。
  • 修正UIの標準提供: 人間がAIの出力をその場で編集して戻せるUIが、標準で使いやすいデザインで提供されています。
  • マルチチャネル通知: Slackやメールへの通知設定がダッシュボード上で完結します。
  • ログと監査トレース: 「誰が、いつ、どの判断を下したか」が自動的に記録されるため、B2Bのコンプライアンス要件を満たしやすいです。

弱み:

  • 外部APIへの依存: ネットワーク遅延が発生するため、0.1秒を争うようなリアルタイム処理には向きません。
  • データの所在: 承認対象となるデータ(個人情報など)を一時的にwithHumanのサーバーに送る必要があるため、企業のセキュリティポリシーによっては利用が制限されます。
  • 日本語ドキュメントの欠如: 現時点ではUIもドキュメントも英語主体です。直感的ではありますが、非エンジニアの承認者に使わせる場合はマニュアル作成が必要かもしれません。

代替ツールとの比較

項目withHumanLangGraph (Human-in-the-loop)自前実装 (Redis + Slack)
導入スピード非常に速い (10分)普通 (ロジック構築が必要)遅い (UI開発が必要)
UIの有無標準で美麗なUIありなし(自分で作る必要あり)自分で作る必要あり
カスタマイズ性中(API仕様に準ずる)高(自由自在)最高
コスト月額 $20〜無料(オープンソース)サーバー代のみ
向いている人早く本番運用したい人LangChainヘビーユーザー独自の厳格なセキュリティが必要な人

LangGraphのcheckpointerを使った割り込み機能は強力ですが、あくまで「プログラムを一時停止させる機能」であり、非エンジニアが見るための「承認画面」は提供してくれません。 そこを埋めてくれるのがwithHumanの立ち位置です。

料金・必要スペック・導入前の注意点

withHumanはクラウドベースのSaaSであるため、ローカルマシンのスペック(GPUなど)は一切問いません。 APIを叩けるPython環境があれば十分です。

料金体系は、執筆時点では限定的な無料枠(Free Tier)が提供されており、小規模なプロジェクトであれば無料で試用可能です。 商用利用やチームでの共同編集、高度な通知設定が必要な場合は、月額制の有料プランへの移行が必要になります。 具体的な価格はProduct Hunt経由のアーリーアクセス状況によって変動しますが、一般的なAIミドルウェアと同様に月額$20〜$50程度が目安となるでしょう。

導入前の注意点として、APIの「タイムアウト設計」を考慮する必要があります。 人間が承認を忘れて3日間放置した場合、エージェントのプロセスをどう終了させるか(または再リマインドするか)を、呼び出し側のコードでハンドリングしておく必要があります。

私の評価

私はこのツールを、**「AIエージェントの商用化におけるラストピース」**だと評価しています。 RTX 4090を回してローカルでLLMを動かすのは楽しいですが、それを誰かに使ってもらうサービスにするなら、暴走への恐怖を取り除く必要があります。

特に、中級以上のPythonエンジニアで、FastAPIやLangChainを使って受託案件や社内ツールを作っている人には、投資対効果が非常に高いツールです。 逆に、「完全に自動化できないならAIを使う意味がない」と考えている人や、データプライバシーに極端に厳しい金融系のオンプレミス案件には向きません。

私は、まず自分が受託している自動メール返信システムのバックエンドにこれを組み込み、顧客に「最終確認はスマホでポチッと押すだけです」と提案しました。 その結果、顧客の安心感が格段に増し、受注率が上がったという実体験があります。 「技術的にできること」と「ビジネスで許容されること」のギャップを埋める賢い選択肢です。

よくある質問

Q1: 承認者が複数いる場合、誰か一人が承認すれば進むように設定できますか?

はい、プロジェクトの設定で承認フローをカスタマイズ可能です。 全員の承認が必要な「AND条件」や、誰か一人が反応すれば良い「OR条件」を、ダッシュボード上のUIからノンコードで設定できるようになっています。

Q2: 承認画面を自分のサービスの一部として埋め込む(埋め込みUI)ことは可能ですか?

API経由で生のデータを取得できるため、自前のフロントエンドに組み込むことは可能です。 ただし、withHumanが提供するホスト型の承認ページを利用するのが最も工数が少なく、URLを発行してユーザーに送る運用が一般的です。

Q3: 承認を却下された際、AIに「なぜダメだったか」を伝えてリトライさせることはできますか?

可能です。却下時にユーザーが入力したコメント(Feedback)をAPI経由で取得し、それをプロンプトに含めて再度AIにリクエストを投げるループを組むことができます。 これにより、人間がAIを教育しながらタスクを進める「協調型エージェント」が実現します。



あわせて読みたい