必须手动替换llm调用层并重写工具适配逻辑才能使grok驱动autogpt,否则启动即报“provider not supported”;需确认grok-2/3可用性、配置api密钥、修改provider_map、实现grokprovider类、更新.env启用grok,最后验证日志中出现[grokprovider]请求及混合语言响应。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想让Grok模型驱动AutoGPT执行自主任务规划,但默认配置不支持Grok接入——必须手动替换LLM调用层并重写工具适配逻辑,否则Agent启动即报错“Provider not supported”。
确认Grok可用性与API密钥获取
访问 Grok API控制台,登录X(原Twitter)账号后进入Developer Portal → Create New App → 选择“Grok-2”或“Grok-3”模型 → 复制生成的API Key。
【必须使用Grok-2及以上版本】 AutoGPT当前仅兼容Grok-2和Grok-3,Grok-1因无function calling能力无法支撑Agent循环。
在终端中运行 curl -H "Authorization: Bearer YOUR_API_KEY" https://api.x.ai/v1/models,确认返回中包含 "id": "grok-2" 或 "id": "grok-3"。
修改AutoGPT源码以支持Grok Provider
打开 autogpt/llm/providers/__init__.py,在 PROVIDER_MAP 字典末尾添加:
"grok": "autogpt.llm.providers.grok.GrokProvider"
新建文件 autogpt/llm/providers/grok.py,内容如下:
from autogpt.llm.base import Message, ChatModelProvider<br>import requests<br><br>class GrokProvider(ChatModelProvider):<br> def __init__(self, api_key: str, model: str = "grok-2"):<br> self.api_key = api_key<br> self.model = model<br> self.base_url = "https://api.x.ai/v1/chat/completions"<br><br> def chat_completion(self, messages: list[Message], **kwargs) -> str:<br> headers = {"Authorization": f"Bearer {self.api_key}", "Content-Type": "application/json"}<br> payload = {"model": self.model, "messages": messages, "stream": False}<br> res = requests.post(self.base_url, headers=headers, json=payload)<br> return res.json()["choices"][0]["message"]["content"]
注意:此实现绕过function calling,仅启用基础chat completion。若需工具调用,必须升级至Grok-3并启用 "tool_choice": "auto" 及完整tools schema定义。
配置.env启用Grok作为默认LLM
编辑项目根目录下的 .env 文件,注释掉 OPENAI_API_KEY 行,新增三行:
GROK_API_KEY=your_actual_grok_api_key_here<br>GROK_MODEL=grok-2<br>LLM_PROVIDER=grok
【LLM_PROVIDER值必须全小写且与__init__.py中键名严格一致】 拼写为"GROK"或"Grok"将导致初始化失败,进程静默退出无报错。
删除 auto_gpt_workspace 目录(如有),避免旧记忆缓存干扰新Provider初始化。
启动Agent并验证Grok响应闭环
执行:python -m autogpt --continuous
首次启动时,系统会提示输入Agent名称与角色描述,例如输入 Data Analyst 和 You analyze public datasets and generate actionable insights.。
当看到日志中出现 [GrokProvider] Request sent → model: grok-2 且后续输出含中文/英文混合响应(如“正在搜索2025年全球Python岗位需求趋势…”),说明Grok已接管规划模块。
若30秒内无任何子任务生成,立即检查 outputs/logs/latest.log 中是否含 401 Unauthorized —— 此时需重新核对GROK_API_KEY是否复制完整,X平台密钥含前缀 sk- 不可遗漏。











