特性(MCP): 增强 AI 参数幻觉容错与全览日志

- 在 \scene-script.js\ 中为 manage_components 启用 operation 作为 action 的后备别名防范 AI 传参幻觉导致中断。
- 在 \main.js\ 的 /call-tool 请求日志中透传完整 arguments JSON 数据,并在超长时予以截断。
- 同步补全 README.md, UPDATE_LOG.md 与 注意事项.md 针对传参错写的防避规则和特性的更新记录。
This commit is contained in:
火焰库拉
2026-02-25 11:11:21 +08:00
parent 51c04eca48
commit ffa918751d
5 changed files with 3664 additions and 3617 deletions

View File

@@ -69,6 +69,12 @@
3. **属性校验**:严禁猜测属性名。在 `update` 前,应通过读取脚本定义或 `get` 返回的现有属性列表来确定准确的属性名称。
- **禁止行为**:禁止基于假设进行盲目赋值或删除。如果发现对象不存在,应立即报错或尝试重建,而非继续尝试修改。
### 5.2 传参精准与别名容错
- **传参风险**:大语言模型在生成 JSON 时可能会出现操作类型字段名“幻觉”(例如在调用 `manage_components` 时将本应是 `action` 的参数写为含义相近的 `operation`)。
- **优化机制**:底层脚本 (`scene-script.js`) 已经全面引入参数别名回落机制(如 `action = action || operation`)。
- **提示开发**:尽管底层具备一定的容错率,在维护 MCP 工具说明书Schema仍应严格要求 AI 书写标准参数名,避免纵容产生更大的幻觉偏移。
---
## 6. 常见资源关键字
@@ -134,14 +140,16 @@
## 10. Token 消耗与长数据保护防爆机制
### 10.1 `get_scene_hierarchy` 深度与层级限制
- **背景**:在一两千个节点的大型 UI 场景中,无限制地获取全场景树会瞬间消耗十万以上的 Token导致 AI 丢失上下文甚至触发截断报错。
- **最佳实践**
- **默认使用 `depth: 2`** (默认限制) 来逐步探查。
- **结合 `nodeId` 参数**:找到关键模块(例如 `Canvas/LoginPanel`)的 UUID 后,再单独向该 `nodeId` 请求下一层的结构,而非每次从根部拉取。
- **默认使用 `depth: 2`** (默认限制) 来逐步探查。
- **结合 `nodeId` 参数**:找到关键模块(例如 `Canvas/LoginPanel`)的 UUID 后,再单独向该 `nodeId` 请求下一层的结构,而非每次从根部拉取。
### 10.2 大对象与长数组截断
- **背景**在读取某些特定组件数据如多边形顶点坐标、Sprite 曲线数据或序列化的内联 Base64 图片JSON 可能会异常庞大。
- **保护机制**
- `scene-script.js` 内部在执行 `manage_components(get)` 序列化时,对于**长度超过 10 的 Array** 会强制截断,返回字面量字符串 `"[Array(X)]"`
- 对于**长度大于 200 的长字符串**,也会强制缩略并追加 `...[Truncated, total length: X]`
- `scene-script.js` 内部在执行 `manage_components(get)` 序列化时,对于**长度超过 10 的 Array** 会强制截断,返回字面量字符串 `"[Array(X)]"`
- 对于**长度大于 200 的长字符串**,也会强制缩略并追加 `...[Truncated, total length: X]`
- **应对策略**:如果 AI 看到截断提示,这意味着此处为海量无语义数据,**请勿**尝试盲目通过 `update` 覆盖或还原被截断的字段,极易导致源数据被破坏。请仅修改自己能够完全看清的轻量级属性(如 `name`, `x`, `scale` 等)。