For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /ai/product/ask-ai-platform.md.

Ask AI:官方 Agent 能力、账户与受控业务操作

我们要做的是一个能在 Retaintive 内理解当前工作、查证业务数据、提出并执行获准操作的助手。模型可以换,用户可以选择公司渠道或自己的 AI 计费渠道;工具、权限、业务记录和一致性仍由 Retaintive 管理。用户还需要看懂它的实际效果、谁付款、怎么排查问题。

2026-10-04 02:49 UTC 状态:站内 test 已部署本轮加固,并完成指定长对话和取消场景复验;整体稳定性验收尚未完成。 网站采用官方 Agents SDK。修复了 scoped Task 引用、历史权限过滤、有界 429 retry、共享 Outcome/Timeline reader 和每请求一次性恢复;真实测试又发现“缺证据却断言未转化”,已增加受限措辞检查并复测。此处记录的是 02:49 UTC 运行快照,当时代码仅在未合并 feature branch。当前 PR 状态见下方记录;未改 production。

当前 review 状态(2026-10-04): 产品文档已提交 docs PR #513;Ask AI 代码已提交 infra PR #2619,同步 infra main 85adf7080,功能尚未合并。只有原样 schema 基线修正 #2611 已进入 main。production 放量条件由 #2618 跟踪。本轮未修改共享数据库或重新部署,运行证据仍采用下方注明日期和版本的快照。

最新产品方向(2026-10-03 用户再次确认):聊天窗口必须留在 Retaintive 内,不做让客户转去 ChatGPT / Claude 聊天的 connector、MCP 或 Marketplace 产品入口。当前主线继续站内 DeepSeek + 官方 Agents SDK,先加固连续追问、业务数据准确性和失败恢复;通用 Agent 能力优先复用官方 SDK,业务权限与最终写入由现有代码负责。普通客户直接使用 Retaintive AI,不要求理解 OpenRouter 或填写 API key。商业接入申请与审批前后步骤已记录:用户已自行提交并提供 OpenAI 收件回执,等待产品匹配评估,尚未获批。站内订阅连接等待官方资格,不阻塞公司渠道;现有 API key 能力不代表最终普通客户入口设计。

本文是产品目标与可查看成果入口。工程契约与运行记录维护在 callytics-infrastructure/openwiki/studio/ask-ai.md;业务概念服从产品北极星、系统世界观和 Task V3 contract。

发布流程事故补记(2026-10-04): 本任务曾将未合并 Ask AI 分支的 0130 migration 提前应用到共享 test,违反已有发布流程,导致其他 PR 的 integration 和 test 部署被 migration drift 阻塞。用户用 #2611 原样补齐 main 后恢复。上述功能复验不证明这一迁移操作合规。后续必须通过 Drizzle generate → review / PR → merge → 同一 SHA 的 CI migrate / verify → deploy;合并前 只用 disposable branch 或本地 PostgreSQL,不直接改共享库、不改写已执行 migration。 此次只读核对了代码和 GitHub 结果,没有再次修改数据库或部署。

从对话历史还原完整目标

用户最初提出的重点是:能否直接使用 OpenAI / Claude 已经做好的 agent engineering,而不只是调用一次模型 API。后续明确要求看真实 demo、研究现有代码、区分账户和费用、支持权限内的业务修改,并优先保证功能和数据一致性。

原始目标本轮成果与边界状态
使用官方公开 harness,理解可复用的工程能力站内采用官方 Agents SDK Runner;独立运行官方 Codex app-server。未把完整 ChatGPT / Codex / Claude 产品搬入网站已实现、test / 本地分别验收
站内体验可换模型,用户选择公司或自己的 AI 账户公司 OpenRouter / DeepSeek;自带 OpenAI、Anthropic、OpenRouter API key。网站月费订阅连接需要官方接入条件API key 模式已实现;OpenRouter 真实成功;订阅外部阻塞
查业务数据,并处理用户原本可通过 UI 完成的操作复用受限业务查询;首个动作是已有 managed Task 的 Next Action 改时间,必须点击确认查询与这一项受控修改已验收;全部 UI 操作未开放
把会话、费用、logs、数据一致性和重要预警做对owned conversation、逐轮 usage、付款人、取消、版本/幂等保护、安全诊断及监控已实现、针对性验收;告警实际送达和 source maps 仍有边界
有看得懂、可操作、可交接的成果设计原型、真实桌面/手机截图、test demo、本文和 OpenWiki已记录;production readiness 另行建设

