关于 gemini
gemini 是通过 Google Gemini API 提供 AI 交互能力的 OpenClaw 技能,面向需要多模态输入、长上下文或动态函数调用的任务。它还支持数据 grounding 与代码执行。
主要功能
- 01处理文本、图像和音频
- 02支持长上下文
- 03动态函数调用
- 04实时数据 grounding
- 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 个 token)、多模态数据(例如文本 + 图像)或动态函数调用时,请使用此技能。它适用于代码生成、数据依据查询,或聊天机器人、内容分析、自动化脚本等应用中的基于 API 的工作流。对于轻量模型足以完成的简单纯文本任务,请避免使用它。
主要功能
- 多模态支持:通过 Gemini API 处理文本、图像和音频;例如,发送图像 URL 和文本进行分析。
- 长上下文:处理最多 1M 个 token 的扩展对话;在请求中指定上下文以维持状态。
- 函数调用:动态定义和调用外部函数;使用 API 的 tools 参数指定函数。
- 事实依据:集成实时数据获取以提供准确的回复;通过请求中的 grounding 配置启用。
- 代码执行:生成并执行代码片段;确保使用 try-catch 块安全地执行。
- API 端点:文本生成的主要端点是
https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent。
使用模式
要使用此技能,请先通过环境变量设置 API 密钥(export GEMINI_API_KEY=your_key)。然后,在 Agent 提示词中引用技能 ID("gemini"),即可在 OpenClaw 中调用它。进行 API 调用时,请将请求组织为 JSON 负载,并在标头中进行身份验证。模式:加载技能、准备输入数据(例如多模态数组)、发送请求并解析响应。始终通过监控 API 响应来检查速率限制。重复使用时,请缓存响应,或对长上下文使用流式传输。
常用命令/API
- API 请求:使用 HTTP POST 向
https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent发送请求,并使用标头Authorization: Bearer $GEMINI_API_KEY。 - 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"}}]}]。
集成说明
在 OpenClaw 中使用 skill load gemini 加载技能以完成集成。身份验证需要将 $GEMINI_API_KEY 设置为环境变量;不要将密钥硬编码。对于集群集成(例如 "community"),请通过 OpenClaw 的图谱引用:skill link gemini to other_skill。处理多模态输入时,请对文件进行编码(例如,将图像编码为 base64),并将其包含在 "parts" 数组中。如果可用,请使用 Google AI SDK 在本地测试;但在生产环境中应直接调用 API。确保 OpenClaw Agent 具有出站网络访问权限。
错误处理
检查 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 特定错误,请参阅 Google 的 API 文档,了解 "INVALID_ARGUMENT" 等错误代码。
图关系
- 相关项:“google”(共享 API 生态)、“ai”(具备常见的 AI 能力)、“multimodal”(与视觉/图像技能有重叠)。
- 连接方式:通过“community”集群连接到其他社区技能,例如用于对比的 openai。
- 依赖项:需要访问外部 API;在 OpenClaw 图中没有直接的技能依赖。