返回博客

Grok 停止回应已注销访客:这对 AI 答案监控意味着什么

Olivia Patel
Olivia Patel

Senior Cybersecurity Analyst

11-Aug-2026

在没有任何账户的干净浏览器配置文件中打开grok.com,输入一个问题,然后按回车键。提示出现在屏幕上。没有任何回应。取而代之的是页面提供了一个标题为“继续您的对话”的面板以及一个标记为“免费注册”的按钮。

这就是当前注销状态下Grok界面的行为,观察时间为2026年8月6日,来自两个独立的网络路径。页面没有失败。它返回HTTP 200,渲染了一个工作中的创作工具,接受了键击,并回显了问题。只有答案缺失。

对大多数人来说,这只是一个轻微的不便,最终会创建一个账户。对任何将Grok答案作为测量进行取样的人——品牌可见性跟踪、答案引擎研究、竞争监测、模型行为研究——这就不仅仅是这样了。一个数据源在不改变其形状的情况下改变了其含义,而大多数收集代码没有办法注意到这点。

实际上发生了什么变化

有两个界面使用Grok名称,它们的行为不同。

X上的Grok入口点是一个简单的登录墙。没有会话请求它会返回标准的X登录屏幕——“用手机继续”,“用Google继续”,一个电子邮件字段。根本没有任何聊天界面可以互动。这一点没有任何模棱两可的地方,指向它的收集代码会大声失败。

grok.com是有趣的那个。注销状态下,它仍然渲染产品:一个创作工具,一个固定在“快速”选项上的模型选择器,以及一句“通过消息联系Grok,您同意我们的条款和隐私政策。”页面上的一切都邀请您使用它。提交一个提示不会返回模型输出,注册面板取而代之。三个单独的提示产生了相同的结果,而从另一个国家的出口进行的第四次运行则完全重现了这一结果。

页面调用的两个端点值得注意,因为它们是监测系统最可能检查的内容——而且它们报告的内容取决于您提出问题的方式。

一个不带cookie的冷请求对情况非常坦率。 GET /api/auth/session回答{"status":"unauthenticated"},而速率限制端点则明确拒绝无凭证的调用。用普通客户端获取首页HTML不会改变任何东西,因为该抓取根本不设置任何cookie。

真实浏览器接受的则是另一个消息。加载grok.com会导致源发出一个匿名设备身份——包括grok_device_idx-anonuseridx-challengex-signature的cookie。从该页面内部查询相同的会话端点,状态字段现在读取authenticateduserId为空字符串:一个宣布成功的会话对象,但没有描述任何人。页面调用的速率限制端点作为POST报告一个7200秒窗口的两次查询许可。

这种顺序比任何值都更重要。对于不假装是浏览器的客户端,信号是诚实的,而对于假装是浏览器的客户端,信号是误导的。一个尽可能紧密模仿真实访问者的收集者正是那个被告知它持有一个有效会话和一个正配额的人,在答案被扣留的前一刻。

文档说的事情不同

这里最有用的证据是一个不匹配。xAI的Grok消费FAQ仍然将未验证的使用描述为一个被考虑的状态,涉及内容的保留:“如果您没有登录到您的账户以访问Grok(即您是未验证的),在允许的情况下,我们可能会以匿名方式收集和保留您的内容。” Grok网站和应用FAQ涵盖了订阅、账户链接和登录机制,根本没有描述匿名访问策略。

没有任何第一方公告、变更日志条目或帮助中心说明描述此更改的内容。这种缺失并不是证明它从未发布,而这种访问政策通常因地区而异,并逐步推出。但这确实意味着当前的实际情况是:书面记录和部署行为存在分歧,而部署行为即是您的收集者所面临的。

将该情况视为一般情况,而不是对某个供应商的投诉。消费者AI界面是处于积极商业压力下的产品,它们的访问规则是根据商业决策在商业时间表上推出的。文档跟踪部署。如果测量依赖于一个访问政策,则必须测量该政策,而不能仅仅阅读。

为什么失败是无声的

任何从这个界面收集的人都有一个特定形状的检测问题。
一个检查网络错误的收集器没有看到任何错误。一个检查HTTP状态代码的收集器看到200。HTTP语义规范定义200表示请求成功——而请求确实成功了。服务器被请求返回一个页面,并且它返回了一个。状态代码描述传输,而不是有效负载是否包含您想要的内容。一个检查页面是否被呈现、编辑器是否存在或提示是否被接受的收集器看到所有三个方面都有健康的信号,因为这三者都是正确的。

到达的不是答案,而是一个看起来合乎逻辑的记录。根据提取程序的编写方式,存储的值可能是一个空字符串、一个过渡复制,或者是用来持有响应的选择器附近的任何文本。这些都没有引起警报。它们都流入和上个月收集到的真实答案同一个表中。