因此,“test 第一版可用”对应一个已验证的阶段,不等于上述长期目标全部完成。

设计图与实际效果

历史设计原型

下面保存最初用于解释产品效果的设计图。它使用合成数据与模拟交互,表达助手、工具步骤、付款渠道和审批的位置;不是当前部署截图,也不证明画面中的能力都已实现。涉及 ChatGPT / Claude 订阅的连接画面只表达未来流程。

Ask AI 历史设计原型,模拟数据与交互

打开可交互的历史设计原型。

还保留了“用户在外部 ChatGPT / Codex 客户端访问 Retaintive”的入口概念图,仅作为历史设计记录。用户已明确排除这个产品入口,不在当前建设范围;尚未上线、未发布 Marketplace / MCP,也不代表网站可以直接使用订阅额度。

外部 ChatGPT / Codex 入口的历史概念,尚未上线

早期真实 test 截图

当前站内入口是既有页面旁的 Ask AI 面板。用户先照常登录 Retaintive,选择模型付款渠道;提问后看到真实工具进度、回答、可定位引用、费用状态,以及必要的改期卡片。

真实 test 桌面:当前 Task 的改期预览

真实 test 手机:预览与 Confirm time change 按钮

这些截图来自 2026-10-03 的合成 Task 验收:助手提出 10 月 9 日 15:00 的预览,未点击确认,因此实际 Task 仍安排在 10 月 8 日 15:00(America/New_York)。旧截图里的预览会过期,体验时需要重新提问。

真实 test 手机:已选择自带 API key 连接,并显示付款渠道

体验入口:Retaintive test。需要对应测试门店权限。合成演示 Task 名称为 Ask AI Smoke ask-ai-smoke-ae1dddaa,显示门店为 Demo Studio;可以问“当前任务的下一步安排是什么”,或要求先预览改期。该任务没有自动外呼来源,本次没有发送真实电话或短信。

面板上的按钮做什么

控件用户操作后的效果是否修改业务数据
AI accounts 设置图标展开或收起 AI 账户设置;普通客户可以直接用公司渠道。现有 API key 表单是可选能力,仍待简化为高级入口打开设置不修改;保存连接会保存加密凭据与 metadata
New conversation 回转箭头从新话题开始;不携带旧会话上下文,旧服务端审计记录仍保留;提交或运行中禁用不修改 Task
Close ×收起面板;页面上的 Ask AI 浮动入口可重新打开不修改 Task,也不代替 Stop
AI billing account 下拉框选择这一题由公司还是现有客户 API 连接付款;失败不会悄悄切回公司付费不修改 Task;提交/运行中或连接列表读取失败时禁用
Send 纸飞机提交当前问题,读取有权限的数据并生成回答;空输入、提交/运行中或打开 AI 设置时禁用普通提问不写入;修改请求只生成预览
Stop取消尚未结束的请求,迟到的答案不能覆盖取消状态;已用 tokens 仍可能计费不撤回此前已确认的业务操作
T1 等引用链接打开对应的 Task / 数据来源,便于对照答案不修改数据
Confirm time change在预览有效时提交改期;后端再次检查权限、Task 版本和命令幂等性是,仅首版开放的 Next Action 时间修改
Save API connection保存可选的客户 API key 连接;API 项目额度和 ChatGPT / Claude 月费订阅是不同计费渠道不修改 Task

ChatGPT / Claude 订阅按钮当前没有可用的商业授权流程,不应让用户误以为填一个 API key 就接上自己的月费订阅。普通客户使用公司 AI 不需要完成这一步。

当前预览的到期检查位于 UI;写入复用既有 Task command,后端检查业务权限、版本和 幂等性,尚未将 proposal expiry 绑定为独立的服务端确认条件。这个 production 前的 缺口与“AI 不能自动保存”分别记录,不能用按钮禁用证明服务端已经拒绝所有过期提案。

2026-10-03 继续建设的决定

