メインコンテンツへスキップ
Line SDK は、音声エージェントを構築するための Python フレームワークです。音声インフラストラクチャ、音声認識、会話フローを処理します。
uv add cartesia-line
Line を初めて使う方は、クイックスタート から始めて、最初のエージェントを構築・デプロイしましょう。

主要概念

コンポーネント目的
Agentprocess メソッドを介して入出力イベントループを制御します
LlmAgentLiteLLM を介して 100 以上の LLM プロバイダーをラップする組み込みエージェント
Toolsエージェントが呼び出せる関数 — データベース参照、ハンドオフ、Web 検索など
VoiceAgentAppエージェントを Cartesia の音声インフラストラクチャに接続する HTTP サーバー
import os
from line.llm_agent import LlmAgent, LlmConfig, end_call
from line.voice_agent_app import VoiceAgentApp

async def get_agent(env, call_request):
    return LlmAgent(
        model="anthropic/claude-haiku-4-5-20251001",
        api_key=os.getenv("ANTHROPIC_API_KEY"),
        tools=[end_call],
        config=LlmConfig(
            system_prompt="You are a helpful assistant.",
            introduction="Hello! How can I help you today?",
        ),
    )

app = VoiceAgentApp(get_agent=get_agent)
通話開始時にエージェントは introduction を話し、その後 LLM を使ってユーザーの発話に応答します。

機能

  • リアルタイムの割り込みサポート — 音声の割り込みやターンテイキングを最初から処理します。
  • ツール呼び出し — データベース、API、外部サービスに接続
  • マルチエージェントのハンドオフ — 特化型エージェント間で会話をルーティング
  • Web 検索 — リアルタイム情報検索のための組み込みツール

機能を追加する

情報を参照する

from typing import Annotated
from line.llm_agent import loopback_tool

@loopback_tool
async def get_order_status(ctx, order_id: Annotated[str, "The order ID"]):
    """Look up an order's current status."""
    order = await db.get_order(order_id)
    return f"Order {order_id} is {order.status}"

別のエージェントへハンドオフする

from line.llm_agent import LlmAgent, LlmConfig, agent_as_handoff, end_call

spanish_agent = LlmAgent(
    model="gpt-5-nano",
    api_key=os.getenv("OPENAI_API_KEY"),
    tools=[end_call],
    config=LlmConfig(
        system_prompt="You speak only in Spanish.",
        introduction="¡Hola! ¿Cómo puedo ayudarte?",
    ),
)

main_agent = LlmAgent(
    model="anthropic/claude-haiku-4-5-20251001",
    api_key=os.getenv("ANTHROPIC_API_KEY"),
    tools=[
        end_call,
        agent_as_handoff(
            spanish_agent,
            name="transfer_to_spanish",
            description="Transfer when user requests Spanish.",
        ),
    ],
    config=LlmConfig(...),
)

Web を検索する

from line.llm_agent import end_call, web_search

agent = LlmAgent(
    tools=[end_call, web_search],  # Add built-in web search
    ...
)
完全なガイドは ツール を参照してください。

コード例

説明
Basic Chatシンプルな会話エージェント
Chat Supervisor高速なチャットモデルと強力な推論へのエスカレーション
Form Filler会話を通じて構造化データを収集
Multi-Agent特化型エージェント間でハンドオフ

インテグレーション

インテグレーション説明
Exa Web Researchリアルタイム Web 検索
Browserbase音声で Web フォームを入力

次のステップ

エージェント

プロンプト、LLM、会話フローを設定する

ツール

カスタムツールやマルチエージェントのハンドオフを追加する