本記事は、Claude Codeの開発に携わるAnthropicのThariq Shihipar(@trq212)氏がXに投稿した内容をもとに作成しています。原文はこちらをご参照ください → https://x.com/trq212
「Bashを使いなさい」——これが一貫したアドバイス
Thariq氏は、様々な業種の企業がAIエージェントを作るところに携わってきました。その経験から出てくるアドバイスはほぼ毎回同じだったと言います。
「もっとBashツールを使いなさい。」
コーディング用ではない、一般的な業務自動化エージェントを作っている会社へのアドバイスでも、です。
なぜコードを書かない業務のエージェントにも、Bashが必要なのでしょうか?
そもそも「Bash」とは何か?
Bashとは、コンピュータに「コマンド(命令)」を直接入力して実行させるためのインターフェースです。エンジニアが黒い画面に文字を入力している、あのイメージです。
ファイルを検索したり、別のプログラムを呼び出したり、複数の処理を順番につないだりする作業を、テキストコマンドで行えます。
Claude Codeでは、このBashをAIが「道具」として使えます。AIが自分でコマンドを考えて実行することで、単なる「回答機械」ではなく「コンピュータを使って実際に仕事をする存在」になります。
メール代金の例で見る「Bashあり・なし」の違い
「今週、ライドシェアにいくら使ったか教えて」という質問で比べてみましょう。
Bashなし(ツール呼び出しだけの場合)
- メールAPIから100件のメールを取得する
- その100件をそのままAIに渡す
- AIが100件の中から関連するものを手探りで見つけて計算する
大量のデータをAIに丸投げする形になるため、見落としが起きやすく、「なぜその金額になったのか」の説明が曖昧になりがちです。
Bashあり
- メールを取得してファイルに保存する
- Bashで「ライドシェア」「Uber」などのキーワードで検索する
- 関連するメールだけを取り出して確認する
- 必要なら検索条件を変えて再試行する
- 正確な金額を計算して回答する
精度が上がるのはもちろん、「このメールがヒットしたから合計○円」という形で根拠を示せます。
Bashが強い理由:「コードで処理する」ということ
Bashで処理するということは、実質的に「コードを実行する」ということです。コードによる処理には特別な強みがあります。
再現できる: 同じ処理を何度でも同じように実行できる
確認できる: どのファイルを検索したか、何がヒットしたかを追跡できる
修正できる: うまくいかなければ条件を変えて試し直せる
正確: 人間の記憶やAIの推測ではなく、機械的な処理なので幻覚が起きにくい
コーディング以外での活用例4つ
1. API連携の連鎖処理
「今週メールを送った全員の連絡先をリストアップして」という依頼を考えます。
これを実現するには「送信済みメールを全件取得→送信先アドレスを抽出・重複削除→各アドレスに個別でAPIリクエスト」という複数のステップが必要です。一つのAPIコールでは処理できません。Bashスクリプトでこの連鎖をまとめて自動実行できます。
2. 動画・ファイルの加工
ffmpeg(動画を処理するオープンソースのツール)などをBashから呼び出せます。
- 長い動画から特定シーンを切り出す
- 字幕ファイルから特定のセリフが出てくる時刻を探す
- 複数の画像をまとめてリサイズする
AIが「どこを切り出すか」を判断し、Bashが実際の加工を担当する、という分業です。
3. 定期実行タスクの自動設定
「毎週月曜日に報告書を送って」という依頼に対して、Bashのcron(定時実行の仕組み)を使って自動化を設定できます。ユーザーがリクエストするたびに、エージェントが動的にスケジュールを作成します。
4. 添付ファイルの内容を調べる
メールに添付されたPDFの中身をAIに調べさせたい場合:
- Bashでファイルをダウンロード
- PDFをテキストに変換するコマンドを実行
- テキストから必要な情報を抽出
このような複数ステップの処理もBashでつなぎ合わせることができます。
Bashを安全に使うための権限管理
Bashは何でもできるからこそ、安全に使う仕組みが必要です。Claude Codeには権限管理システムが用意されています。
| 権限モード | 動作 | 使う場面 |
|---|---|---|
| default(標準) | 未設定の操作はユーザーに確認 | 通常利用 |
| acceptEdits | ファイル操作を自動承認 | 試作・開発時 |
| bypassPermissions | すべて自動承認 | 完全に制御された環境のみ |
| dontAsk | 未承認の操作を即拒否 | ヘッドレス(無人)実行時 |
特定の操作だけを許可・禁止する細かい設定も可能です。
# これだけ許可する
allowed_tools=["Read", "Grep"]
# これだけ禁止する
disallowed_tools=["Bash"]
拒否ルールはすべてのモードより優先されるため、「bypassPermissionsモードでも、拒否リストに入ったコマンドは絶対に実行できない」という安全装置になっています。
まとめ
Bashツールの本質は「コンピュータを使って仕事をする力」です。
コーディング以外の業務でも:
- データを処理したい → Bashが役立つ
- 複数のステップを自動でつなぎたい → Bashが役立つ
- 結果を確認・修正したい → Bashが役立つ
「コーディングの話でしょ」と思わず、業務自動化のエージェントを作るときにもBashを積極的に検討してみてください。
コメント