产品决定:聊天留在 Retaintive;普通客户直接使用公司 DeepSeek,不要求懂 API key 或 OpenRouter;优先借官方 SDK 的通用执行能力。先保证连续追问、数据准确性和失败 恢复。排除外部 ChatGPT/Claude connector 产品入口。ChatGPT 商业申请已收件、未批准, 等待期间公司渠道继续建设;API key 能力保留为可选能力,不代表最终普通客户入口。

工程取舍:保留官方 Agents SDK 0.18.0;安全的 provider HTTP 429 一次 run 最多额外 尝试一次,付款渠道不变,工具不重放。历史先过滤权限再取最近十轮。Task 引用由服务器 解析真实身份,正文引用一起验证;SMS 失败与计划不能冒充业务结果。读取 Task 关闭时 对齐实际 writer、保留时间毫秒和 Policy 守卫,把 Staff 审计归属与 Outcome credit 分开。

五分钟 Neon 巡检已在 test 改为每请求一次性 expiry,晚开始的请求有独立运行期限。 安排失败不启动付费 worker,恢复失败耗尽重试进入 DLQ;没有请求不报警。完整性检查 仍是请求触发抽查,晚确认未必再检查,DB insert→schedule 的 crash 仍靠下一次请求 兜底。Streaming、receipt-triggered audit/durable dispatch、所有关闭变体全量评测和 production rollout 继续待办,不能声称已完成。

早期本地验收 checkpoint:API 四组 227 pass、SDK/data/retry/schedule 七组 44 pass,真实 Neon 临时表超时 CAS 与历史权限 LIMIT 通过。最新真实 SDK 三轮合成 Task 问答正确区分 Next Action、Deadline 和未证明转化,Task version 5 与时间未变,模型费 $0.00198024。 这是指定场景的实测小样本,不代表所有业务问答准确,也不包含基础设施成本。

功能分支当时已同步 infra main d6d858ede,Ask AI 功能未合并;01:30 UTC 曾观察到 test worker/API 被后续 main 部署覆盖且 monitor 不存在。本轮已重新部署,下方旧截图/release 明确保留为历史证据。

本轮部署与真实验收(2026-10-04 02:49 UTC)

部分当前 test release
Worker / monitor33ffba7279b511029ec51a3419457433b30c40cd;AWS Active / Successful
API / Web1620f69296bb73969f49878a193fb09599274e34;test Pages head deployment c4908aaa.studio-test-32h.pages.dev

真实长对话中,Task 工具正确报告没有已验证 Outcome,模型却两次写出“未转化”。只补 prompt 未能消除,因此增加服务端针对已发现 conversion 措辞的证据检查:同一句引用 的 Task 必须有匹配 canonical lead_conversion Outcome;重查缺失或异常会清除旧 支持。首次违规让官方 SDK 纠正一次,再犯拒绝发布答案和草稿,已知费用仍保存。 它不保证所有自由文本同义表达、人物绑定、复杂否定、时间范围和付款语义正确。

最新 query b0f50d52-e039-4089-9a35-2847c53dd3b4 在原长对话里成功,回答“当前记录 尚不能确认转化”,只有一次 Task 查询;三个模型 receipts、complete ledger、模型费 $0.00098358。旧错误答案保留为失败证据,不把 succeeded 请求状态等同业务答案正确。 Stop query 76645537-4730-4ada-9409-dc8f51913f6b 落库 cancelled,页面显示 Stopped; 未 claim 运行(started_at 为空),没有费用 telemetry,不伪造已知零成本。本轮只读验收前后 Task snapshot 一致,version 5 和 Next Action 2026-10-08T19:00:00Z 未改变。

最新真实 test 桌面:有证据边界的回答、引用和本题费用

最新真实 test 手机:取消状态与最终只读回答

普通 Playwright click 复验了设置、付款菜单、引用定位、关闭/重开、新对话、Send、Stop; 1280×800 与 390×844 没有面板横向溢出,console error 为 0,临时 viewport 已恢复。 root 全量 965 pass / 20 skip / 0 fail、API 四组 227 pass、最新 SDK 八组 63 pass、root typecheck 和正常提交 hooks 通过;真实 Neon 五项只读/临时表验证通过。独立复核关闭 已发现的四个 guard 漏洞,另有八个失败重读探针通过;不代表所有业务语义全面验收。

