AI AGENTS × OPEN SOURCE

AIエージェントに使わせるOSS

AIエージェントが賢く見えるのは、モデルだけの力ではありません。ファイルを探す、JSONを読む、動画を変換する。長く使われてきたOSSをCLIから呼び出すと、エージェントの「手」が増えます。

この記事のゴール
人が一度インストールした道具を、エージェントが決めた範囲だけで呼び出せるようにすること。インストール、権限、外部送信の判断は人が持ちます。
  1. 01まず、人とエージェントの境界を決める読む →
  2. 02CLIで呼び出す4つのOSS見る →
  3. 034つをつないで一つの作業にする試す →
  4. 04エージェントへの指示文使う →

まず、人とエージェントの境界を決める

CLIは強力です。だからこそ「何ができるか」より先に「何をさせないか」を決めます。最初の実験では、読む処理と作業フォルダ内への保存だけに絞ります。

人が決める

インストール、更新、対象URL、権限、料金、公開するかどうか。

エージェントに任せる

検索、形式の変換、候補の整理、ログの読み取り。

人が確認する

外部送信、削除、公開、課金、知らないコマンドの実行。

CLIで呼び出す4つのOSS

どれも一つの役割に絞った道具です。AIエージェントには「全部入りの魔法」を渡すのではなく、小さな道具を組み合わせて渡します。

ripgrep(rg)

探す

フォルダの中から、必要な文字列があるファイルと行を探します。既定ではGitの無視設定を尊重するので、検索範囲を説明しやすいのが特徴です。

rg -n --glob '*.md' 'AIエージェント' docs/

jq

整える

JSONを読むための小さな言語です。APIの返り値や設定ファイルから、必要な項目だけを取り出せます。

jq -r '.items[] | [.title, .url] | @tsv' data.json

FFmpeg / ffprobe

変換する

動画・音声の形式変換や、メディアの情報確認をCLIで行います。エージェントが作った動画の長さや解像度を、機械的に確認できます。

ffprobe -v error -show_entries format=duration -of csv=p=0 input.mp4
ffmpeg -i input.mp4 -ss 00:00:05 -frames:v 1 preview.jpg

yt-dlp

取得する

公開されている動画サイトのメタデータや、利用が許されている素材をCLIで取得します。まずは動画本体ではなく、情報だけを確認する使い方から始めます。

yt-dlp --dump-single-json --skip-download "<公開URL>" > metadata.json
インストールについて
macOSでの一例です。これは人が一度だけ実行し、エージェントには実行させません。
brew install ripgrep jq ffmpeg yt-dlp

Linux・Windowsの手順や更新方法は、それぞれの公式ページを確認します。入手元とライセンスを確認し、管理者権限を求めるコマンドを説明なしでエージェントに渡しません。

4つをつないで一つの作業にする

たとえば「動画の中から、特定の話題を含む回だけを候補にする」作業なら、各ツールの担当を分けられます。AIに任せるのは、候補の意味を読んで選ぶ部分です。

01yt-dlp公開ページの情報を取得
02jqタイトルとURLだけに整理
03ripgrep保存済みメモを横断検索
04人が確認採用・公開を決める

ここで止める

  • 取得したものを、そのままSNSやメールへ送らない。
  • 同名ファイルを上書きせず、出力先と件数を先に表示する。
  • 公開ページの利用規約と著作権を確認し、取得してよい情報だけを扱う。

エージェントへの指示文

最初から「自由にターミナルを使って」とは言いません。作業ディレクトリ、許可するコマンド、停止条件を一緒に書きます。

そのまま使えるたたき台

対象を読んで整理するだけの作業。外部へ送信・公開・削除・課金操作はしない。

作業ディレクトリは ./work です。
使ってよいコマンドは rg、jq、ffprobe、ffmpeg、yt-dlp だけです。
実行前に、対象ファイル・入力URL・出力先・作成件数を説明してください。
まず読み取り専用のコマンドを一つ実行し、結果を見せてください。
ファイルを上書きせず、出力は ./work/out/ に保存してください。
外部送信、公開、削除、課金、管理者権限が必要な操作は止めて私に確認してください。

この指示文の大事なところは、OSSの名前を並べることではありません。エージェントが「次に何をするか」を説明し、人が止められる状態を残すことです。