2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Codexの --search で最新情報をWebから調べさせる — cachedとliveの違いと最初の1コマンド

2
Posted at

AIにコードのことを相談していて、「あれ、その情報ちょっと古くない…?」と感じたこと、ありませんか。

新しく出たライブラリのバージョンを聞いたのに、少し前の答えが返ってくる。まだ存在しない前提で話が進む。なんかこれって、めっちゃもったいない気がするんですよね。せっかく賢いのに、見ている世界が「ちょっと前」で止まっている。

今日はその悩みにピンポイントで効く、OpenAIの Codex CLI--search という機能を、ひとつだけ、とことん丁寧に紹介します。まだCodexを触ったことがない方でも、この記事だけで「最新情報をWebから調べさせる」ところまでたどり着けるように書きました。扱うのは --search ひとつだけ。あれもこれもは詰め込みません。

この記事は、Codexの公式ドキュメントを実際に読んで、コマンド名やモードの挙動を照合したうえで書いています。読んだページは末尾の「参考リンク」にまとめました。


そもそも Codex CLI と --search って何?

まず言葉から、ひとつずつほどいていきます。

  • CLI … 「Command Line Interface」の略で、ターミナル(黒い画面に文字を打って操作するアプリ)でコマンドを打って使う方式のことです。マウスでボタンを押す代わりに、文字で指示を出すイメージですね。
  • Codex CLI … そのターミナルの中で動く、OpenAIのコーディング用AIエージェントです。あなたのパソコン上でファイルを読んだり、コードを書いたり、コマンドを実行したりしてくれます。
  • フラグ … コマンドの後ろにつける「オプションのスイッチ」のことです。--search のように -- で始まる文字を足すと、その回の動きを少し変えられます。

つまり --search は、Codexを起動するときに付ける「今回はWebから最新情報を取りに行っていいよ」というスイッチ なんです。ここ、地味だけど大事なので先に言っておきますね。--search は、ターミナルで打つ検索コマンド(grepみたいなもの)ではありません。Codexを立ち上げるときのフラグ です。ここを最初に押さえておくと、後がすっと入ってきます。


実は、最初からWeb検索は動いている

ここでちょっと意外な話を。

「じゃあ --search を付けないとWeb検索は一切できないの?」と思いますよね。正直に言うと、そうではない んです。

公式のConfig basicsによると、Codexはローカルでのチャットで 標準でWeb検索が有効 になっています。ただし既定は「cached(キャッシュ)モード」。これは、OpenAIが管理しているWeb結果のインデックス(あらかじめ取り込んでおいた索引)から答えを引く方式です。ライブでその場のページを取りに行くのではなく、事前に索引化された結果を返す。だから、動いてはいるけれど「最新のいままさに」ではないことがある、というわけです。

Codexの web_search には、次の4つのモードがあります。

モード 挙動 どんな時
cached(既定) OpenAI管理のインデックスから結果を返す ふだんはこれ。手軽で安全寄り
indexed 検索インデックスが必要と判断した時だけ外部アクセスを許可 ゲートを効かせたい時
live いまのWebから最新データを取りに行く(--search と同じ) 最新情報が要る時
disabled Web検索そのものをオフにする 一切ネットに出したくない時

そして本題の --search は、この live を一時的にオンにするフラグ です。公式にも「live--search と同じ)」と明記されています。

まとめると、こういう分岐で考えると迷いません。

  • ふだん(cached)… だいたいの調べ物はこれで十分。
  • 最新が要る一回だけ(--search = live)… 「昨日リリースされた話」みたいな時に付ける。
  • 完全にオフ(disabled)… ネットに出したくない環境の時。

なぜ便利か:古い前提のまま実装が進むのを止められる

AIコーディングでいちばん怖いのは、「間違ったまま、それっぽく進んでしまう」ことだと思うんです。

たとえば、新しめのライブラリの使い方を相談したとします。cachedの索引にまだ十分反映されていないと、AIは少し前のAPIを前提に、堂々と自信満々にコードを書いてくれる。で、動かして初めて「あ、そのメソッドもう無いやつだ…」と気づく。この手戻り、地味に時間を溶かしますよね。

--search(live)を付けておくと、Codexはその回、いまのWebを見に行ってから 答えを組み立てます。つまり「古い前提で走り出す」前に、最新の一次情報で足元を確認できる。ここが --search の本当の価値だと、僕は思っています。


使い方①:インストールとサインイン(最短)

まだCodexを入れていない方向けに、いちばん短い道だけ置いておきます。すでに使っている方は、次の②まで飛ばして大丈夫です。

Mac / Linux の場合(ターミナルに貼り付けて実行):

curl -fsSL https://chatgpt.com/codex/install.sh | sh

Windows の場合(PowerShellに貼り付け):

powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"

npm や Homebrew が好きな方は、こちらでも入ります:

# npm を使う場合
npm install -g @openai/codex

# Homebrew を使う場合(Mac)
brew install --cask codex

入ったら、まずは起動して、ちゃんと入ったか確認しましょう。

codex --version

バージョン番号が表示されればOKです。(この記事では、ここまでは実際に手元で確認できる範囲として書いています。この先の対話部分は、公式仕様に基づく手順で、筆者環境では検索の実行例までは未実行です。)

