結論:本記事では「LiveKit Agents完全ガイド」の定義・主要機能・実際の活用方法を、初心者でも理解できる形で体系的に解説します。
対象読者:本テーマに興味がある実務担当者・意思決定者。
読了後にできること:本記事の要点を踏まえて、自社や自分の状況に合わせた次のアクションを判断できます。
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = “C.UTF-8”
are supported and installed on your system.
perl: warning: Falling back to the standard locale (“C”).
この記事でわかること
- LiveKit Agentsの全体アーキテクチャとWebRTCとの関係
- PythonでSTT→LLM→TTSパイプラインを5分で動かすセットアップ手順
- Function calling・Interruption handling・VADの実装パターン
- PipecatとLiveKit Agentsの使い分け基準(どちらを選ぶか)
- 本番運用で実際に踏んだ落とし穴5選と回避策
対象読者: Pythonが書けるエンジニア、音声AIエージェントを本番に出したい開発者・PM
今日やること: pip install livekit-agents → 最小構成エージェントを動かす → 自分のLLMに差し替える
「リアルタイム音声AIって、WebRTC関係でしょ?難しそう…」
実際に音声AIエージェントの導入支援を進める中で、最も多い反応がこれです。WebRTCと聞くだけで拒絶反応が出る開発者は多い。シグナリング、ICE、NAT越えなど、確かに低レベルの話をし始めるとキリがありません。
ところが、LiveKit Agentsを使うとその全複雑さが消えます。WebRTCの内部をまったく意識せずに、Pythonのコードだけで「ユーザーが話す → AIが聞く → AIが答える」のループを実装できるようになっています。2025年4月に1.0正式リリースを迎え、2026年4月時点でPython SDK 1.5.x系に達した現在、実用性は格段に上がっています。
この記事では、LiveKit Agentsの実装方法を、コピペできるコードつきで解説します。PipecatやVapiとの使い分け基準、本番運用の注意点まで含めて一気通貫でまとめます。
LiveKit Agentsとは|WebRTC × LLM の仕組み
LiveKit Agentsは、音声・映像・物理AIエージェントを構築するためのリアルタイムフレームワークです。Apache 2.0ライセンスのオープンソースで、GitHubのlivekit/agentsリポジトリで公開されています(2026年4月時点でスター数10,000超)。
アーキテクチャの核心
LiveKit Agentsのエージェントは、「LiveKitルームに参加する1つの参加者(ヘッドレス参加者)」として動作します。人間のユーザーがブラウザやモバイルアプリからルームに入り、エージェントが別の参加者として自動参加する構造です。
[ユーザー側]
ブラウザ / iOS / Android
↓ WebRTC(マイク音声)
[LiveKit Cloud / Self-hosted SFU]
↓ WebRTC(音声トラック)
[エージェント(Python プロセス)]
↓ HTTP/WebSocket
[STT → LLM → TTS パイプライン]
ポイントは「エージェントはWebRTCを直接扱わない」ことです。LiveKit SDKがすべての低レベル処理(ICE交渉、DTLS、SRTP)を吸収し、エージェントコードからはシンプルなPython APIだけを見ることになります。
カスケードパイプラインとリアルタイムAPIの2構成
LiveKit Agentsには2つの動作モードがあります。
| モード | 構成 | レイテンシ目安 | 向いているケース |
|---|---|---|---|
| カスケードパイプライン | VAD → STT → LLM → TTS を別々のモデルで接続 | 700ms〜1,000ms | ベンダーを自由に組み合わせたい、コスト最適化 |
| リアルタイムAPI | OpenAI Realtime API / Gemini Live APIを1つのエンドポイントで処理 | 300ms〜600ms | 最低レイテンシ優先、ベンダーロックインを許容できる |
2026年4月時点では、90%以上の本番エージェントがカスケードパイプライン構成を採用しています(複数ベンダーを組み合わせることでコストと品質をコントロールできるため)。本記事ではカスケード構成を中心に解説します。
対応プロバイダー一覧
| レイヤー | 対応プロバイダー |
|---|---|
| STT(音声認識) | Deepgram Nova-3、OpenAI Whisper、AssemblyAI、Google STT |
| LLM(言語モデル) | OpenAI GPT-4o/4.1-mini、Anthropic Claude、Google Gemini、DeepSeek、Groq |
| TTS(音声合成) | Cartesia Sonic-3、ElevenLabs、OpenAI TTS、Deepgram Aura |
| VAD(音声区間検出) | Silero VAD(組み込み)、Turn Detection(Multilingualモデル) |
セットアップ|Python 環境構築から認証まで
セットアップは3ステップで完了します。必要なのはPython 3.9以上の環境と、LiveKit Cloudアカウントです。
Step 1: パッケージインストール
基本パッケージとプラグインを一括でインストールします。STT/TTS/LLMはプラグイン形式で追加します。
# 基本パッケージ
pip install livekit-agents>=1.5.0
# プラグイン(最小構成: Deepgram STT + OpenAI LLM + Cartesia TTS)
pip install livekit-plugins-deepgram livekit-plugins-openai livekit-plugins-cartesia livekit-plugins-silero
# 注意: バージョン指定推奨。livekit-agents 1.5.x と互換性のあるプラグインバージョンを使うこと
# 動作環境: Python 3.9+, Ubuntu 20.04+, macOS 12+
Step 2: 環境変数の設定
LiveKit Cloudのダッシュボード(cloud.livekit.io)からプロジェクトを作成し、APIキーを取得します。
# .env ファイル
LIVEKIT_URL=wss://your-project.livekit.cloud
LIVEKIT_API_KEY=APIxxxxxxxxxxxxxxxx
LIVEKIT_API_SECRET=your-secret-here
# STT / LLM / TTS のAPIキー
DEEPGRAM_API_KEY=your-deepgram-key
OPENAI_API_KEY=sk-your-openai-key
CARTESIA_API_KEY=your-cartesia-key
# 注意: .env を .gitignore に追加し、本番ではシークレットマネージャーを使うこと
Step 3: 動作確認
LiveKit CLIでトークンを発行し、ブラウザのLiveKit Meetをテスト用クライアントとして使うのが最も手軽です。
# LiveKit CLI をインストール(Go製ツール)
# macOS
brew install livekit-cli
# ルームトークン発行(テスト用)
lk token create \
--api-key $LIVEKIT_API_KEY \
--api-secret $LIVEKIT_API_SECRET \
--join --room test-room \
--identity user-1 \
--valid-for 1h
最小構成の実装サンプル|音声入力 → STT → LLM → TTS → 音声出力
以下が最小構成の音声AIエージェントです。このコードをそのまま動かせます。
エージェント本体
LiveKit Agentsでは Agent クラスを継承し、AgentSession にSTT/LLM/TTSを渡す構成になっています。
"""
LiveKit Agents 最小構成サンプル
動作環境: Python 3.10+, livekit-agents 1.5.x
"""
import asyncio
import logging
from dotenv import load_dotenv
from livekit.agents import Agent, AgentSession, JobContext, WorkerOptions, cli
from livekit.plugins import cartesia, deepgram, openai, silero
load_dotenv()
logging.basicConfig(level=logging.INFO)
class MyVoiceAgent(Agent):
"""シンプルな音声アシスタント。日本語での質問に答える。"""
def __init__(self) -> None:
super().__init__(
instructions=(
"あなたは丁寧で親しみやすい音声アシスタントです。"
"簡潔に、わかりやすい日本語で回答してください。"
"長い回答は2〜3文にまとめてください。"
)
)
async def entrypoint(ctx: JobContext) -> None:
"""エントリーポイント: ルームに接続してエージェントを起動する"""
# ルームに接続
await ctx.connect(auto_subscribe="audio_only")
# セッション作成: STT → LLM → TTS の順にパイプラインを定義
session = AgentSession(
vad=silero.VAD.load(), # 音声区間検出
stt=deepgram.STT(model="nova-3", language="ja"), # 日本語STT
llm=openai.LLM(model="gpt-4.1-mini"), # LLM
tts=cartesia.TTS(
model="sonic-3",
language="ja",
voice="CARTESIA_VOICE_ID_HERE", # Cartesiaのボイス ID
),
)
# エージェントを起動してルームに参加
await session.start(ctx.room, agent=MyVoiceAgent())
# 最初の挨拶
await session.generate_reply(
instructions="まず簡潔に挨拶してください。"
)
if __name__ == "__main__":
cli.run_app(WorkerOptions(entrypoint_fnc=entrypoint))
# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
起動コマンド:
python agent.py dev # 開発モード(ホットリロードあり)
コードのポイント:
AgentSessionがSTT/LLM/TTSのパイプラインを自動で接続します。ストリーミング処理(LLMが生成しながらTTSが合成)は内部で自動管理vad=silero.VAD.load()はオフラインで動くSilero VADを使います。クラウドSTTへの無駄な送信を防ぎますauto_subscribe="audio_only"で映像トラックを無視し、音声のみ処理します(コスト節約)
Function Callingの実装
エージェントにツールを持たせる場合は、@function_tool デコレータを使います。Pythonの型アノテーションからJSONスキーマが自動生成される仕組みです。
from livekit.agents import Agent, function_tool
from livekit.agents.types import NOT_GIVEN
import httpx
from typing import Annotated
class WeatherAgent(Agent):
"""天気情報を取得できる音声エージェント"""
def __init__(self) -> None:
super().__init__(
instructions=(
"あなたは天気情報を提供する音声アシスタントです。"
"天気を聞かれたら必ずget_weather()ツールを呼び出してください。"
)
)
@function_tool
async def get_weather(
self,
city: Annotated[str, "都市名(例: Tokyo, Osaka)"],
) -> str:
"""指定した都市の現在の天気を取得します"""
# Open-Meteo(無料の天気API)を使用
async with httpx.AsyncClient() as client:
# 簡略化のため、ここでは東京の座標を固定
resp = await client.get(
"https://api.open-meteo.com/v1/forecast",
params={
"latitude": 35.6762,
"longitude": 139.6503,
"current_weather": True,
},
)
data = resp.json()
temp = data["current_weather"]["temperature"]
return f"{city}の現在気温は{temp}℃です。"
# 注意: 本番では都市名から座標を動的に取得するジオコーディング処理を追加してください。
ポイント:
- ツールの
docstringがLLMへの説明文になります。「いつ呼び出すか」を明記すると精度が上がります - 非同期(
async def)必須。外部APIコールはすべてhttpxやaiohttpを使います - 型アノテーションの
Annotated[str, "説明"]でパラメータの説明を付けられます
Interruption Handling(割り込み処理)の実装
音声AIで最も重要な機能の一つが、ユーザーが途中で話しかけてきた時の割り込み処理です。LiveKit Agentsではセマンティックターン検出により、単なる無音検出より自然な割り込みを実現しています。
from livekit.agents import AgentSession
from livekit.plugins import silero, openai
from livekit.agents.voice import SpeechHandle
async def entrypoint(ctx):
await ctx.connect(auto_subscribe="audio_only")
session = AgentSession(
vad=silero.VAD.load(),
stt=openai.STT(model="whisper-1", language="ja"),
llm=openai.LLM(model="gpt-4o"),
tts=openai.TTS(voice="alloy"),
# セマンティックターン検出を有効化(Silero VAD + トランスフォーマーモデル)
turn_detection="semantic",
# 割り込みが起きた時、エージェントの応答を即座に停止する
allow_interruptions=True,
# 割り込みと判定するまでの最小無音時間(ms)
min_interruption_silence_ms=300,
)
# 割り込みが起きた時のイベントハンドラ
@session.on("agent_speech_interrupted")
def on_interrupted(speech: SpeechHandle):
# 割り込まれた発話の内容をログに記録
logging.info(f"エージェント発話が割り込まれました: {speech.id}")
await session.start(ctx.room, agent=MyVoiceAgent())
# 注意: min_interruption_silence_ms は環境の背景ノイズに合わせて調整してください。
ポイント:
turn_detection="semantic"にするとトランスフォーマーモデルがターン終了を判定します。「300ms の無音」で機械的に区切るより自然な会話になりますallow_interruptions=Trueがデフォルト設定です。コールセンター用途等で割り込みを禁止したい場合はFalseに設定します- 割り込みが起きると、TTSの再生と進行中のLLM生成が即座に停止します
主要機能詳解|Multimodal / VAD / Function Calling
マルチモーダル対応(映像+音声)
LiveKit Agentsは音声だけでなく映像トラックも扱えます。カメラ映像をフレームとしてLLMに渡す構成が可能です。
from livekit.agents import AgentSession
from livekit.plugins import openai
# 映像フレームをOpenAI Vision APIに渡す設定
session = AgentSession(
vad=silero.VAD.load(),
stt=openai.STT(),
llm=openai.LLM(
model="gpt-4o",
# 映像フレームをコンテキストとしてLLMに渡す
vision=True,
),
tts=openai.TTS(),
)
# auto_subscribe をデフォルト(audio_and_video)に変更
await ctx.connect() # auto_subscribe のデフォルトは "subscribe_all"
# 注意: 映像処理はCPU/帯域幅コストが大幅に増加します。必要でなければ audio_only を推奨します。
複数エージェントの連携(ハンドオフ)
1つの会話の中でエージェントを切り替える「ハンドオフ」機能が1.5.xで強化されています。例えば、一般対応エージェントから専門エージェントへの切り替えが以下で実装できます。
from livekit.agents import Agent, AgentSession
class GeneralAgent(Agent):
"""一般対応エージェント"""
def __init__(self) -> None:
super().__init__(
instructions="一般的な問い合わせに対応してください。"
"技術的な質問が来たらTechAgentに転送してください。",
handoffs=[TechAgent], # 転送先エージェントを指定
)
class TechAgent(Agent):
"""技術専門エージェント"""
def __init__(self) -> None:
super().__init__(
instructions="技術的な問い合わせに詳しく対応してください。"
)
# AgentSession はどちらのエージェントも扱える
session = AgentSession(...)
await session.start(ctx.room, agent=GeneralAgent())
PipecatとLiveKit Agentsの使い分け|音声パイプライン特化 vs WebRTC統合
音声AIフレームワークを選ぶ際、最も比較されるのがPipecatとLiveKit Agentsです。当サイトにはPipecatの完全ガイドもありますが、両者の使い分けは明確です。
| 観点 | LiveKit Agents | Pipecat |
|---|---|---|
| 基盤 | WebRTC (LiveKit SFU) | WebRTC/SIP/WebSocket(Daily.co等) |
| セットアップ簡単さ | シンプル(APIを隠蔽) | 細かく制御可能(やや冗長) |
| エンドツーエンドレイテンシ | 750〜900ms(カスケード) | 800〜950ms(Daily.co使用時) |
| マルチユーザー会議 | 強い(SFU設計) | 1:1を想定した設計 |
| SIP統合 | LiveKit SIPで電話連携可能 | Telnyx等との連携が必要 |
| プロバイダー中立性 | 高い(20+プロバイダー対応) | 高い(30+プロバイダー対応) |
| セルフホスト | 可(Go SFUをk8sで運用) | 可(メディアサーバー別途必要) |
| ライセンス | Apache 2.0 | BSD-2-Clause |
LiveKit Agentsを選ぶべきケース
- Webアプリ・モバイルアプリへの音声AI統合: LiveKit SDKのクライアントライブラリが豊富(React/Swift/Kotlin対応)
- 複数ユーザーが同時参加する会議型エージェント: SFUによる効率的な多人数配信が必要
- SIP/電話統合: LiveKit SIPで既存電話インフラとブリッジできる
- クラウドプラットフォームを使いたい: LiveKit CloudのマネージドSFUで運用コストを最小化
Pipecatを選ぶべきケース
- 1:1の音声アシスタント(コールセンター・カスタマーサポート): Pipecatの方がフレームベースの細かな制御がしやすい
- 既存のメディアインフラがある: WebRTC以外の接続(WebSocket、TCP)にも柔軟に対応
- ボット向けの詳細なパイプライン制御: フレームプロセッサのカスタマイズがより細かくできる
詳しくはPipecat完全ガイドで実装例と比較を確認してください。
料金プラン|LiveKit Cloud vs セルフホスト
LiveKit Agentsのフレームワーク自体は無料(OSS)です。コストが発生するのはLiveKit Cloudを使う場合です。
| プラン | 月額 | Agent Session分数(無料枠) | 同時セッション上限 | 主な特徴 |
|---|---|---|---|---|
| Build | $0 | 1,000分 | 5 | クレジットカード不要、開発・検証用 |
| Ship | $50〜 | 5,000分 | 20 | チーム機能、小規模本番 |
| Scale | $500〜 | 50,000分 | 600 | HIPAA対応、メトリクスAPI、リージョン選択 |
| Enterprise | 要相談 | カスタム | カスタム | ボリューム割引、SSOなど |
Agent Session分数の超過料金: $0.01/分(全プラン共通)
コスト試算例: 1日100セッション × 平均5分 = 月15,000分。Shipプランで5,000分が含まれ、超過10,000分 × $0.01 = $100。プラン費用$50と合わせて月$150が目安です。ただしSTT/LLM/TTSのAPIコストは別途かかります。
セルフホストが適しているケース
LiveKit SFU(Go製、オープンソース)はDockerイメージが公開されており、Kubernetes上でのデプロイが可能です。以下の条件が揃えばセルフホストがコスト効率で上回ります。
- 月間セッション数が安定して500以上ある
- Kubernetesの運用ノウハウがある(または専担エンジニアがいる)
- データ主権要件(医療・金融)でサードパーティSaaSを使えない
参考: LiveKit公式ブログ「Deploy and scale agents on LiveKit Cloud」には本番スケーリングのガイドが詳しく記載されています(参照日: 2026-04-30)。
本番運用の落とし穴5選
実際に音声AIエージェントを本番環境に出してみると、開発環境では気づかなかった問題が出てきます。よく踏むパターンを5つまとめます。
落とし穴1: VADの誤検知でレイテンシが悪化する
症状: ユーザーが話し終わっていないのにSTTが起動し、途中の文章でLLMへ投げてしまう。
原因: デフォルトのVAD設定が背景ノイズに対して敏感すぎる。
from livekit.plugins import silero
# VADの感度を調整する
vad = silero.VAD.load(
min_silence_duration=600, # 無音と判定するまでの時間(ms)。デフォルト400
min_speech_duration=100, # 音声と判定するまでの最小時間(ms)
pre_speech_pad_ms=300, # 音声開始前のパディング
post_speech_pad_ms=100, # 音声終了後のパディング
)
# 注意: オフィス環境と静かな部屋では最適値が大きく異なります。A/Bテストで調整してください。
落とし穴2: STTの言語設定ミスで精度が落ちる
症状: 日本語で話しているのに英語として認識される、または認識精度が著しく低い。
対策: STTプラグインの language パラメータを明示的に指定します。
# DeepgramのSTTで日本語を明示指定
from livekit.plugins import deepgram
stt = deepgram.STT(
model="nova-3",
language="ja", # 明示的に日本語を指定
smart_format=True, # 句読点の自動補完
punctuate=True,
)
# Openai Whisper の場合
from livekit.plugins import openai
stt = openai.STT(
model="whisper-1",
language="ja", # ISO 639-1コードで指定
)
落とし穴3: エージェントワーカーのスケールアウトを設定しない
症状: 同時接続数が増えると新しいセッションが始まらない、または応答が極端に遅くなる。
対策: WorkerOptions でワーカー並列数を設定し、複数プロセスで負荷分散します。
from livekit.agents import WorkerOptions, cli
# ワーカーを複数並列起動する設定
options = WorkerOptions(
entrypoint_fnc=entrypoint,
# 1ワーカーあたりの最大同時セッション数
max_concurrent_jobs=5,
# ワーカープロセス数(CPUコア数に合わせる)
num_idle_processes=2,
)
cli.run_app(options)
# 本番では PM2 / systemd / Kubernetes Deployment でプロセスを管理すること
落とし穴4: TTS音声の遅延がUXに出る
症状: LLMのレスポンスが早くても、TTSの初回チャンク受信まで500ms以上かかる。
原因: ストリーミングTTSを使っていない、またはTTSのネットワーク距離が遠い。
対策:
- Cartesia SonicはデフォルトでストリーミングTTSをサポートします(最初のチャンクが50〜100msで届く)
- LiveKit CloudのリージョンをユーザーとTTSプロバイダーに近い場所に設定する(Scale以上のプランで選択可能)
- ユーザーの応答を待つ間に「うん」「なるほど」等の短い相槌を返す「フィラー」機能を活用する
落とし穴5: セッション終了後にリソースリークが起きる
症状: 長時間稼働後にメモリ使用量が増加し続ける。再起動後は正常に戻る。
対策: セッション終了時のクリーンアップを明示的に実装します。
async def entrypoint(ctx: JobContext) -> None:
await ctx.connect(auto_subscribe="audio_only")
session = AgentSession(...)
await session.start(ctx.room, agent=MyVoiceAgent())
try:
# セッションが終了するまで待機
await session.wait()
finally:
# 必ずクリーンアップを実行する
await session.aclose()
logging.info("セッションクリーンアップ完了")
# 注意: 本番環境で使用する前に、必ずテスト環境でメモリ使用量を長時間監視してください。
よくある質問(FAQ)
Q: LiveKit Agentsは日本語に対応していますか?
A: 対応しています。STTにDeepgram Nova-3(language="ja")、TTS にCartesia Sonic-3(日本語ボイスID指定)の組み合わせが2026年4月時点での推奨構成です。OpenAI Whisperも日本語精度が高く、コスト重視なら代替になります。
Q: レイテンシの目標値はどのくらいですか?
A: ユーザーが話し終わってから最初の音声が返るまで(TTFS: Time to First Syllable)の目標値は300ms以下が「人間的に自然」とされています。LiveKit Agentsのカスケードパイプラインでは750〜900ms程度が現実的な数値です。300msを実現したい場合はOpenAI Realtime APIまたはGemini Live API統合が必要です。
Q: 電話回線(SIP)との連携はできますか?
A: 可能です。LiveKit SIPコンポーネントを使うと、一般電話回線(PSTN)とWebRTCをブリッジできます。Ship以上のプランで利用可能です。
Q: Pipecat(当サイトのガイドあり)と同じ会社ですか?
A: 別の会社です。LiveKitはLiveKit, Inc.(旧Fishjam)が開発し、PipecatはDaily.co(Daily.co, Inc.)が開発しています。アーキテクチャ設計の思想が異なり、「WebRTC統合重視のLiveKit」対「パイプライン制御重視のPipecat」と覚えると選定しやすいです。
Q: LiveKit CloudのBuildプランから始めて良いですか?
A: 開発・検証であれば十分です。月1,000分の無料枠があり、クレジットカード不要で試せます。同時セッション数が5に制限されるため、負荷テストや本番トラフィックの前にShip/Scaleプランへの移行が必要になります。
Q: セルフホストの場合、LiveKit Agentsのコードは変更が必要ですか?
A: 環境変数を変えるだけです。LIVEKIT_URL をセルフホストのSFUエンドポイントに変更すれば、コードはそのまま動きます。SFUは LiveKit Server(Go製)のDockerイメージを使います。
まとめ:今日から始める3つのアクション
- 今日やること:
pip install livekit-agents livekit-plugins-openai livekit-plugins-sileroを実行し、最小構成サンプルをローカルで動かす。OpenAI APIキーがあればDeepgramなしでも試せます(OpenAI STT+LLM+TTSで一本化) - 今週中: 自分のユースケースに合わせてLLMの
instructionsを書き、社内でデモを実施する。Function callingで既存APIと繋いだプロトタイプを1本完成させる - 今月中: LiveKit CloudのShipプランで本番環境にデプロイし、実際のユーザーにフィードバックをもらう。VADとターン検出の設定を実環境で最適化する
あわせて読みたい:
- Pipecat完全ガイド|音声AIエージェント実装 — フレームベースのパイプライン制御を詳しく解説。LiveKitと迷ったらまずこちらと読み比べを
- AIエージェント完全ガイド|設計から本番運用まで — エージェント設計の全体像を把握したい方へ
この記事を読んでLiveKit Agentsの導入イメージが固まってきた方へ
UravationではAIエージェント開発の研修・コンサルティングを行っています。音声AIエージェントの要件定義から本番運用まで、実装経験のある専門チームが支援します。
参考・出典
- LiveKit Agents 公式ドキュメント — LiveKit, Inc.(参照日: 2026-04-30)
- LiveKit Pricing — LiveKit, Inc.(参照日: 2026-04-30)
- Build Your First AI Voice Agent in Python — LiveKit Blog(参照日: 2026-04-30)
- Choosing a Voice AI Agent Production Framework — WebRTC.ventures(参照日: 2026-04-30)
- Deploy and scale agents on LiveKit Cloud — LiveKit Blog(参照日: 2026-04-30)
著者: 佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー約10万人。著書『AIエージェント仕事術』。SoftBank IT連載7回執筆。
ご質問・ご相談は お問い合わせフォーム からお気軽にどうぞ。
