Skip to content

[REQ-1414][VERIFY-1] 四种账户态下模型到底搜不搜得到 #1433

Description

@jinjunnn

我们要确认一件事:在四种不同的账户状态下,模型到底搜不搜得到网。

这四种是:没登录(自带 key)、登录且有额度、登录但额度空了、以及我们把搜网整个关掉的开关打开时。

为什么值得单独做:前面几张票改的是「工具在不在模型手里」,那是从代码结构推出来的。而「模型真的发出了搜索请求」和「真的拿回了结果」是两件不同的事 —— 中间还隔着模型自己的判断(它可能压根不去调)。只有在装好的 app 上真跑一遍,才知道用户拿到的是什么。

不做会怎样:我们会以为改好了,而实际是「代码看起来对」;真出问题是用户先发现。


给实现方 — [REQ-1414][VERIFY-1]

父票 alpha-code#1414。方案基线 §七 VERIFY-1,owner 2026-09-24 批准。
这是 VERIFY 票:只测,不修。测出坏的转 bug 票挂父票。

矩阵

{登出 / BYOK、登录有额度、登录无额度、kill-switch} × {搜网}

每格必须把两件事分开记

  1. 模型有没有真的发出 tool_calls;
  2. 有没有拿回结果。

本机陷阱(基线原文):模型自己的策略层会先于被测接缝生效 —— 它可能压根不去调那个工具。
所以「没拿到结果」不等于「工具坏了」,两件事必须分开记,否则这份证据会把两种失败混成一种。

前置缺口(基线 §九 第 5 条,必须先解决或明确记为未测)

本轮没有一个零余额的真账户 ⇒ 402 的实际 wire body 从未跑过。
「登录无额度」这一格要么先造出这样的账户,要么明确标为未测,不要用推导充当证据。

载体

打包实例。 按既有约定,打包版的真机取证要 owner 动手 —— 所以这张票的执行方式要先和主 session 对齐:
哪一部分你能自己跑(服务端、引擎层),哪一部分必须 owner 点。不要把整格推给 owner。

Out of scope

  • 读网页(webfetch):alpha-code#1412。
  • 代码变更:CODE-1 / CODE-2 / CODE-3。

Activity

  1. added
    type:verificationIndependent verification: runtime/E2E/security/performance matrix
    on Sep 24, 2026
  2. jinjunnn commented on Sep 24, 2026

    @jinjunnn
    OwnerAuthor

    在途状态(2026-09-24,供接手用)

    已跑完并入库的(证据在 lane 的 worktree .worktrees/1433-verify,未提交):
    本地腿四格 × 3 轮 × 2 provider 全绿(kill-switch 反向臂 sovereignty_denied、零出网);
    ①那一列四格(真 DeepSeek 模型,共 17 次调用,其中 3 次为废弃冒烟);
    #1415 的登记第一次被真代理判过(mcp.exa.ai / search.parallel.ai → allow/200,
    反向臂 example.com → deny/unregistered/403);
    打包产物上复现 #1411 的四格工具表(零凭证零花费)。

    模型 key:owner 2026-09-24 批准使用。文件在会话 scratchpad
    (ac1433-model-keys.env,0600,DEEPSEEK_API_KEY + ZHIPU_API_KEY),不在任何仓内。
    收工扫描证实证据目录零泄漏(完整值 / 前 12 / 后 12 三种片段各 0 命中,并用一根必在的针自证扫描有效)。
    ALPHA_MCP_TOKEN 没有给 —— 它是平台代付凭证,用它跑会真扣 owner 云额度,属于另一笔支出。

    零余额账户 —— 编排者更正了一条自己加错的约束:
    原派发书写「走正常注册路径,不要直接写库」,owner 从未说过这句。
    owner 原话:「你只要写进去一个账号就可以了,它只是一个测试账号而已」+「不影响,没关系」。
    ⇒ 已撤销该约束,改为直接在 alpha-web 的 Postgres 插一行测试用户(users.phone UNIQUE NOT NULL,
    挑明显非真人的号),不走 send-otp / verify-otp。目标仍是 402 的实际 wire body
    (基线 §九 第 5 条至今未闭合的缺口)。仍守两条:只插这一行、不动任何已有数据(尤其 owner 的
    u_a3b0aadfe01e);拿到 401 就照旧标未测,不拿 401 充数。

    已实读确认、可直接用的判断:租户是 getTenant 查不到就 seed(id),
    新租户天然零余额、零 DDL;被拒的 preauth 零副作用、不产生 payment_credited、对账干净。

    仍未测且理由已清:云腿·登录有额度(缺 token 且真扣额度)· 云腿·登录无额度(本条在做)·
    打包实例真模型回合(providers.add 拒收回环 base URL ⇒ #1144 配方失效,
    坐标 network-egress-derived.ts:96,源自 owner 2026-09-21 裁决)· 打包实例两个登录格(mock keychain)·
    登录态真实工具表下模型选哪条腿 · 打包 sidecar 的 useEnvProxy() 是否真生效 · ctx.ask 是否拦(读码得出)。

    一条硬事实:mcp_access TTL 5 分钟(alpha-web/app/api/oauth/token/route.ts:99-111)
    ⇒「owner 建好账号把 token 发过来」这条路不成立,到手即过期。

    本 lane 产出的两张衍生票:#1445(搜网额度用尽被伪装成结果)、
    #1448(逃生开关语义写宽了,owner 裁决只管我们自己的两条腿)。两张都已派。

  3. jinjunnn commented on Sep 24, 2026

    @jinjunnn
    OwnerAuthor

    那 2 条 device_sessions 我的裁决:留着,不撤

    理由是「不动」这一边的代价更小,而且它是唯一不用再写一次生产库的选项:

    • 那个账号是零余额的。u_0000000c1433 的 ledger_facts 实读 0 条、payment_orders
      0 条,而 preauth 对它恒拒(本票刚测出来的 402 就是这个)。
      拿着它的 refresh token 能做的事 = 拿着它的密码能做的事 = 什么也做不了;
    • 撤销是一次 UPDATE,越出本票拿到的「只插一行、不动任何已有数据」的授权面;
    • 它今天还有用:云腿「登录有额度」那一格将来要测时,复用它比再插一个账号干净。

    如果哪天要清掉,正确的动作是连 users 行一起删,而不是只撤会话 —— 只撤会话会留下
    一个「登录不进去但还在册」的半死账号,比留着更难解释。

    本票的收口状态

    矩阵四格里,①(发不发 tool_calls)与 ② 本地腿全部真绿;② 云腿两格里
    「无额度」真绿(402 原文入库),「有额度」未测 —— 它要一个有真余额的账户,
    而给这个账号充值会真的动钱,那是 owner 的决定,不是本票能自己做的。

    打包实例上的真模型回合同样未测:providers.add 拒收回环 base URL
    (network-egress-derived.ts:96,owner 2026-09-21「不再支持本地模型」的裁决),
    #1144 那套取证配方结构上已失效。三条替代形状列在证据 README §7.1,都不是
    VERIFY 票能自己定的。

    打包实例的工具表那一半已经拿到了 —— 四个模型 id 在 kill-switch 下全部不含
    websearch、登出态全部含,#1411 的四格表在打包产物上复现。

    证据已合入 docs/verification/2026-09-24-1433-four-account-states-websearch/。

  4. added 3 commits that reference this issue on Sep 24, 2026
  5. added a commit that references this issue on Sep 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:verificationIndependent verification: runtime/E2E/security/performance matrix

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions