在扣子Coze中编写Python和JavaScript代码节点指南
在构建智能体工作流时,预设的大模型节点或插件往往难以满足所有定制化的数据处理需求。当需要对上游数据进行清洗、格式转换或执行特定算法时,代码节点提供了直接运行 Python 或 JavaScript 脚本的能力。它像是一个嵌入在工作流中的微型服务器,允许开发者用熟悉的编程语言精确控制数据流向。

Coze 工作流编辑界面,左侧为组件栏,中间为画布,右侧为属性配置面板
关于代码节点入口与语言选择
在工作流画布中,点击左侧组件栏的“工具”或“逻辑”分类,找到“代码”节点并拖入画布。双击节点打开配置面板,首要任务是选择运行环境。目前扣子支持 Python 3 和 JavaScript (Node.js) 两种主流环境。
选择哪种语言主要取决于团队的技术栈偏好以及所需依赖库的支持情况。Python 适合进行数据分析、数学计算或调用科学计算库;JavaScript 则更适合处理 JSON 结构操作、字符串正则匹配或与前端逻辑保持一致的处理方式。一旦选定,节点内的代码编辑器将提供对应的语法高亮和基础提示。
关于输入参数配置
代码节点无法凭空获取数据,必须通过“输入参数”接收上游节点传递的变量。在配置面板的“输入”区域,可以定义多个参数。
每个参数需要设置名称、类型和描述。名称是你在代码中引用的变量名,类型通常包括字符串、数字、布尔值、对象(JSON)或数组。例如,若上游大模型输出了一个包含用户信息的 JSON 对象,你可以添加一个类型为“对象”的参数,命名为 user_info。
在连线时,将上游节点的输出字段映射到代码节点的这些输入参数上。注意,如果上游输出的是字符串格式的 JSON,而代码节点期望的是对象类型,可能需要先经过一个格式转换步骤,或者在代码内部进行解析。

关于输入参数配置
关于 Python 代码编写规范
切换到 Python 环境后,编辑器会预置一些基础代码结构。你需要关注两个核心部分:如何读取输入和如何返回输出。
输入变量直接作为全局变量可用,变量名与你在“输入”区域定义的参数名一致。例如,定义了参数 text,代码中直接使用 text 即可。
输出必须通过特定的字典格式返回。在 Python 中,通常需要构造一个字典,并将其赋值给预定义的输出变量或直接返回。常见的做法是使用 return 语句返回一个字典,键名对应“输出”区域定义的参数名。
import json
def main(params: dict) -> dict:
# 获取输入参数
input_text = params.get('input_text', '')
# 业务逻辑:例如将文本转为大写
processed_text = input_text.upper()
# 返回结果,键名需与输出参数定义一致
return {
"result": processed_text,
"length": len(processed_text)
}
注意,不同版本的 Coze 可能在入口函数签名上略有差异,请以编辑器内的默认模板为准。通常建议保持函数名为 main,并确保返回的是一个标准的 JSON 可序列化对象。

Python 代码编辑器界面,显示输入参数定义和代码编写区域
关于 JavaScript 代码编写规范
在 JavaScript 环境下,代码结构同样围绕输入获取和输出返回展开。输入参数通常通过 args 对象或直接解构的方式获取,具体取决于平台当前的模板版本。
输出方面,JavaScript 节点通常要求返回一个 Promise 或直接返回一个对象。为了保持异步兼容性,建议使用 async/await 结构,即使当前没有异步操作。
module.exports = async function(params) {
// 获取输入参数
const inputText = params.input_text || '';
// 业务逻辑:例如拼接字符串
const result = `Processed: ${inputText}`;
// 返回结果
return {
result: result,
timestamp: Date.now()
};
}
JavaScript 环境中可以使用标准的 ES6+ 语法,如箭头函数、解构赋值等。对于复杂的 JSON 操作,JSON.parse() 和 JSON.stringify() 是常用工具。确保返回的对象结构与“输出”参数定义完全匹配,否则下游节点可能无法正确读取数据。

JavaScript 代码编辑器界面,展示异步函数结构和返回对象
关于输出参数定义
无论使用哪种语言,代码节点的“输出”区域都需要预先定义。这里定义的参数名将成为下游节点引用该代码节点结果的钥匙。
例如,如果在代码中返回了 { "cleaned_data": [...] },那么在输出配置中必须添加一个名为 cleaned_data 的参数,类型选择为“数组”或“对象”。如果代码返回了多个字段,输出配置中也应相应添加多个参数,以便下游节点可以按需选取。
未定义的输出字段虽然可能在代码执行中产生,但无法被工作流的其他部分直接引用,因此建议严格保持代码返回值与输出定义的一致性。
关于调试与测试
编写完代码后,不要直接发布工作流,应先使用“测试”功能。在配置面板右侧或底部,通常有一个“测试”或“运行”按钮。
点击测试后,系统会弹出输入框,要求你手动填入各输入参数的测试值。例如,为 input_text 填入一段示例文本。点击运行后,面板会显示代码的执行日志和最终输出结果。

测试面板,显示手动输入测试数据和查看运行日志
如果代码执行报错,日志区域会显示具体的错误信息,如语法错误、运行时异常或超时。Python 环境通常会打印 Traceback,JavaScript 则会显示 Error 堆栈。根据这些信息修正代码,直到测试运行成功并返回预期的数据结构。
注意,代码节点有执行时长限制,避免在代码中进行长时间的等待或无限循环。对于耗时较长的任务,建议拆分为多个步骤或使用专门的异步处理机制。
完成测试并确认输出格式无误后,保存节点并连接至下游。此时,代码节点就像一个黑盒,接收上游数据,经过自定义逻辑处理,将标准化结果传递给下一个环节,从而实现对工作流逻辑的精细控制。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









