当您连接模块时,了解不同模块输出的数据结构非常重要,因为源模块的输出数据结构决定了目标模块中可用的值。每种模块类型都会生成特定的输出结构,您可以在下游模块中引用这些结构。
理解这些数据结构对于有效使用连接标签和在工作流中访问正确的数据至关重要。
模块输出结构
不同的模块类型会生成不同的输出结构。以下是每种模块类型的输出结构:
{
"content": "The generated text response",
"model": "gpt-4o",
"tokens": {
"prompt": 120,
"completion": 85,
"total": 205
},
"toolCalls": [...],
"cost": [...],
"usage": [...]
}代理模块输出字段
- content: 代理生成的主要文本响应
- model: 使用的 AI 模型(例如:"gpt-4o","claude-3-opus")
- tokens: 令牌使用统计
- prompt: 提示中的令牌数量
- completion: 完成中的令牌数量
- total: 使用的令牌总数
- toolCalls: 代理调用的工具数组(如果有)
- cost: 每次工具调用的成本对象数组(如果有)
- usage: 整个响应的令牌使用统计
自定义输出结构
某些模块可能会根据其配置生成自定义输出结构:
-
带有响应格式的代理模块:在代理模块中使用响应格式时,输出结构将匹配定义的模式,而不是标准结构。
-
函数模块:
result字段可以包含函数代码返回的任何数据结构。 -
API 模块:
data字段将包含 API 返回的内容,这可能是任何有效的 JSON 结构。
在开发过程中始终检查模块的实际输出结构,以确保您在连接中引用了正确的字段。
嵌套数据结构
许多块的输出包含嵌套数据结构。您可以在连接标签中使用点符号访问这些结构:
<blockName.path.to.nested.data>例如:
<agent1.tokens.total>- 从 Agent 块访问总令牌数<api1.data.results[0].id>- 从 API 响应中访问第一个结果的 ID<function1.result.calculations.total>- 访问 Function 块结果中的嵌套字段