Files
Genarrative/docs
lhk229 5daea56e32
Project CI / Backend tests (pull_request) Successful in 4m19s
Project CI / Native shell tests (pull_request) Failing after 7m11s
Project CI / Frontend tests (pull_request) Failing after 23s
Project CI / Repository checks (pull_request) Failing after 49s
拒绝上游宣告未完成的工具调用
流式的收尾门禁只防传输层截断,把模型侧截断当成了正常收尾:is_completion 只
判断 finish_reason 非空,length / content_filter / max_tokens 一律放行;三条
非流式路径同样原样接受 Chat finish_reason、Responses status 和 Anthropic
stop_reason。下游没有任何一处对该字段做分支,因此参数恰好闭合成合法 JSON 的
截断调用会被真的执行。格式修复循环对这种形态无从察觉,它看到的 JSON 是合法的。

新增 reject_incomplete_tool_calls,流式与三条非流式路径统一拦截已知的截断、
过滤和失败终态:Chat 的 length / content_filter,Responses 的 incomplete /
failed / cancelled,Anthropic 的 max_tokens / pause_turn / refusal。

刻意用黑名单而非白名单,未知值与缺失一律放行,否则会误杀不发或自定义该字段的
兼容网关。只在存在工具调用时生效——正文被 max_tokens 截断仍是可用的降级结果,
一并拒绝会打死所有触及输出上限的长文本回答。

与非流式畸形参数透传同时成立时本检查优先,原用例的 finish_reason 相应改为
tool_calls 以只验证透传本身。补 6 个用例覆盖三协议截断、纯文本截断放行和未知
finish_reason 放行。
2026-07-27 08:11:40 +00:00
..
2026-07-17 21:03:15 +08:00
2026-07-18 21:17:35 +08:00
2026-07-27 07:46:42 +00:00
2026-07-21 11:20:56 +08:00

文档总览

docs/ 只把当前融合文档和仍在维护的专题文档作为实现依据。旧创作模板、旧创作入口及其专属服务文档仅保留为历史材料,不再要求继续实现或兼容。

必读入口

  1. Agent 工作入口与执行准则
  2. 当前产品与工程约束
  3. server-rs 与 SpacetimeDB 数据契约
  4. 平台入口与玩法链路
  5. 本地开发验证与生产运维
  6. AI 游戏创作项目开发工作台 PRD

团队长期约定、决策、流程和排障摘要统一从 项目记忆入口 读取。代码、当前融合文档与项目记忆冲突时,以代码和最新融合文档为准。

当前专题

图片编辑器与 Agent

后端与公开数据

后台、宿主壳与运维

测试与协作

历史文档边界

  • 旧创作模板、旧创作入口、旧运行态和旧素材生成方案不再从本页索引,也不再作为修复目标。
  • maincloud、旧 Node/Express/PostgreSQL/Go 后端和人工 spacetime --root-dir 口径均已废弃。
  • 历史文档不得覆盖当前融合文档、代码契约或 docs/project-memory/shared-memory/decision-log.md 中更新的决策。

命名规则

后续新增 Markdown 文档文件名使用 【标签名】中文标题-日期.md。历史文件不做无关批量重命名;本次涉及的旧文档可直接删除或在当前入口中取消引用。