惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
博客园 - Franky
MyScale Blog
MyScale Blog
L
LangChain Blog
Martin Fowler
Martin Fowler
Recent Announcements
Recent Announcements
Stack Overflow Blog
Stack Overflow Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 司徒正美
量子位
A
About on SuperTechFans
C
Check Point Blog
大猫的无限游戏
大猫的无限游戏
Last Week in AI
Last Week in AI
小众软件
小众软件
Apple Machine Learning Research
Apple Machine Learning Research
I
InfoQ
V
Visual Studio Blog
Vercel News
Vercel News
B
Blog
爱范儿
爱范儿
aimingoo的专栏
aimingoo的专栏
U
Unit 42

编程笔记

智元灵犀X2机器人二开02:端侧环境与第一个 AIMDK 程序 智元灵犀X2机器人二开01:认识灵犀 X2 与二开全景,端侧、云端与灵心平台 腾讯WorkBuddy海外版来啦,注册畅玩gpt-6-Astra,deepseek-4.1-flash限时免费 Tencent's WorkBuddy AI: Sign Up to Enjoy GPT-6-Astra and now DeepSeek-4.1-Flash is Free AI|大模型智力测试,鹈鹕SVG生成 转载|一图看懂大模型性价比 谷歌云收入暴增82%、公募科技持仓突破60%:AI不会减速的七个铁证 AI|AI面试题,AI来解答 译|为什么 TypeScript 7.0 用 Go 重写 解决Fish Shell中使用vfox报错,Lacks hook support 股票配债缴款操作指南 Deepseek大模型越狱/破甲提示词 用DeepSeek-V4-Pro大模型写长篇小说,网文 全网寻找的同花顺板块同列网页版来了!盯盘效率提升 5 倍的黑科技 等一个黄金坑:中海物业跌到什么价位,到手股息率能有6%? Claude Code(1)在 WSL Ubuntu 上安装和配置指南 (译)AI 裁员潮:亚马逊、微软等科技巨头将 2025 年裁员归因于人工智能 AI|L2和L3级自动驾驶有什么区别 AI|Gemini CLI 实用技巧与窍门 AI|Gemini CLI Tips & Tricks 限制 Microsoft Edge 浏览器的内存占用 (Repost)4.3 Million Browsers Infected,Inside ShadyPanda's 7-Year Malware Campaign (译)430万浏览器被感染,揭秘 ShadyPanda 持续 7 年的恶意软件活动 github Fine-grained personal access token 使用 必应搜索屏蔽垃圾网站 译|Linux 启动过程:从按下电源到内核 独立开发:AI图生图获得第一位付费用户,现在支持在线支付了 译|面试官引诱我安装恶意软件(我是如何在一次“工作面试”中差点被黑的) 译|在 Go 中防止 CSRF 的现代方法,CrossOriginProtection AI图生图:释放你的无限创造力,免费在线生成惊艳图像
Grok账号如何获取SSO cookie及如何在vscode中使用grok api
yigmmk · 2026-08-10 · via 编程笔记

参考 AIClient-2-API README-ZH.md 的「Grok Cookie/SSO 配置」章节

获取步骤:

  1. 获取 SSO 令牌:登录 Grok 官网,打开浏览器开发者工具(F12),进入 Application → Cookies,找到并复制 sso 字段的值。
  2. 填入配置:在 Web UI 的「配置管理」页面,或直接修改配置文件,将令牌填入 GROK_COOKIE_TOKEN 字段。
  3. 注意事项:务必确保 GROK_USER_AGENT 与你获取 Cookie 时使用的浏览器 User-Agent 一致,否则可能被 Cloudflare 拦截导致 403 错误。

支持功能:

  • 聊天与思考模型(Grok 3 Thinking)
  • 图片生成(Grok Imagine)
  • 视频生成(Grok Video)

如果遇到 403 错误,可参考 README 中的 TLS Sidecar 配置 章节开启 TLS 指纹绕过。

添加自定义模型,最好自己部署个网关(cc-swich,sub2api等),配置里添加网关地址就行,在网关里配置模型和订阅更方便,apiType使用chat-completions,responses在vscode里不支持,或者部分功能无法使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
"name": "自部署",
"vendor": "customendpoint",
"apiKey": "${input:chat.lm.secret.-34e43f49}",
"apiType": "chat-completions",
"models": [
{
"id": "grok-4.5",
"name": "grok-4.5",
"url": "http://localhost:28080/v1",
"toolCalling": true,
"vision": true,
"maxInputTokens": 128000,
"maxOutputTokens": 16000
},
{
"id": "grok-4.6",
"name": "grok-4.6",
"url": "http://localhost:28080/v1",
"toolCalling": true,
"vision": true,
"maxInputTokens": 128000,
"maxOutputTokens": 16000
}
]
}

比如function call或报错400

Request Failed: 400 {“error”:{“message”:”function_call_output requires item_reference ids matching each call_id on HTTP requests; continuation via previous_response_id is only supported on Responses WebSocket v2”,”type”:”invalid_request_error”}}: Err

这是因为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
这个报错基本可以确定是 **Grok / xAI Responses API 的 Function Calling 状态续接方式出了问题**。