CloudWatch 02:05–02:49 UTC 的 API/worker/monitor 未观察到 error event。一次性 Scheduler callback 实际执行,首个 schedule 执行后自动删除,DLQ 三种消息计数为 0,三个 alarms OK。impact/recovery 接 SNS;integrity 在 test 为 diagnostic、没有 notification action。 真实通知送达仍未验收。Sentry maps 带 Debug ID 配对留在本地,upload 缺写权限(HTTP403)。

本轮七条浏览器请求的已知模型费合计 $0.00513720,包含修复前错误答案;一次取消 没有费用 telemetry,不能把它当成完整账单保证,也不含基础设施费用。

到底借用了什么

模型负责理解问题和选择工具。harness 是围绕模型的执行机制,管理工具循环、运行生命周期和进度。Retaintive 提供业务工具,并决定什么数据可读、什么操作可写、谁付款和记录如何落库。

当前接入的是运行在我们服务器里的 Agents SDK,不是 OpenAI 托管 Agents API 的 Codex harness,也不等于完整 ChatGPT 产品。SDK 已支持 sessions 和 streaming;当前网站仍使用自有权限过滤的近期问答上下文与 polling,不能把官方支持当成本产品已经接入。后续优先评估复用官方实现,保留门店权限和最终答案校验。官方运行与会话说明。

层可复用能力本轮选择与 Retaintive 职责
Agent runtime官方运行循环、tool contract、生命周期、取消、输出校验基础站内使用 @openai/agents@0.18.0 Runner;业务授权仍在我们的代码
Model transport原生 OpenAI transport 或多 provider adapterOpenAI 用原生 Responses;OpenRouter / DeepSeek 和 Anthropic 用 AI SDK adapter
产品 UISDK 可以提供事件/输出,产品接收后展示现有 Vue 面板、安全 Markdown、工具进度、引用与确认卡片由 Retaintive 实现
Session / dataruntime 提供上下文运行能力Neon 保存会话归属、问题、结果、引用与费用;我们重新核对历史权限
业务动作模型提出使用某项能力模型生成改期草稿,人点按钮后走既有 Task writer、版本、幂等和审计机制
Codex app-server官方公开的 thread、turn、stream、tool 和 approval 协议本机当前个人 ChatGPT 登录的独立合成演示;未作为多用户网站后端

选择 Agents SDK 是结合当前 Lambda / Neon、既有工具和多模型需求的工程取舍。官方支持通过 AI SDK adapter 接其他模型;该 adapter 仍为 beta,需按选定 provider 验证。当前版本已固定,并保留 provider 多轮 contract tests。官方 adapter 文档。

公开 SDK 代码作为依赖打包进我们的 worker,在 AWS Lambda 执行;模型通过选定 provider 的远程 API 运行。Neon 仍保存我们的业务记录,工具只查询权限范围内的结果,再将这些结果作为模型上下文发给所选 provider。自带 key 改变计费项目,不改变数据权限;也不意味着模型只在客户电脑计算。我们没有下载模型参数或完整 ChatGPT 产品的私有代码。

Codex 的公开 harness / app-server 是另一种可用路线,包含会话、事件流、工具与审批协议;应用继续拥有业务上下文和系统记录。开源 harness 与模型访问是两件事。Codex 官方说明。

当前网站采用真实进度与 polling,结束后发布已校验的完整答案,尚未实现逐 token streaming。也没有开放任意 shell / SQL、MCP Marketplace、全部 UI mutation,或复制用户原 ChatGPT 的对话与记忆。

工具循环与确认写入

首个修改能力只调整已有 managed Task 的 Next Action 时间,保留行动内容。生成草稿时检查角色、DNC、Task 状态与身份、门店时区、夏令时歧义、未来时间和 deadline。卡片包含前后时间、理由、版本与有效期;聊天里回复“确认”不会保存。

确认复用现有 UI 的 Task 修改接口。相同 command 重试不重复改动;其他人已改 Task 时旧版本被拒绝。草稿到期目前由 UI 在确认前检查,服务端既有 writer 没有核验 proposal 归属/到期的专门入口;服务端仍强制业务权限、版本与时间约束。production 前需明确是否把草稿验证也收敛到服务端。不能把这个动作推广成“模型可以自由修改数据库”,也不能将 Task 改期当成课程预约、通话时长或业务 Outcome。