下游的影响比缺口更严重。一个监控数据集默默地用空白代替答案并不读作损坏;它读作下降。在每个跟踪提示中,品牌提及骤降至零,声音份额随之下降。在一个与模型真正停止提及您没有区别的仪表板中——这正是此类仪表板存在的目的,且正是某人将会采取行动的发现类型。

需要退休的假设

在答案引擎监控中,有一种方法论论点认为,匿名抓取消费者界面是衡量AI系统最真实的方式,因为它再现了普通人所看到的内容。这种本能是合理的。匿名、未个性化、区域准确的采样确实避免了与历史和偏好相关的已登录帐户的扭曲。

问题在于,忠诚度和持久性是不同的属性,这一变化干净地将它们分开。未经身份验证的表面没有任何合同。没有版本、没有弃用通知、没有支持渠道,也没有关于明天返回的承诺。其行为可以因商业原因在任何时刻进行修订,这种修订以UI变化的形式出现,而不是错误。在其上构建纵向测量意味着基线可以在没有留下痕迹的情况下在时间序列下方移动。

这并不是一个假装已注销的论点,也不是大规模制造匿名身份的论点。这两者都重现了相同的脆弱性,同时还附加了合规性问题。诚实的结论更为狭窄且更有用:没有稳定承诺的界面不是测量工具,将其视为测量工具的风险始终存在,而未到期。

持久测量的样子

当一个表面在其下方发生变化时,四个实践可以保持监控系统的诚实。

关注意义,而不是运输。 当记录包含实质性答案时,它才是有效的,而不是当获取成功时。这意味着至少要有一个最小长度,并明确拒绝已知的无答案文本。以下的守卫故意设置得很小;关键在于在收集和存储之间必须存在类似的东西。

python Copy
GATE_MARKERS = (
    "continue your conversation",
    "sign up to continue",
    "sign up for free",
)

def validate_answer(text, min_chars=40):
    """Return (ok, reason) for one collected answer record."""
    body = (text or "").strip()
    if not body:
        return False, "empty-answer"
    lowered = body.lower()
    for marker in GATE_MARKERS:
        if marker in lowered:
            return False, f"access-state-changed:{marker}"
    if len(body) < min_chars:
        return False, f"suspiciously-short:{len(body)}"
    return True, "ok"


for sample in ["The boiling point of water at sea level is 100°C (212°F).",
               "Continue your conversation\nSign up for free", ""]:
    print(validate_answer(sample))

失败记录必须被记录为收集故障,而不是与真实答案写入同一列。“模型没有提及您的品牌”和“没有收集到答案”之间的区别是数据集的全部价值。相同的本能在IETF问题细节规范中得到标准化,因为仅凭状态行无法传达实际发生了什么错误。

将身份状态作为测量定义的一部分。 每个存储的记录应带有它被收集时的帐户状态。“Grok,未经身份验证,区域X”和“Grok,经过身份验证的免费层,区域X”是不同的工具,产生不同的数据,默默混合它们的时间序列在边界上是不可比较的。

偏好发布合同的接口。 Grok开发者平台在api.x.ai/v1上记录了一个带有承载身份验证的API,描述在其开发者平台概述中。这是一个有责任、有支持的渠道,具有声明的请求和响应形态。这与消费者Web应用程序是不同的产品,回答了不同的问题——API衡量模型行为,而不是消费者收到的特定渲染。请仔细选择,并在您的方法论中说明您选择了哪一个。
在变更时重新基准,并隔离差距。 当一个表面改变访问规则时,正确的响应是标记数据集中的边界,而不是填补它。任何在变化和检测之间收集的窗口都是受污染的,应该被排除在趋势分析之外,而不是默默地加入平均值。

Scrapeless的适用范围

如果需求是一个具有稳定、可检查形状的Grok答案流,通用抓取API中的LLM聊天抓取器系列揭示了一个scraper.grok演员。这是一个经过身份验证的、基于账户的服务,按您的API密钥计费——而不是匿名通道,也不是获取签出访客应获得的内容的方式。它在测量上的价值更窄且乏味:响应是一个声明的封装,因此当形状发生变化时,模式断言可能会大声失败。

一次运行返回full_response以及user_modeltoken_countweb_search_resultsx_search_resultsfootnotes。通过相同的保护将其传递是保持变更可见的关键:

python Copy
import json, os, time, urllib.request

KEY = os.environ["SCRAPELESS_API_KEY"]
SUBMIT_URL = "https://api.scrapeless.com/api/v2/scraper/request"
RESULT_URL = "https://api.scrapeless.com/api/v2/scraper/result/"

def call(url, method="GET", body=None):
    req = urllib.request.Request(
        url, method=method,
        headers={"x-api-token": KEY, "Content-Type": "application/json"},
        data=json.dumps(body).encode() if body else None)
    with urllib.request.urlopen(req, timeout=90) as resp:
        return resp.status, json.loads(resp.read().decode())

status, created = call(SUBMIT_URL, "POST", {
    "actor": "scraper.grok",
    "input": {
        "prompt": "What is the boiling point of water at sea level? Answer in one sentence.",
        "country": "US",
        "mode": "MODEL_MODE_FAST",
    },
})
print("submitted:", status, created["status"])

result = None
for _ in range(40):
    time.sleep(6)
    code, payload = call(RESULT_URL + created["task_id"])
    if code == 200:
        result = payload
        break

task = result["task_result"]
answer = (task["full_response"] or "").strip()
print("model:", task["user_model"], "| tokens:", task["token_count"])
print("chars:", len(answer), "| searches:", len(task["web_search_results"] or []))
assert answer, "empty answer — store this as a collection fault, not as a result"
print("answer:", answer)

在到达存储之前,从上一块发送answer通过validate_answer,以便返回的内容变化记录为故障,而不是静默的零。

mode字段在MODEL_MODE_FASTMODEL_MODE_EXPERT之间选择;请求机制、参数以及这两种模式之间的权衡在Grok演员的伴随指南中有所涵盖。基础请求量的定价见于Scrapeless定价页面

无论您从何处收集,都要在您正在使用的表面的条款内收集,保持体积与测量成比例,并保持在公共内容上。

您可以从免费计划开始,并将一个调度运行指向上面的保护点,然后再重建更大的内容。

这种阅读的局限性

以上一切基于一天和两个网络路径的观察。消费者AI产品的访问政策通常是区域性的,通常是分阶段的,偶尔是反转的。这里描述的行为可能与其他国家、其他出口或其他周有不同,并且速率限制端点向浏览器建立的会话报告的两次查询允许表明,基础政策比简单的开关更为细粒度。上述每个端点结果也取决于客户端类型和 cookie 状态,这就是为什么每个结果在此处附带前提条件,而不是作为关于该表面的单纯事实陈述。

这种不确定性是论点,而不是它的弱点。如果一个表面的访问规则可能因地理位置而异,并且可以在没有通知的情况下更改,那么没有单一观察结果——包括这一观察——是一个持久的基础。根据您自己的日程重新检查是使一个数字值得报告的原因。

在您信任一个依赖于它的数字之前,从您自己的出口亲自运行测量。

结论

已注销的Grok表面停止返回答案,但看起来仍然完全健康,并且没有发布公告,且与xAI自己的消费者FAQ中的描述相悖。这样的组合——一个可用页面,一个有效的状态代码,一个合理的空记录——是最昂贵的变更类型,因为它会破坏数据集,而不是中断一个。

恢复匿名访问是错误的目标。停止将没有稳定承诺的接口视为测量基线,而是对每条记录的内容进行断言,而不是每次获取的成功,并将身份状态写入数据中,以便政策更改显示为边界而不是趋势。

准备将您的Grok测量放在一个声明形状的接口上吗?免费开始使用Scrapeless并在记录落地之前验证每条记录。

常见问题

问:已注销访客仍然可以从Grok获得答案吗?

在2026年8月6日观察到,grok.com上无法获得。作曲者接受提示并回显,然后呈现一个“继续您的对话”注册面板,答案将出现在这里。X上的Grok入口点显示一个标准登录屏幕,根本没有聊天界面。访问政策因地区而异,并且可以在没有通知的情况下更改,因此请从您自己的出口进行验证,而不是依赖于此快照。

问:xAI是否宣布了这一变化?
未找到任何描述的第一方公告、变更日志条目或帮助中心注释。xAI 消费者常见问题仍在解释内容如何保留时提到未经身份验证的 Grok 使用,而 grok.com 常见问题仅涉及订阅、账户链接和登录机制。书面记录和已部署的行为目前不一致。

问:我如何判断我的监测数据是否受到了影响?

查看回答字段为空、异常短或包含注册插页文本的记录,并检查它们的频率是否在某个时刻急剧增加。品牌提及的突然下降并且适用于每个提示的情况更符合收集故障,而不是模型行为的变化。将变化与其检测之间的窗口视为污染,并将其排除在趋势分析之外。

问:测量 AI 答复表面是否合法?

收集公共输出进行测量是普遍做法,但限制是您使用的特定表面的条款,以及您所在地区适用的数据保护法。使用现有的文档接口,保持请求量与测量成比例,保持在公共内容上,并针对您自己的管辖区和用例寻求法律建议,而不是将一般指导视为足够。

问:监测应该使用开发者 API 还是消费者接口?

它们回答不同的问题,因此请说明您的方法论使用哪个。开发者 API 通过具有稳定性承诺的文档化、版本化合同来测量模型行为。消费者接口反映个人所遇到的具体呈现、排名和产品逻辑,这通常是可见性报告声称要描述的内容。在没有标记边界的情况下将它们混合在一个时间序列中,会产生既不代表一种情况的数字。

在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。

最受欢迎的文章

目录