.agents/design/app/tool-input-runtime.md
FastGPT 的工具定义来自 JSON Schema 或 NodeIO,并分别被 AgentV2、工作流 ToolCall 和普通工作流执行消费。本设计建立统一编译 seam,将原始定义、持久化配置、模型可见参数和最终执行参数分层,保持现有数据库与公开协议兼容。
ToolInputDefinition:单个参数的原始 schema、NodeIO 投影和允许的输入来源。ToolInputConfiguration:参数最终选择的 agentGenerated 或 manual 模式,以及可选手工绑定。CompiledToolRuntime:模型 function schema、Agent 参数白名单和固定输入绑定。compileToolRuntime():从最新工具定义和当前配置生成唯一运行时描述。mergeToolRuntimeParams():过滤模型未知字段并与固定绑定合并,拒绝两组 key 冲突。{ key, mode } + config;Simple 与 Workflow ToolCall 继续保存 NodeIO。isToolParam 只决定首次默认模式。显式 mode、selectedType 和 isToolParam: false 优先。toolDescription 的旧版默认推断只作用于 workflow tool 的原始 pluginInput。agentGeneratedKeys 白名单过滤,再与用户值或默认值合并。packages/global/core/app/jsonschema.tspackages/global/core/app/formEdit/utils.tspackages/service/core/workflow/dispatch/ai/agent/sub/tool/utils.tspackages/service/core/workflow/dispatch/ai/toolcall/hooks/useToolCatalog.ts