登录、token 和谁付钱

Retaintive 登录决定业务权限;AI 计费连接决定这一轮模型请求由哪个 API 项目付钱。 用户能登录某个模型账号,不会因此取得其他门店的数据权限。

方式Ask AI 的模型账单Retaintive 继续承担当前状态
Company AI现有公司 OpenRouter API 项目平台运行、数据库、加密、logs,以及原有电话分析/转录test 真实成功
用户自带 API keykey 所属 OpenAI / Anthropic / OpenRouter API 项目同上,已有 call processing 不随该连接转移三种接入已实现;OpenRouter 真实成功
用户 ChatGPT / Claude 月费订阅需要官方允许的订阅使用路径,不能按 API key 处理平台运行与原有后台业务成本网站未开放

API key 在服务端用 KMS 加密,绑定用户与连接;接口只返回 metadata,支持撤销。一次问题选择的付款人固定,key 无效、被撤销或额度不足时不会切换到公司渠道偷偷付款。第一版是用户自己的连接,尚未建设完整的组织 key 管理策略。

OpenAI 公开的 ChatGPT plan usage 路线面向开源/本地应用;付费或远程托管应用需要提交官方 interest form。我们尚未取得本站该路线的接入资格;公开本地流程不能作为 SaaS 接入已获准的证据。它也不提供原 ChatGPT 对话或其他账户 context。官方适用范围。Anthropic 要求第三方产品使用 claude.ai 登录/额度前事先获准;当前采用 API key 方式。Claude 官方要求。

用户在外部 ChatGPT / Codex / Claude 客户端通过 MCP 使用 Retaintive,需要独立授权与发布;用户已明确排除这个产品入口,本轮不建设、不发布它。

存储、排查与重要预警

Neon 记录 conversation 所属用户、query、结果、引用、进度、选定 provider / payer 和逐轮 usage。前端记录按环境与用户隔离,退出/切换身份会清理;模型历史按当前权限重新筛选。API key 不进入回答或 logs。默认关闭 OpenAI tracing 与敏感内容日志。历史自动保留/删除机制仍需 production 前补齐。

模型/工具前以及最终结果发布前重新检查权限;取消与终态采用条件更新,防止停下后被迟到结果改回成功。每轮已完成模型请求先保存 usage,失败或取消仍保留已知费用;未知/不完整费用不能当成零。工具输入允许一次纠正,数据库故障和撤权不进入该循环。安全诊断记录失败阶段、工具、错误类型与白名单字段,不写入原始错误正文或 SDK run state。

test 监控关注成批失败、已确认修改的证据不一致,以及恢复失败进入 DLQ;没有 idle heartbeat 报警。取消、撤权、客户 key 401/429 和孤立小错误不升级为系统预警。Task 一致性核对使用草稿、accepted event、command receipt 与 Timeline;目前为请求触发抽查,晚确认可能没有再次核对。具体阈值、恢复规则和操作步骤以 OpenWiki 工程页为准。

三个 CloudWatch alarms 在最后记录时为 OK,SNS 已接既有 dispatcher;test 的一致性 alarm 为 diagnostic,未配置通知 action。没有制造假 ALARM,Lark 送达尚未验收。Sentry source-map 上传因现有只读凭据返回 403;已保存 test 后端 maps 与补传计划,未声称上传完成,旧 Web build 没有生成 maps。

早期真实验收与版本快照

以下是 2026-10-03 的 test snapshot,并非“main / production 已包含”。infra source HEAD 为 790571ee687dd36c6021b54eea2642d2726f7dc4;运行部署版本与后续测试/文档提交分别记录:

部分test runtime release
Worker / monitor42333aabf178549aee7032d947eccd182898a21c
APIbaf438e239b2c2e2a45cc1d0d995dd2281d2ab09
Web20ee3b45d309d991ca902bee93251b07b56ff3e6
验收真实证据与限制
公司模型 / 提案预览query ede2d47c-35a3-430b-b5f2-8454619468cc 成功,约 $0.000909;未确认,Task 不变
自带 key 成功链路query 4c9c009d-51cc-448e-9573-bfe268f90157:页面选连接 → KMS 解密 → 工具查询 → customer ledger → 撤销,费用 $0.00087264。使用现有测试 OpenRouter key 模拟客户连接,真实账单仍归原测试 API 项目
确认写入 / 重放 / 冲突四次合法改期、四条 Timeline、四张 command receipts;重放 200 不重复增加版本,旧版本新命令 409。当前合成 Task version 5,Next Action 为 2026-10-08T19:00:00Z
无外呼副作用合成 Task 的 task_change_outbox 与 rc_ring_out_attempts 均为 0
自动化验证最新 runtime / recovery / provider / safe-error 22 项通过;此前隔离 Postgres monitor 15 项、worker gate / read-only、API / Web 以及浏览器验收记录保留;Node 24 typecheck 通过
尺寸与业务操作Playwright 桌面、tablet、mobile 核对,以及 Computer Use 查询/引用核对通过;截图使用合成数据
本地个人 ChatGPT官方 Codex app-server 完成两次合成工具调用与 streamed deltas;该实验未接网站真实业务,也未共享订阅给 SaaS 客户

OpenAI / Anthropic 的成功调用验证使用官方 SDK 的多轮 HTTP fixtures;未获得有效客户 key 完成这两种 provider 的真实付费成功请求。模型引用不存在的服务器 ref 会阻止答案发布;没有引用目前是 warning,不是 hard reject。合法引用通过权限与来源校验,也不等于所有回答语义通过完整业务评测。

失败记录保留:旧 agent_run_failed 缺少原始诊断,不能拿后来的错误复现冒充历史根因;本轮曾引入的 AI SDK adapter outputSchema 回归已修复并重新验收。不能以当前通过推断供应商永不失败或模型永不误判。

工程实现记录为 callytics-infrastructure/.claude/specs/2026-10-03-ask-ai-platform-impl.md。原始证据文件名:verification.json、byok-success.json、health-verification.json、codex-personal-smoke.json;交接位置和复验步骤由 OpenWiki 维护。可查看脱敏验收摘要,它是历史记录,不代表当前运行健康。本文只保存必要的合成验收摘要,不包含 key、登录密码或用户私密对话。

成本与下一步条件

本轮沿用已有 AWS / Neon / Cloudflare / OpenRouter,未购买新服务。公司和 BYOK 样本中模型费是每题约千分之一美元量级,但不是固定价:工具轮数、上下文、缓存、模型和实时价格都会改变账单,基础设施另计。公司渠道目前有问题数量限制;尚未实现全公司硬美元预算。

本轮已选择按请求安排 expiry,空闲时不做五分钟 Neon polling。它减少空闲唤醒,不代表基础设施免费;production 前仍需按负载核算 Scheduler、Lambda、Neon、SQS、KMS 和 logs,并决定写入事件审计的范围。不会从本次小样本推定未来公司的总月费。

后续项当前处理与恢复条件工程难点
ChatGPT / Claude 订阅接入外部阻塞:先取得对应官方接入条件,再建设授权、refresh、撤销、额度与 workspace 隔离资格与 auth 生命周期;不能复用个人订阅充当共享后端
草稿确认与更多业务写操作当前确认依赖 UI 检查到期;production 前补 server proposal validation 的决策与验收。更多动作 DEFERRED,按业务优先级逐项设计一致性与业务裁决;不是给所有 UI 操作套通用写工具
Token streamingDEFERRED:确定传输、取消与最终答案校验/引用发布契约后实施Lambda transport、迟到结果和显示状态
组织 key、硬预算与 retention / 删除production 前需要产品与数据政策,再实施及测试多用户归属、费用完整性、审计和删除范围
回答质量与更多真实门店场景持续建设:准备人工确认的业务 scenarios / golden answers,按 provider 回归区分工具/权限错误、数据缺失与模型理解错误
Sentry maps / 告警送达source maps 缺写凭据;通知需真实渠道的独立受控验收发布权限、版本匹配及通知 routing
Production 上线DEFERRED:完成上述必要政策、真实 provider 与业务验收、成本核算和上线 review合并、迁移、配置、运行版本与 rollback 分别验证

难度以这些实际依赖和验收工作衡量,不在缺少接入资格、政策与样本时编造交付时长或供应商单价。