---
id: "mnsacuyr-hgtk5n"
name: "Zod复杂类型schema解析修复"
type: "project"
project: "foliko-agent"
tags: [zod, schema, extension-tools, parameter-table, bugfix]
created: "2026-04-10"
---
agent.js 的 `_fallbackSchemaToText` 方法需要递归处理复杂 Zod 类型（如 `ZodOptional`、`ZodUnion`、`ZodArray` 等）。

问题场景：.agent/plugins 下的自定义扩展插件使用复杂 schema（如 `z.union([...])` 或 `z.optional()`）时，`zodSchemaToTable` 无法正确解析，导致显示 "Type: ZodObject" 而非参数表格。

解决方案：实现 `_extractFieldType(validator)` 方法，递归检查 `_def.innerType`、`_def.types` 等属性，正确提取字段类型名称。

关键代码模式：
- `ZodOptional` -> 检查 `validator._def.innerType`
- `ZodUnion` -> 检查 `validator._def.types`
- `ZodArray` -> 检查 `validator._def.type`

参考文件：agent.js 的 `_fallbackSchemaToText` 方法。