核心错误:

> `function_call_output requires item_reference ids matching each call_id on HTTP requests; continuation via previous_response_id is only supported on Responses WebSocket v2`



你的调用链大概率是:

```text
请求 1

Grok 返回 function_call

你执行 function/tool

请求 2:提交 function_call_output
+ previous_response_id

HTTP 400

问题在于:HTTP 模式下,xAI 对 function_call_output 的上下文引用有额外要求,而 previous_response_id 这种续接方式目前属于 WebSocket v2 的能力。

xAI 官方文档对 WebSocket 模式明确说明:在 WebSocket 上可以通过:

1
2
3
4
5
6
7
8
9
10
{
"previous_response_id": "resp_xxx",
"input": [
{
"type": "function_call_output",
"call_id": "call_xxx",
"output": "tool result"
}
]
}

继续对话。(SpaceXAI)

而 xAI 官方 Function Calling 的 HTTP 示例虽然也展示了 previous_response_id,但你这个错误说明你当前实际使用的 HTTP 接口/版本已经要求 function call output 带对应的 item reference,而不是单纯依赖 previous_response_id。(SpaceXAI)


最可能的修复方案

如果你现在代码类似:

1
2
3
4
5
6
7
8
9
10
11
response = client.responses.create(
model="grok-4.5",
input=[
{
"type": "function_call_output",
"call_id": item.call_id,
"output": json.dumps(result)
}
],
previous_response_id=response.id,
)

不要继续这么做。

方案 A:HTTP 模式,完整携带上下文

不要依赖:

1
"previous_response_id": "xxx"

而是把上一轮的 response.output 中相关的 function_call item 一起带上:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
response = client.responses.create(
model="grok-4.5",
input=[

{
"type": "function_call",
"call_id": item.call_id,
"name": item.name,
"arguments": item.arguments,
"item_reference": item.id
},


{
"type": "function_call_output",
"call_id": item.call_id,
"output": json.dumps(result)
}
],
tools=tools,
)

但这里有一个关键点:

你需要确认你实际使用的 xAI API 版本对 item_reference 的字段名和格式要求。

因为你这个错误不是普通的 call_id 不存在,而是明确提示:

1
function_call_output requires item_reference ids matching each call_id

也就是说服务端正在要求:

1
2
3
4
5
function_call_output

├── call_id

└── item_reference → 对应上一轮 function_call 的 item id

方案 B:如果你是自己做 Agent,推荐直接改成 WebSocket

如果你这个 Grok 是用于 Coding Agent / MCP / 自动执行工具 / 多轮 Function Calling,我反而建议直接用 xAI 的 Responses WebSocket v2。

官方就是针对这种场景设计的:

agentic workloads with many sequential tool calls

(SpaceXAI)

流程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
WebSocket


response.create


Grok

├── function_call


你的程序执行 Tool


function_call_output


response.create


Grok继续

续接时:

1
2
3
4
5
6
7
8
9
10
11
{
"type": "response.create",
"previous_response_id": "resp_123",
"input": [
{
"type": "function_call_output",
"call_id": "call_123",
"output": "tool result"
}
]
}

这是 xAI 官方 WebSocket 文档给出的模式。(SpaceXAI)


如果你是 OpenAI SDK 调 xAI

还有一个非常值得检查的地方。

如果你的代码是:

1
2
3
4
5
6
from openai import OpenAI

client = OpenAI(
api_key=...,
base_url="https://api.x.ai/v1"
)

然后:

1
client.responses.create(...)

那么你实际上是在使用 OpenAI SDK + xAI Responses API

这种情况下尤其容易出现:

1
2
3
4
5
6
7
8
9
10
11
OpenAI SDK

Responses API

xAI

Function Calling

HTTP continuation

400

xAI 官方目前仍提供 OpenAI SDK 兼容方式,所以 SDK 本身不一定有问题,但 Responses API 的 HTTP/WebSocket 行为不能完全按照 OpenAI 的实现假设处理。(SpaceXAI)


另外一个容易踩坑的地方:旧会话

如果这个错误是在某个已经存在很久的 Agent/Coding 会话中突然出现的,建议:

直接新建一个 conversation/session 测试。

因为 Function Calling 的历史 item 已经可能和当前 call_id / item_reference 对不上。

类似问题在一些基于 OpenAI Responses API 的第三方客户端中也出现过,常见处理方式就是升级客户端后重新建立新会话,不要继续复用损坏的历史状态。(LINUX DO)


我建议你这样判断

你的场景 建议
普通 Grok 对话 不要用 previous_response_id
单次 Function Calling HTTP + 完整 input history
多轮 Function Calling WebSocket v2
Coding Agent WebSocket v2
MCP Agent WebSocket v2
OpenAI SDK → xAI 检查 Responses API 的续接实现
已经报错的旧会话 新建 session

如果你把你现在调用 Grok 的那段代码贴出来(尤其是 responses.create() / function_call_output 那部分),我可以直接帮你定位是哪一行导致这个 400,并给你改成可以直接运行的 xAI Grok Function Calling 版本

```