初回は、そのまま codex と打つとサインインを求められます。「Sign in with ChatGPT」 を選んで、お使いのChatGPTアカウント(Plus / Pro など)でログインするのが公式のおすすめです。APIキーでの利用もできますが、こちらは追加設定が要るので、まずはChatGPTログインが一番やさしい入り口です。

codex
# → 「Sign in with ChatGPT」を選んでログイン

使い方②:codex --search で最新情報を聞く(10分の最初の成功)

ここが今日の主役、いちばんやってほしい「最初の一歩」です。10分あれば終わります。

やることは、たった3つ。

  1. --search を付けて起動する
  2. 「最近リリースされた○○の変更点は?」と1つだけ聞く
  3. やり取りのログ(transcript)で、実際に検索が走ったかを確認する

まず、--search を付けて起動します。

codex --search

起動したら、その入力欄に、最新情報が必要な質問をひとつ投げてみてください。たとえば、こんな感じです。

最近アップデートされた、あるフロントエンドのビルドツールの
最新安定版のバージョンと、主な変更点を3つだけ教えて。
出典のURLも一緒に出してください。

ポイントは 「出典のURLも」と添えること。こうすると、AIがどこを見て答えたのかが分かって、あとで自分でも裏取りできます。

Codexは、検索の動き(どんな検索をしたか)を、他のツール呼び出しと一緒に やり取りのログに残す 仕様になっています。なので、答えが返ってきたら、ログの中に検索が実行された形跡があるかを見てみてください。そこに検索のステップが見えていれば、それがあなたの「最初の成功」です。AIが、いまのWebをちゃんとのぞいてからしゃべってくれた 、という手応えですね。


使い方③:毎回 live にしたい人へ(設定ファイルに1行)

「毎回 --search を付けるの、忘れそう…」という方へ。恒久的に live にする方法も、1行だけ紹介しておきます。

Codexの個人設定は、~/.codex/config.toml というファイルに書きます(~ はあなたのホームフォルダのことです)。ここに次の1行を足すだけ。

web_search = "live"

これで、次からは付けなくても live で動きます。逆に、どうしてもオフにしたい環境なら web_search = "disabled" にします。

ただ、個人的には 「ふだんはcachedのまま、必要な時だけ --search で始めるのをおすすめします。理由は次の章で。設定ファイルの深掘りは今日はここまで。主役はあくまで --search ひとつ、に絞っておきます。


つまずきポイント / よくある質問

最初はみんな、ここでちょっと止まります。だいじょうぶ、順番に見ていきましょう。

Q. 検索が走っている気がしない
--search を付けて起動したか、もう一度確認してみてください。フラグは codex --search のように、codex の直後に付けます。あと、そもそも「最新情報が要る質問」でないと、AIが検索を使わない判断をすることもあります。「昨日/今週リリースされた〜」のように、時期を含めて聞くと動きやすいです。

Q. それでも情報が古い
既定のcachedは索引経由なので、出たばかりの話は反映が追いつかないことがあります。その時こそ live(--search)の出番です。live は「いまのWeb」を取りに行きます。

Q. 会社のルールでネットに出したくない
web_search = "disabled" にすれば、Web検索ツール自体をオフにできます。社内限定の情報だけで完結させたい時は、こちらが安心です。

Q. --search は検索コマンド?
いいえ。ターミナルで単独で打つ検索コマンドではなく、Codexを起動するときのフラグ です。codex --search とセットで使います。


ここは気をつけて:Web結果は「信頼しきらない」

最後に、いちばん大事な注意をひとつ。

公式は、はっきりこう言っています。Web検索の結果は、信頼できない入力(untrusted)として扱うこと

聞き慣れない言葉かもしれませんが、ここでいう危険のひとつが「プロンプトインジェクション」です。ざっくり言うと、AIが読み込んだWebページやドキュメントのなかにAIへの悪意ある指示が仕込まれていて、AIがそれにうっかり従わされてしまう、という攻撃です。

cachedモードは、OpenAIが管理する索引を経由するぶん、このリスクは低め。でも live は「その場のページ」を直接取りに行くので、リスクは相対的に上がります。だからこそ、live で得た内容は鵜呑みにせず、出典URLを自分の目で確かめる。この一手間だけは、習慣にしておくと安心です。

そして反証も正直に置いておきます。Web検索は、いつも必要なわけではありません

  • 答えが確定している小さなタスク(この関数のバグ直して、など)… cachedのままで十分。
  • 社内・非公開の情報だけで完結する作業 … むしろ disabled が安全。

「最新が要るかどうか」で切り替える。それだけで、速さと安全のバランスがぐっと良くなります。


まとめ

今日の話を、3行だけで。

  • ふだんは cached で十分。Web検索は最初から動いています。
  • 最新が要る一回だけ codex --search(live) を付ける。まずは「出典URLも」と添えて1問投げてみる。
  • live の結果は信頼しきらない 。出典を自分で確かめる癖をつける。

まずは今日、codex --search で1問だけ聞いてみてください。AIが「いまの世界」を見てからしゃべってくれる感覚、たぶん一度味わうと戻れなくなりますよ。

参考リンク(この記事で実際に読んだ公式ページ)


生成AI活用エンジニア&3児のパパ。AI×開発の実践知を毎日発信しています → X(旧Twitter)もぜひのぞいてみてください。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?