<p>用Trae生成代码前必须先定义函数签名和模块依赖关系,否则生成的代码无法通过类型校验或导入失败;需在functions.yaml中规范定义name、description、parameters(type须为string/number/boolean/array/object)、returns,参数type禁用str/int等非标准写法;Python文件须置于src/functions/下、命名与函数名一致,开头三行注释为# traefn、# version: 0.1.0、# module: core,函数定义为def fn(input: dict) -> dict:且返回key须与functions.yaml中returns字段完全一致;模块依赖可通过pyproject.toml静态声明或traefn scan自动扫描含# traemod首行注释的init.py注册;生成时需在项目根目录执行traefn generate --output build/,生成结果存于build/functions/且不覆盖已有文件。</p>
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

用Trae生成代码前必须先定义函数签名和模块依赖关系,否则生成的代码无法通过类型校验或导入失败。
定义Trae函数签名
打开项目根目录下的 【functions.yaml】 文件,在 functions 字段下新增一个函数条目。
按 YAML 格式填写 name、description、parameters(含 type、required、default)、returns 四个字段,其中 parameters 必须为 object 类型,且每个参数字段需明确指定 type 为 string/number/boolean/array/object 中的一种。
type 写成 “str” 或 “int” 会导致 Trae 解析失败,必须用标准 JSON Schema 类型名。
编写模块逻辑代码
在 src/functions/ 目录下新建与函数名同名的 Python 文件(如 hello_world.py)。
文件开头必须包含三行注释:# traefn、# version: 0.1.0、# module: core(module 值需与 functions.yaml 中所属模块一致)。
函数体必须使用 def fn(input: dict) -> dict: 形式定义,input 参数不可改名、不可加类型提示以外的注解,返回值必须是 dict,且 key 名需与 functions.yaml 中 returns 描述的字段完全一致。
注册模块依赖
方法一:静态声明
编辑 pyproject.toml,在 [tool.trae.modules] 表下添加模块名键值对,值为该模块顶层 __init__.py 的相对路径(如 "src/modules/auth/__init__.py")。
方法二:自动扫描
运行 traefn scan --include src/modules/**/__init__.py,Trae 会递归查找所有含 # traemod 注释的 __init__.py 并自动注册。
【扫描前必须确保每个模块 __init__.py 第一行是 # traemod】,否则该模块不会被识别。
触发代码生成
第一步:确认当前工作目录是项目根目录(含 pyproject.toml 和 functions.yaml)。
第二步:执行命令 traefn generate --output build/。
第三步:检查 build/functions/ 目录下是否生成了对应函数的 .py 文件及配套的 OpenAPI v3 schema.json。
生成过程不覆盖已有文件,若 build/functions/hello_world.py 已存在,Trae 会跳过该文件并输出 warning 日志。


















