本文にスキップ
AI News HubLIVE
サイト内リライト3 分で読了

「カンパニーハーネス」を構築する5つの要素

記事の要約

LangChainは、マーケティング・営業・エンジニアリングの各チームで内部エージェントを構築した経験を共有し、すべてのチームが行き着いた共通のレシピを5つの核心的な要素に整理した。Slack内での稼働、本人代理と固定認証情報を組み合わせたアイデンティティ、グローバルとユーザー単位のメモリ、サンドボックス内でのコード実行、そして人間による明示的な起動ではなくスケジュールやイベントで走る多数の実行である。

「カンパニーハーネス」を構築する5つの要素
誤りを報告

訂正窓口はまだ利用できません。記事情報をコピーして保存できます。

訂正案内
本文へ

LangChainはブログで、社内エージェント構築の経験を公開した。同社はマーケティング、営業、エンジニアリングの各チームにAIエージェントを導入し、チームの働き方を大きく変えてきたが、実装は容易ではなかった。チームは「マルチプレイヤー・ハーネス」に伴う問題の解決に多くの時間を費やし、最終的にどのチームも同じ中核的なプリミティブにたどり着いたという。

まず同社の3つの主要エージェントを紹介する。GTMエージェントは市場開拓(GTM)業務を支援する常時稼働の能動的エージェントで、メールの監視と返信、新規の有望リードへの対応、日次ブリーフの送信、アカウントに関する質問への回答、アウトバウンド施策の実行ができる。OpenSWEはエンジニアリング用エージェントで、PRの作成やドラフト作成に加え、すべてのPRに対してコードレビューを実行する。Content Studioはマーケティング用エージェントで、同社のスタイルとポジショニングの知識に基づいてブログ、画像、PowerPoint、動画などの素材を起草する。3つはすべて同じ方法で構築されており、筆者はこれをカンパニーハーネス構築の汎用的なレシピと位置づけている。

第1の要素はユーザー体験だ。エージェントはすべて、従業員がすでに使っているSlackの中に存在する。各エージェントは専用のSlackアプリを持ち、DMやチャンネルでのメンションで呼び出せる。チャンネルで使う利点は、他の人がどう使っているかを目にできることだ。さらに同社はSlackの会話を「ブレイクアウト」する仕組みを追加した。人間同士の議論が盛り上がっている最中にエージェントの意見を求めたい場面は多いが、同じスレッドで動かすと会話が乱れ注意が散る。そこで、エージェントをチャンネル内の別スレッドに簡単に切り離せるようにした。一方、Slackに向かない体験もある。たとえばGTMエージェントが送信を提案するメールのレビューは、単発ならSlackで問題ないが、大量にたまるとSlackメッセージで追うのは快適ではない。こうした用途では専用UIを開発した。

第2の要素はアイデンティティで、最も厄介な課題だった。エージェントが行動するとき、誰の代理として行動するのかという問題である。業界には主に2つの方式がある。呼び出しユーザーの代理として動くオンビハーフオブ方式と、誰が呼び出しても同じ固定認証情報(サービスアカウントなど)を使う方式だ。同社はエージェントごとに組み合わせを変えている。OpenSWEはメッセージを受けるとユーザーの代理として動き(例:ユーザーのGitHubアカウントでPRを作成)、コードレビューのようなバックグラウンド実行では自らのGitHubアプリのアイデンティティで動く。GTMエージェントはSalesforceなどの一部ツールを固定アイデンティティで使い、全員がログインしなくて済むようにする一方、メールなどのツールは呼び出しユーザーの代理として動き、DMでのみ利用可能で共有チャンネルでは使えない。Content StudioはNotionなどを呼び出しユーザーの代理で使い、Twitterは会社アカウントの固定認証情報を使うが、投稿などの機密操作はホワイトリストのユーザーだけが実行でき、それ以外は閲覧や下書きのみとなる。

第3の要素はメモリだ。すべてのエージェントは2層のメモリを持つ。全ユーザーに適用されるグローバルメモリと、特定ユーザーだけに適用されるユーザーメモリである。どの事実をどちらの層に記憶するかはエージェント自身が決める。筆者はこれを現時点で最も探索が進んでいない領域だと認め、今後多くの作業が必要だとしている。

第4の要素はコード実行だ。3つのエージェントはいずれもコードを書き実行でき、タスク達成のためにしばしばそれを必要とする。共通のパターンは、エージェント本体はサンドボックスの外で動きつつ、サンドボックスに接続してそこでコードを実行するというものだ。それぞれ依存関係の異なるベースイメージを持ち、特にコーディングと関係が深いOpenSWEは、チャンネルやユーザーに応じてどのベースイメージを起動するかを賢く判断する。いずれもLangSmith Sandboxesのシークレットプロキシを活用し、サンドボックス内から認証が必要なサービスへ安全に接続できるようにしている。

第5の要素はスケジュール実行だ。実行のかなりの割合が、ユーザーによる直接起動ではなく、スケジュールやバックグラウンドのイベントによってトリガーされる。エージェントの開発者が設定するものもあれば(例:OpenSWEが新しいPRを検知して自動レビューする)、ユーザーがエージェントに依頼して設定させるものもある(例:筆者が日次ブリーフの送信を頼むと、GTMエージェントが自分用のcronを作成した)。

これらのエージェントはすべてManaged Deep Agents上に構築されている。これはオープンソースのDeep Agentsハーネスの上に位置し、チャンネル、cron、サンドボックス、メモリ、アイデンティティといった問題を解決するインフラを提供しつつ、必要に応じてエージェントの動作をカスタマイズできる柔軟性も備えている。

要点と分析を開く

記事インテリジェンス

エンジニア中級

要点

  • すべての内部エージェントはSlack上で稼働し、エージェントの作業を別スレッドに「ブレイクアウト」して人間の会話を妨げない仕組みを用意している。
  • 最も難しい課題はアイデンティティで、一部のツールは呼び出しユーザーの代理として、別のツールは独自または固定の認証情報で動作し、機密ツールはDMやホワイトリストに限定される。
  • メモリはグローバルとユーザー単位の2層があり、どの事実をどこに保存するかはエージェントが判断する。この領域はまだ最も探索が進んでいない。
  • 実行の大部分は人間による直接起動ではなく、開発者またはユーザーが設定したスケジュールやイベントによってバックグラウンドでトリガーされる。

要点と分析は自動生成され、誤りを含む場合があります。原典をご確認ください。