gemini について
gemini は Google Gemini API を通じて AI 対話機能を提供する OpenClaw スキルです。マルチモーダル入力、長いコンテキスト、動的な関数呼び出しを要するタスクに向き、データのグラウンディングとコード実行にも対応します。
主な機能
- 01テキスト、画像、音声の処理
- 02長いコンテキストへの対応
- 03動的な関数呼び出し
- 04リアルタイムデータによるグラウンディング
- 05コードの生成と実行
活用シーン
- 01マルチモーダル入力の分析
- 02長い会話の処理
- 03外部関数の呼び出し
- 04コード片の生成と実行
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill geminiインストール後、Claude Code で/geminiを入力して読み込まれたか確認します。
詳細
gemini
目的
このスキルは Google Gemini API と連携し、マルチモーダル入力、拡張されたコンテキスト処理、関数呼び出しやコード実行などの統合機能に重点を置いた、高度な AI インタラクションを実現します。大規模なコンテキストやマルチメディア処理を必要とする複雑なタスク向けに、OpenClaw の機能を拡張するために使用します。
使用する場面
最大 1M トークンの長時間にわたる会話、マルチモーダルデータ(例:テキスト+画像)、動的な関数呼び出しを伴うタスクに使用します。チャットボット、コンテンツ分析、自動スクリプト作成などのアプリケーションにおけるコード生成、データグラウンディング、API ベースのワークフローに最適です。軽量なモデルで十分な、単純なテキストのみのタスクには使用しないでください。
主な機能
- マルチモーダル対応:Gemini API を通じてテキスト、画像、音声を処理します。例:画像 URL とテキストを送信して分析します。
- 長いコンテキスト:長時間にわたる会話のために最大 1M トークンを処理します。状態を維持するには、リクエストでコンテキストを指定します。
- 関数呼び出し:外部関数を動的に定義して呼び出します。関数を指定するには、API の tools パラメーターを使用します。
- グラウンディング:正確な応答を得るために、リアルタイムのデータ取得を統合します。リクエストの grounding config で有効にします。
- コード実行:コードスニペットを生成して実行します。安全に実行するため、try-catch ブロックでラップしてください。
- API エンドポイント:テキスト生成用の主要なエンドポイントは
https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContentです。
使用パターン
このスキルを使用するには、まず環境変数(export GEMINI_API_KEY=your_key)で API キーを設定します。次に、エージェントのプロンプトでスキル ID("gemini")を参照して、OpenClaw から呼び出します。API 呼び出しでは、ヘッダーに認証情報を含めた JSON ペイロードとしてリクエストを構成します。手順は、スキルを読み込み、入力データ(例:マルチモーダル配列)を準備し、リクエストを送信して、応答を解析します。API 応答を監視して、必ずレート制限を確認してください。繰り返し使用する場合は、応答をキャッシュするか、長いコンテキストにはストリーミングを使用します。
よく使用するコマンド/API
- API リクエスト:
Authorization: Bearer $GEMINI_API_KEYヘッダーを付けて、https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContentに HTTP POST を使用します。 - curl による CLI の例:
curl -X POST -H "Authorization: Bearer $GEMINI_API_KEY" -H "Content-Type: application/json" -d '{"contents": [{"parts": [{"text": "Hello"}]}]}' https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent - 関数呼び出し:ペイロードに
"tools": [{"functionDeclarations": [...]}]を追加して関数を定義します。"parts": [{"functionCall": {"name": "functionName", "args": {}}}]を使って呼び出します。 - Python 統合用コードスニペット:
import requests response = requests.post('https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent', headers={'Authorization': f'Bearer {os.environ["GEMINI_API_KEY"]}'}, json={'contents': [{'parts': [{'text': 'Generate code for a simple server'}]}]}) print(response.json()) - 設定形式:リクエストには JSON を使用します。例:マルチモーダルの場合は
{"contents": [{"parts": [{"text": "Prompt"}, {"inlineData": {"mimeType": "image/jpeg", "data": "base64encodedimage"}}]}]
統合に関する注意事項
skill load gemini を使用して OpenClaw にスキルを読み込み、統合します。認証には $GEMINI_API_KEY を環境変数として設定する必要があります。キーをハードコードしないでください。クラスター統合(例:"community")の場合は、OpenClaw のグラフで skill link gemini to other_skill のように参照します。ファイル(例:画像を Base64 に変換したもの)をエンコードして "parts" 配列に含めることで、マルチモーダル入力を処理します。利用可能であれば Google AI SDK を使用してローカルでテストしますが、本番環境では直接 API を呼び出してください。OpenClaw エージェントが外部へのリクエストを行えるよう、ネットワークアクセスを確保してください。
エラー処理
HTTP ステータスコードを確認します。認証の問題を示す 401 の場合は $GEMINI_API_KEY を確認し、レート制限を示す 429 の場合は指数バックオフによる再試行ロジックを追加します。応答本文から API エラーを解析します。たとえば、"code" が 4 の場合は、送信前にプロンプトを検証して無効な入力に対処します。コードでは、次のように呼び出しをラップします。
try:
response = requests.post(...) # API call
if response.status_code != 200:
raise Exception(response.json()['error']['message'])
except Exception as e:
print(f"Error: {e} - Retrying in 5 seconds")
time.sleep(5)
デバッグのため、プロンプトの詳細などのコンテキストを含めて、必ずエラーを記録してください。Gemini 固有のエラーについては、"INVALID_ARGUMENT" などのコードが記載された Google の API ドキュメントを参照してください。
グラフ上の関連性
- 関連項目:「google」(API エコシステムを共有)、「ai」(共通する AI 機能)、「multimodal」(ビジョン/画像関連のスキルと重複)。
- 接続先:「community」クラスター(比較用途で openai など、ほかのコミュニティスキルにリンク)。
- 依存関係:外部 API へのアクセスが必要です。OpenClaw グラフ内に直接的なスキル依存関係はありません。