This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# 后端创作 Agent LLM Turn 公共化 2026-04-25
|
||||
|
||||
## 背景
|
||||
|
||||
RPG、大鱼吃小鱼、拼图三条创作 Agent 后端 turn 已经统一使用 `platform-llm`,但在 `api-server` 内仍重复维护以下流程:
|
||||
|
||||
1. 检查 `LlmClient` 是否可用。
|
||||
2. 构造 `system + user` 两段消息。
|
||||
3. 调用 `stream_text` 并从增量 JSON 中抽取 `replyText` 给 SSE 前端。
|
||||
4. 从模型最终文本中截取并解析 JSON。
|
||||
5. 把模型调用失败、JSON 解析失败映射成中文业务错误。
|
||||
|
||||
这些逻辑属于 turn 级基础设施,不应散落在不同玩法文件里;但各玩法的 prompt、anchor pack 解析、stage 推进、SpacetimeDB finalize 写回仍是领域逻辑,不在本轮合并。
|
||||
|
||||
## 目标
|
||||
|
||||
1. 新增 `api-server` 内部公共模块 `creation_agent_llm_turn`。
|
||||
2. 公共化流式 JSON turn 调用、非流式 JSON turn 调用、`replyText` 增量解析、最终 JSON 截取解析。
|
||||
3. 大鱼、拼图、RPG Agent turn 复用公共调用骨架。
|
||||
4. 保留各玩法原有结果结构、中文错误文案和持久化写回契约。
|
||||
|
||||
## 非目标
|
||||
|
||||
1. 不统一 RPG、大鱼、拼图的 prompt。
|
||||
2. 不统一三类 anchor pack / draft profile schema。
|
||||
3. 不改变 SpacetimeDB reducer/procedure 或 session 表结构。
|
||||
4. 不改变前端 SSE contract。
|
||||
|
||||
## 落地边界
|
||||
|
||||
1. `server-rs/crates/api-server/src/creation_agent_llm_turn.rs`
|
||||
- 提供 `stream_creation_agent_json_turn(...)`。
|
||||
- 提供 `request_creation_agent_json_turn(...)`。
|
||||
- 提供 `parse_json_response_text(...)` 与 `extract_reply_text_from_partial_json(...)`。
|
||||
2. `custom_world_agent_turn.rs`
|
||||
- 保留 RPG 动态状态判断、八锚点解析、结果写回。
|
||||
- 将正式单轮生成和状态识别的 LLM 请求改走公共模块。
|
||||
3. `big_fish_agent_turn.rs` / `puzzle_agent_turn.rs`
|
||||
- 将 LLM 流式请求和 JSON 解析改走公共模块。
|
||||
- 继续保留玩法自己的 anchor pack 解析和 quick fill 规则。
|
||||
|
||||
## 验收
|
||||
|
||||
1. `cargo test -p api-server` 中相关 turn 单测通过。
|
||||
2. `cargo check -p api-server` 不引入新的编译错误。
|
||||
3. 编码检查通过。
|
||||
Reference in New Issue
Block a user