
「近くのカフェを探して」——AIエージェント にこう頼んだとき、エージェントがやるべきことは意外と単純です。
1つは「検索したい意図」(例: coffee/ramen)。もう1つは「検索の起点になる位置」です。後者はOSの位置情報やアプリ側の設定、あるいはユーザー入力で用意して、エージェントに渡します(goplacesが勝手に現在地を特定するわけではありません)。
設定次第では、Claude やOpenCode 、Codex のようなエージェントがローカルでシェルコマンドを実行できます。つまり、位置を入力として受け取り、外部APIで検索/経路案内を返すCLIが1つあれば、それだけで「位置情報スキル」を組み込めます。
そこで今回は、Google Places/Routesを叩けるCLIであるgoplaces を使って、この部分を安定して回すための実装パターンをまとめます。CLIを「エージェントが呼び出すプロトコル」として設計する観点は、先に「Agentic CLI Design: CLIをAIエージェント向けプロトコルとして設計する7つの原則 」で整理しました。本記事はその具体例です。
goplaces とは
goplacesは、Google Places API (New) とRoutes API のためのモダンなCLIツールです。作者のPeter Steinberger氏 (@steipete)は、OpenClaw の作者としても知られています。
goplacesは、言ってしまえば「Google Maps PlatformのAPIラッパー」です。ここが大事で、位置情報の知識や独自データを持っているわけではありません。
それでもgoplacesを使う価値があるのは、ラッパー部分が「エージェントが呼び出す道具」としてちょうど良い厚みで整備されているからです。Agent Skills(エージェントが参照するスキル定義ファイルの仕組み)に載せるなら、CLIはかなり相性が良いです。
主な特徴:
- Agent Skills向け設計:
--json出力、明確な終了コード(コマンドの成否を示す数値)、--helpによる自己文書化 - 最新API対応: Places API (New)とRoutes APIに最初から対応
- 豊富な機能: テキスト検索、近隣検索、ルート検索、経路案内、写真取得
自分の中での位置づけは「APIを直接叩く前の、安定したCLIの薄い層」です。
セットアップ
インストール
| |
APIキーの設定
Google Cloud Console で「Places API (New)」と「Routes API」を有効化し、APIキーを取得します。
| |
⚠️ Places APIは従量課金です。料金ページ を確認し、予算アラートを設定してください。
AIエージェントからの利用例
基本: 場所の検索
AIエージェントが「渋谷周辺のカフェを探して」というリクエストを受けた場合、以下のコマンドを実行します。
ここで使う--lat/--lngは、ユーザーが明示的に渡した位置情報や、端末/アプリ側の位置情報機能(OSの位置情報、ブラウザのGeolocation APIなど)で取得した値を想定しています。
ここでの狙いは、出力をJSON(構造化されたデータ形式)にして、エージェント側が確実にパースできるようにすることです。
| |
出力(JSON):
以下はイメージです(フィールド名や構造はバージョンで変わる可能性があります)。
| |
AIエージェントはこのJSONを解析し、ユーザーに自然言語で回答します。
経路案内
「東京駅から渋谷駅への行き方を教えて」:
| |
近隣検索
「現在地周辺のレストラン」:
| |
コマンドの組み合わせ
Unixパイプ(|)を使って、検索結果をさらに処理できます。ここではjq
(JSONを加工するCLI)を使います。
jqが入っていない場合は先にインストールしてください(macOSなら以下で入ります)。
| |
| |
Claude Code / OpenCode / Codex での活用
※コマンド実行の可否は、利用しているエージェント/設定/権限に依存します(サンドボックスや承認フローが入る場合もあります)。
ここで言うClaude Codeは、Claude Code を指します。
AGENTS.md への追記例
プロジェクトの指示ファイル(例: AGENTS.md)に以下を追記することで、AIエージェントにgoplacesの使い方を教えられます。
| |
実際の対話例
ユーザー: 「渋谷駅周辺で評価4以上のラーメン屋を3件教えて」
AIエージェント(内部でコマンド実行):
| |
AIエージェント(ユーザーへの回答):
渋谷駅周辺で評価4以上のラーメン屋を3件見つけました:
一蘭 渋谷店 ⭐4.3 (1,234件)
- 住所: 東京都渋谷区宇田川町25-5
- 現在営業中
AFURI 渋谷 ⭐4.5 (892件)
- 住所: 東京都渋谷区神南1-20-5
- 現在営業中
麺屋武蔵 渋谷店 ⭐4.2 (567件)
- 住所: 東京都渋谷区道玄坂2-6-1
- 現在営業中
トラブルシューティング
APIキーエラー
Error: GOOGLE_PLACES_API_KEY environment variable is required
→ 環境変数を設定してください。
APIが有効化されていない
Error: Google Places API (New) is not enabled
→ Google Cloud Console でAPIを有効化してください。
デバッグ
詳細なログを出力:
| |
まとめ
goplaces は、位置(緯度・経度や地点名など)を入力として、周辺検索や経路案内を実行できるCLIツールです。
- シンプル:
brew installしてすぐ使える - Agent Skills向け: JSON出力、明確な終了コード、自己文書化
- 保守不要: ツールのアップデートで自動的に最新API対応
Agent Skills
としてスキルディレクトリ(例: .agents/skills/ や ~/.agents/skills/)に配置すれば、Claude CodeやOpenClawから位置情報スキルとして利用できます。