コンテンツにスキップ

2. CLIでエージェントを作成

antというClaude Platform CLIを使ってエージェントを作成します。

  1. antをインストールします。

    1. antリリースページより、ant_{バージョン番号}_windows_amd64.zipをダウンロードします。

    2. 任意の場所に展開します。

    3. 展開したフォルダーでpowershell.exeを起動します。

    4. コマンド出力の日本語が文字化けしないよう、文字コードをUTF-8に設定します。

      Terminal window
      $OutputEncoding = [Console]::OutputEncoding = New-Object System.Text.UTF8Encoding $false
  2. ant auth loginを実行します。

    1. 以下のコマンドを実行します。
      Terminal window
      ./ant auth login
  3. ブラウザでログインします。

ここからは、1. コンソールでエージェントを作成で画面から作った構成(認証情報ボールト → 環境 → エージェント → セッション)と同じものを、すべてantコマンドで作成します。コンソール版と名前が重複しないよう、CLI版の名前には「-cli」を付けています。

  1. ボールトを作成し、IDを変数に保存します。

    Terminal window
    $VAULT_ID = ./ant beta:vaults create --display-name "Vault-cli" --transform id --raw-output

    変数の中身を表示して、vlt_で始まるIDが保存されていることを確認します。

    Terminal window
    $VAULT_ID
  2. ボールトにJina AIのAPIキーを認証情報として追加します。ここにAPIキーの部分を実際のAPIキーに置き換えてから実行してください(コマンドは1行です)。

    Terminal window
    ./ant beta:vaults:credentials create --vault-id $VAULT_ID --display-name "Jina-ai-cli" --auth '{type: static_bearer, mcp_server_url: https://mcp.jina.ai/v1, token: ここにAPIキー}'
  1. MCPサーバーへのネットワークアクセスを許可した環境を作成し、IDを変数に保存します(コマンドは1行です)。

    Terminal window
    $ENVIRONMENT_ID = ./ant beta:environments create --name "Jina-environment-cli" --config '{type: cloud, networking: {type: limited, allow_mcp_servers: true}}' --transform id --raw-output

    変数の中身を表示して、env_で始まるIDが保存されていることを確認します。

    Terminal window
    $ENVIRONMENT_ID
  1. コマンドを実行しているフォルダーにagent.yamlという名前のファイルを作成し、以下の内容を保存します。

    agent.yaml
    name: Jina Web Research Agent CLI
    model:
    id: claude-haiku-4-5
    speed: standard
    description: Jina AIのMCPサーバーを使ったWeb検索、ページ読み取り、学術研究のデモエージェント。
    system: あなたはJina AIの検索・読み取りツールを活用するリサーチアシスタントです。質問を受けたら、search_web(学術的なトピックの場合はsearch_arxivやsearch_ssrn)を使って関連ソースを見つけ、その後read_urlまたはparallel_read_urlを使って、有望な結果の全文を取得してください。検索結果のスニペットだけに頼らないようにしてください。複数のソースから得た情報を組み合わせ、使用したURLを引用し、不確実な点や矛盾する情報がある場合は明確に示してください。効率化のため、複数のソースを同時に検索・読み取る際はparallel_*系のツールを優先して使ってください。特定のページの要約や事実抽出を求められた場合は、read_urlで直接そのページを読み取ってください。回答は簡潔かつ整理された形にし、事前知識ではなく取得したコンテンツに基づくようにしてください。
    mcp_servers:
    - name: jina
    type: url
    url: https://mcp.jina.ai/v1
    tools:
    - type: mcp_toolset
    mcp_server_name: jina
    default_config:
    enabled: true
    permission_policy:
    type: always_allow
    skills: []
    metadata: {}
  2. agent.yamlを読み込ませてエージェントを作成し、IDを変数に保存します。

    Terminal window
    $AGENT_ID = Get-Content agent.yaml -Raw -Encoding UTF8 | ./ant beta:agents create --transform id --raw-output

    変数の中身を表示して、agent_で始まるIDが保存されていることを確認します。

    Terminal window
    $AGENT_ID
  1. ここまでで保存した3つのIDが揃っていることを確認します。

    Terminal window
    $AGENT_ID; $ENVIRONMENT_ID; $VAULT_ID
  2. エージェント・環境・ボールトのIDを指定してセッションを作成し、IDを変数に保存します(コマンドは1行です)。

    Terminal window
    $SESSION_ID = ./ant beta:sessions create --agent $AGENT_ID --environment-id $ENVIRONMENT_ID --vault-id $VAULT_ID --transform id --raw-output

    変数の中身を表示して、sesn_で始まるIDが保存されていることを確認します。

    Terminal window
    $SESSION_ID
  1. ターミナルを2つ使い、片方でイベントをリアルタイムに受信しながら、もう片方からメッセージを送信します。まず、これまで使ってきたウィンドウ(ターミナル1)でイベントのストリーム受信を開始します。

    Terminal window
    ./ant beta:sessions:events stream --session-id $SESSION_ID --format jsonl

    コマンドは実行したまま、イベントが届くのを待ち受けます。--format jsonlを付けているので、イベントは1行ずつJSON形式で表示されます。

  2. 新しいウィンドウ(ターミナル2)を開き、送信の準備をします。変数はウィンドウごとに独立しているため、ターミナル2にも$SESSION_IDを設定します。ここにセッションIDの部分は、5. セッションを作成で表示したsesn_から始まるIDに置き換えてください(ターミナル1の画面をさかのぼると確認できます)。

    antを展開したフォルダーで新しくPowerShellを起動し、以下を実行します。

    Terminal window
    $OutputEncoding = [Console]::OutputEncoding = New-Object System.Text.UTF8Encoding $false
    $SESSION_ID = "ここにセッションID"
  3. ターミナル2からメッセージを送信します(コマンドは1行です)。

    Terminal window
    ./ant beta:sessions:events send --session-id $SESSION_ID --event '{type: user.message, content: [{type: text, text: "最新のRAGに関する論文を検索して"}]}'

    送信すると、ターミナル1にuser.messageをはじめとするイベントが流れ始めます。MCPツールの呼び出し(agent.mcp_tool_use)に続いて、agent.messageイベントのtextとして回答が届きます。session.status_idleが表示されたら完了です。

    回答を確認できたら、ターミナル1でCtrl+Cを押してストリームを終了してください。

    表示を見逃した場合は、イベント履歴から確認できます。イベントが1行ずつ表示され、agent.messageの行のtextが回答です。

    Terminal window
    ./ant --format jsonl --transform '{type,text:content.0.text}' beta:sessions:events list --session-id $SESSION_ID
  4. コンソールの「セッション」メニューから同じセッションを開くと、画面上でもやり取りを確認できます。

  • コンソールで作ったものと同じ構成(ボールト → 環境 → エージェント → セッション)を、antコマンドだけで再現しました。
  • ベータ版APIはbeta:プレフィックスのコマンドで呼び出します。--transform id --raw-outputでレスポンスからIDだけを取り出し、変数で次のコマンドに受け渡しました。
  • 設定は1行のフラグ(--auth--event)でも、YAMLファイル(agent.yaml)でも渡せます。
  • セッションとのやり取りは、events sendで送信し、events stream(または履歴の取得)で確認します。

おつかれさまでした!ここまでの感想を、ぜひXにポストしてください。

感想をXにポストする