ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Trae:AI原生IDE如何重构代码认知与工作流建模

Trae:AI原生IDE如何重构代码认知与工作流建模 1. 这不是另一个“AI插件”而是一次IDE底层逻辑的重写Trae 不是 VS Code 上又一个 Copilot 替代品也不是 JetBrains 插件市场里待审核的新条目。它从第一行代码开始就拒绝“在现有 IDE 上叠 AI 层”的路径——它把 LLM 的推理能力、代码理解的语义图谱、项目上下文的动态建模、以及开发者意图的实时捕捉全部编译进自己的核心运行时。我第一次启动 Trae 时没有看到熟悉的“欢迎页”或“快速入门向导”而是直接弹出一个空白编辑器右下角浮动着一行小字“正在构建你的项目心智模型0/32”。三秒后它自动识别出我当前目录是一个含pyproject.toml和src/的 Python 项目并在侧边栏生成了模块依赖拓扑图五秒后当我把光标停在requests.get()调用上它没弹出文档浮窗而是直接在下方内联显示了该函数在当前项目中所有被 mock 的位置、调用链上游的异常处理分支、以及下游服务响应超时概率的统计摘要。这不是“增强”这是 IDE 从“文本编辑器语法高亮跳转”进化为“代码认知引擎”的临界点。核心关键词Trae、AI原生、工作流在这里不是营销话术而是技术事实它的编辑器不是基于 Monaco 或 Ace 渲染而是自研的 AST-aware 编辑层所有光标移动、选中、折叠操作都作用于语法树节点而非字符索引它的“智能补全”不依赖本地缓存的 snippets而是每次触发时实时调用轻量化推理模型在毫秒级内完成对当前函数签名、变量生命周期、调用上下文的联合建模它的“调试器”不依赖 GDB/LLDB 协议而是通过注入式探针直接读取运行时对象图并与静态分析结果做双向校验。这意味着你无法像配置 Git 或 Node.js 那样“安装 Trae 后再配置”因为它的配置本身就是工作流的一部分——每个.trae/config.yaml文件本质上是在定义一个可执行的认知策略告诉引擎“当我在tests/目录下编写断言时优先检索最近 7 天 PR 中同类测试的失败模式当我在api/下修改路由装饰器时自动检查所有依赖该路由的前端组件是否已更新类型定义”。适合谁不是“想试试 AI 编程”的新手而是那些已经用熟 VS Code 的多窗口调试、JetBrains 的结构化重构、Vim 的宏录制却仍卡在“理解别人写的遗留系统”“定位跨服务调用瓶颈”“验证新算法在真实数据分布下的边界行为”这些高阶问题上的中高级开发者。Trae 不帮你写 for 循环但它能让你在 17 秒内看清一个 30 万行微服务集群里某次 HTTP 500 错误背后真实的调用链路、数据血缘和状态漂移点。它解决的不是“怎么写更快”而是“怎么想得更准”。2. 配置即建模Trae 的三层配置体系与真实项目映射Trae 的配置文件不是扁平化的 key-value 列表而是一个分层建模系统。它强制你以“项目认知结构”为单位组织配置而非“功能开关”为单位。整个体系分为三层项目层Project-level、领域层Domain-level、会话层Session-level。这三层不是并列关系而是嵌套继承关系——会话层覆盖领域层领域层覆盖项目层且每一层都必须声明其建模意图。2.1 项目层配置定义代码宇宙的物理法则.trae/project.yaml是项目的“宪法”。它不包含任何具体路径或命令只定义三类元规则语义锚点Semantic Anchors指定哪些代码结构是项目认知的基石。例如semantic_anchors: - type: domain_entity pattern: class .*Entity.*: context: [src/domain/, src/core/] - type: integration_boundary pattern: def handle_.*_event\\(.*\\): context: [src/adapters/, src/ports/]这段配置告诉 Trae“当你看到符合class .*Entity.*:模式的类定义且位于src/domain/或src/core/下时将其标记为‘领域实体’并在所有分析中赋予最高语义权重同理handle_.*_event函数是‘集成边界’需自动关联其订阅的事件总线和下游适配器。”提示pattern使用的是 Rust 的 regex 引擎支持命名捕获组。我曾用(?Pevent_name[a-z_])捕获事件名让 Trae 在补全时自动推荐对应事件的 schema 定义文件。上下文约束Context Constraints定义跨文件分析的边界条件。例如context_constraints: - name: test_coverage_scope include: [src/**, tests/**] exclude: [tests/fixtures/**, tests/mocks/**] max_depth: 3这确保 Trae 在分析测试覆盖率时只扫描src/和tests/下的真实业务代码自动排除 fixture 和 mock且限制 AST 遍历深度为 3 层——避免因递归过深导致内存溢出。实测下来这个参数对 50 万行项目将分析耗时从 42 秒压到 8.3 秒。信任域Trust Domains声明哪些外部依赖可被完全信任。例如trust_domains: - name: stdlib source: python:3.11 version: 3.11.0 - name: internal_sdk source: gitgithub.com:myorg/sdk-core.git ref: v2.4.0Trae 会为stdlib自动下载 CPython 的完整 AST 解析器并为internal_sdk克隆指定 commit 的源码进行本地索引。关键在于未列入trust_domains的依赖Trae 默认不解析其源码仅通过 stubs 推断接口。这解决了传统 IDE 在大型 monorepo 中因盲目索引第三方包导致的内存爆炸问题。2.2 领域层配置为特定知识域定制认知滤镜./trae/domains/backend.yaml这类文件不是全局生效而是按目录激活。当你进入src/backend/目录时Trae 自动加载此配置覆盖项目层的默认规则。典型配置包括领域特异性推理模型Domain-specific Inference ModelsTrae 内置多个轻量模型但允许你为不同领域绑定专用模型。例如inference_model: type: fine-tuned path: ./models/backend-llm-v3.bin quantization: q4_k_m context_window: 4096这个backend-llm-v3.bin是我们团队用 2000 个真实 API 错误日志微调的 LoRA 模型专精于 HTTP 状态码归因、数据库查询性能瓶颈诊断。它比通用模型在requests.exceptions.Timeout场景下的根因定位准确率高 63%。领域动作模板Domain Action Templates定义该领域下高频操作的自动化脚本。例如action_templates: - name: generate_openapi_spec trigger: on_save files: [src/backend/api/*.py] script: | #!/usr/bin/env python3 import sys from traefik_utils import generate_openapi generate_openapi(sys.argv[1])当你保存任何api/下的 Python 文件Trae 会自动执行此脚本生成 OpenAPI JSON并同步更新 Swagger UI 的预览链接。注意脚本在 Trae 的沙箱环境中运行无法访问宿主机文件系统所有 I/O 必须通过 Trae 提供的traefik_utilsSDK。领域感知调试器Domain-aware Debugger重定义断点行为。例如debugger: breakpoints: - type: http_request condition: response.status_code 400 actions: [log_response_body, capture_db_queries]这意味着当 HTTP 响应码 ≥400 时Trae 不仅记录响应体还会自动捕获该请求周期内所有执行的 SQL 查询即使它们分散在不同函数中并生成关联的慢查询报告。2.3 会话层配置动态覆盖与临时实验会话层配置不写入文件而是通过命令行或快捷键动态注入。最常用的是trae config --session命令trae config --session \ --set inference_model.temperature0.3 \ --set debugger.breakpoints[0].actions[send_to_slack] \ --set semantic_anchors[0].weight0.95这组命令将当前会话的推理温度降至 0.3减少随机性、为第一个断点增加 Slack 通知动作、并将领域实体的语义权重提升至 0.95。所有变更仅在当前窗口生效关闭后自动清除。我常在排查生产事故时用它先用--session临时启用全链路日志捕获定位到问题后再用--session --persist将该配置保存为新的领域层配置。注意会话层配置的--persist参数会将当前会话的覆盖项合并到.trae/domains/active_domain.yaml中而不是新建文件。这是 Trae “配置即建模”哲学的体现——临时实验必须沉淀为可复现的知识资产。3. 实战工作流拆解从零构建一个可交付的 Trae 工作流配置只是骨架工作流才是血肉。Trae 的工作流不是预设的“模板”而是由开发者用trae workflowCLI 工具组合原子能力生成的可执行流程。下面以一个真实场景为例为新入职工程师搭建“遗留系统快速上手工作流”。3.1 工作流设计从问题域到原子能力映射目标让新人在 2 小时内理解一个 12 年历史、无文档、模块耦合度极高的 Java 电商系统并能独立修复一个典型的“订单状态不一致” bug。传统方案给新人看 Confluence 文档已过期、让他 grep 关键词返回 2387 行、手动调试平均耗时 3 天。Trae 工作流的设计思路是将“理解系统”分解为可验证的认知子任务每个子任务绑定一个 Trae 原子能力。认知子任务Trae 原子能力预期输出验证方式识别核心领域实体trae analyze --semantic-anchor domain_entity生成entities.md列出Order,Payment,Inventory等 7 个实体及其实例分布热力图新人能准确指出Order实体在order-service和payment-service中的字段差异绘制关键业务流程trae trace --entry-point com.example.OrderService.processOrder生成交互式 Mermaid 流程图标注跨服务调用点和数据库事务边界新人能口头描述从下单到支付成功的完整链路误差 ≤1 个环节定位状态不一致根源trae diagnose --bug order_status_mismatch输出根因报告InventoryService.updateStock()在网络分区时未回滚OrderService的状态变更新人能根据报告定位到InventoryService.java第 142 行并写出修复 patch3.2 工作流实现CLI 驱动的流水线编排工作流文件onboard-workflow.yaml是一个 YAML 定义的 DAG有向无环图name: legacy-onboard version: 1.2 steps: - id: identify_entities type: analyze config: semantic_anchor: domain_entity output_format: markdown output_path: docs/entities.md depends_on: [] - id: trace_order_flow type: trace config: entry_point: com.example.OrderService.processOrder max_depth: 5 output_format: mermaid output_path: docs/order-flow.mmd depends_on: [identify_entities] - id: diagnose_bug type: diagnose config: bug_id: order_status_mismatch context_files: [src/order-service/, src/inventory-service/] output_format: json output_path: reports/bug-root-cause.json depends_on: [identify_entities, trace_order_flow] - id: generate_report type: script config: script: | #!/usr/bin/env bash echo ## 新人上手报告 report.md echo ### 核心实体 report.md cat docs/entities.md report.md echo ### 订单流程 report.md echo mermaid report.md cat docs/order-flow.mmd report.md echo report.md jq .root_cause reports/bug-root-cause.json report.md depends_on: [identify_entities, trace_order_flow, diagnose_bug]执行命令trae workflow run --file onboard-workflow.yaml --timeout 1800--timeout 1800指定总超时为 30 分钟。Trae 会自动调度资源identify_entities步骤使用 CPU 密集型分析器trace_order_flow步骤启动分布式 tracerdiagnose_bug步骤加载领域模型。所有步骤的输出自动缓存若中途失败可用trae workflow resume --id run_id从中断点续跑。3.3 工作流交付从 CLI 到 IDE 内置的一键体验工作流不应停留在命令行。Trae 支持将工作流打包为.trae-workflow包并注册到 IDE 的“工作流中心”trae workflow package --file onboard-workflow.yaml --name Legacy Onboard v1.2 --description 为电商系统新人定制的快速上手流程 trae workflow publish --package legacy-onboard-v1.2.trae-workflow --channel internal发布后新人打开 Trae IDE在侧边栏“工作流中心”搜索 “Legacy Onboard”点击“一键启动”IDE 会自动克隆最新代码仓库创建隔离的 Docker 环境预装 JDK 11、MySQL 8.0、Redis 7.0执行onboard-workflow.yaml中定义的全部步骤在编辑器中打开生成的report.md并高亮显示OrderService.java中需要修改的第 142 行整个过程无需新人输入任何命令所有环境、配置、依赖均由工作流定义保证。我实测过一个刚毕业的实习生在没有 Java 开发经验的情况下用这个工作流在 1 小时 42 分钟内完成了首次 bug 修复并提交 PR。3.4 工作流迭代基于反馈的闭环优化工作流不是一次性的。Trae 会自动收集执行数据每个步骤的实际耗时、内存占用、错误率新人在各步骤的停留时间、鼠标轨迹、键盘输入频率最终 PR 的代码变更与工作流报告的匹配度通过 AST diff 计算这些数据汇聚成workflow-metrics.json{ run_id: wf-8a3b1c, steps: [ { id: diagnose_bug, duration_ms: 42800, error_rate: 0.0, user_engagement: { time_spent_ms: 182000, clicks: 23, keystrokes: 147 } } ], outcome: { patch_accuracy: 0.92, first_time_fix: true } }团队每周用trae workflow analyze --metric workflow-metrics.json分析数据发现diagnose_bug步骤虽然机器耗时短但新人平均花费 3 分钟阅读报告——说明报告格式不够直观。于是我们优化了generate_report步骤的脚本将 JSON 根因转换为带颜色编码的代码片段# 优化后的 report 生成脚本片段 echo ### 根因定位 report.md echo java report.md sed -n 140,145p src/inventory-service/InventoryService.java | \ sed 142s/^/ / report.md echo report.md红色箭头直接指向问题行新人一眼就能抓住重点。迭代后diagnose_bug步骤的用户平均耗时下降 67%。4. 深度避坑指南Trae 使用中 90% 的问题都源于这 3 类认知偏差Trae 的强大带来陡峭的学习曲线。我帮 17 个团队落地 Trae发现 90% 的“配置失败”“工作流卡死”“AI 推理不准”问题根源不在技术而在开发者对 AI 原生 IDE 的认知偏差。以下是踩坑最深的三类附真实案例和解决方案。4.1 认知偏差一“配置 设置开关”忽视配置的语义建模本质典型症状在.trae/project.yaml中写enable_ai_completion: true但补全始终不出现报错limited functionality. trust the project to access full ide functionality根本原因Trae 没有enable_ai_completion这个开关。它的补全能力由semantic_anchors和trust_domains共同决定只有被标记为domain_entity的类且其依赖的 SDK 在trust_domains中声明Trae 才会为其生成上下文感知的补全。enable_ai_completion: true是无效字段被静默忽略。真实案例某团队在project.yaml中写了enable_ai_debugger: true然后抱怨“断点不显示变量值”。我检查发现他们没定义任何semantic_anchors且trust_domains只写了stdlib没包含内部 SDK。Trae 的调试器需要知道“哪些变量是领域实体”才能决定是否展开其内部状态。当所有类都被视为普通 POJO调试器默认只显示基础类型。解决方案删除所有形如enable_*的字段回归语义建模用trae analyze --dry-run验证配置trae analyze --dry-run --semantic-anchor domain_entity --files src/**/*Entity.java # 输出应显示匹配的类名和 AST 节点数若为 0 则 anchor pattern 错误对内部 SDK必须用gitURL 而非https://Trae 需要 SSH 权限克隆私有仓库4.2 认知偏差二“工作流 自动化脚本”忽略工作流的上下文感知特性典型症状工作流在 CI 环境中运行成功但在 IDE 内执行失败trae workflow run报错context not found for file: src/main/java/...根本原因Trae 工作流严重依赖 IDE 的实时上下文。CLI 执行时Trae 会尝试连接 IDE 的 WebSocket 服务获取当前编辑器状态、光标位置、选中文本等信息。如果 IDE 未运行或工作流未在 IDE 内启动如直接在终端执行则缺失关键上下文导致分析失败。真实案例一个团队将trae workflow run命令写入 Jenkinsfile期望自动检测代码质量。结果所有diagnose步骤都失败。日志显示context not found。原因是 Jenkins agent 上没有运行 Trae IDECLI 无法获取 AST 索引。解决方案CI/CD 中禁用依赖上下文的工作流步骤改用trae analyze --offline模式# Jenkinsfile 中 sh trae analyze --offline --semantic-anchor domain_entity --output json entities.json在 IDE 内启动工作流右键点击工作流文件 → “Run in IDE”而非终端执行为 CI 定制工作流用type: analyze替代type: diagnose因analyze可离线运行4.3 认知偏差三“AI 原生 无需学习”低估领域模型的训练成本典型症状配置了inference_model.path但模型加载后推理速度极慢trae diagnose返回的答案与项目实际不符如将UserService误判为“支付服务”根本原因Trae 的领域模型不是开箱即用的黑盒。q4_k_m量化模型虽小但需与项目代码风格、术语习惯对齐。未经微调的通用模型在特定领域如金融系统的“轧差”、“头寸”或特定框架如 Spring 的Transactional传播行为上表现极差。真实案例某银行项目使用默认的finance-llm-v1.bintrae diagnose总是将“交易冲正失败”归因为数据库锁而真实原因是清算系统的时间戳校验逻辑。我们检查模型训练数据发现其 92% 的样本来自互联网公开的银行文档缺乏该行特有的“T1 清算协议”细节。解决方案用trae model inspect --path ./models/finance-llm-v1.bin查看模型元信息确认其训练数据来源和版本采集真实问题样本收集 50 个已修复的生产 bug整理其bug_id、context_files、root_cause生成finetune-dataset.jsonl微调命令需 GPUtrae model finetune \ --base-model ./models/finance-llm-v1.bin \ --dataset finetune-dataset.jsonl \ --output ./models/bank-llm-v2.bin \ --epochs 3 \ --lr 2e-5微调后根因定位准确率从 41% 提升至 89%。关键技巧--epochs 3是经验值超过 5 轮易过拟合--lr 2e-5必须用 AdamW 优化器SGD 会导致 loss 爆炸。实操心得Trae 的最大价值不在“开箱即用”而在“可建模性”。它把 IDE 从一个工具变成了一个可编程的认知平台。当你开始思考“如何用 YAML 定义一个领域的知识结构”你就真正进入了 AI 原生开发的门槛。那些抱怨“Trae 配置太复杂”的人往往还没意识到复杂度不是来自 Trae而是来自他们试图建模的系统本身。Trae 只是诚实地把这份复杂度显性化了。5. 工作流编码实战用 Trae CLI 构建每日自动签到工作流网络热词中反复出现的 “serverless定时任务实现trae每日自动签到”表面是自动化需求实则是 Trae 工作流能力的绝佳练兵场。它要求同时处理外部 API 调用、认证状态管理、失败重试、结果通知——正是 Trae 工作流设计的典型场景。下面展示如何从零构建一个健壮的签到工作流。5.1 需求分析签到不是 HTTP GET而是状态机“每日签到”看似简单但真实场景中需处理认证失效Token 过期需重新登录网络抖动HTTP 超时需指数退避重试业务限制同一 IP 1 小时内只能签到 1 次需检查历史记录结果验证返回{code:0,msg:success}不代表成功需校验积分是否真实增加因此工作流必须是一个状态机而非线性脚本。我们定义四个状态login获取或刷新 Tokencheck_history查询今日是否已签到do_signin执行签到请求verify_result校验积分变化5.2 工作流实现状态驱动的 YAML 编排daily-signin.yamlname: Daily Signin version: 1.0 states: - name: login on_entry: - type: http config: method: POST url: https://api.trae.cn/auth/login headers: Content-Type: application/json body: | {username: {{ env.TRAE_USERNAME }}, password: {{ env.TRAE_PASSWORD }}} timeout_ms: 5000 next_state: check_history error_transition: retry_login - name: retry_login on_entry: - type: sleep config: duration_ms: 10000 - type: transition config: target: login - name: check_history on_entry: - type: http config: method: GET url: https://api.trae.cn/user/signin/history?date{{ now | date(%Y-%m-%d) }} headers: Authorization: Bearer {{ state.login.response.token }} timeout_ms: 3000 next_state: do_signin success_condition: {{ response.data.length 0 }} error_transition: retry_check - name: retry_check on_entry: - type: sleep config: duration_ms: 5000 - type: transition config: target: check_history - name: do_signin on_entry: - type: http config: method: POST url: https://api.trae.cn/user/signin headers: Authorization: Bearer {{ state.login.response.token }} Content-Type: application/json body: {} timeout_ms: 8000 next_state: verify_result error_transition: retry_signin - name: retry_signin on_entry: - type: sleep config: duration_ms: {{ 2 ** loop_count * 1000 }} - type: transition config: target: do_signin condition: {{ loop_count 3 }} - name: verify_result on_entry: - type: http config: method: GET url: https://api.trae.cn/user/profile headers: Authorization: Bearer {{ state.login.response.token }} timeout_ms: 3000 next_state: notify_success success_condition: {{ response.data.points state.check_history.previous_points }} error_transition: notify_failure - name: notify_success on_entry: - type: script config: script: | #!/usr/bin/env python3 import os, requests requests.post(https://hooks.slack.com/services/XXX, json{ text: f✅ Trae 签到成功今日积分{os.environ.get(CURRENT_POINTS, N/A)} }) - name: notify_failure on_entry: - type: script config: script: | #!/usr/bin/env python3 import os, requests requests.post(https://hooks.slack.com/services/XXX, json{ text: f❌ Trae 签到失败请检查账号状态。错误{os.environ.get(ERROR_MSG, Unknown)} })5.3 部署与调度Serverless 环境下的无状态执行Trae 工作流本身不提供调度器需借助外部服务。我们选择 AWS Lambda EventBridgeLambda 函数部署trae workflow run --file daily-signin.yaml命令EventBridge 规则设置 cron 表达式cron(0 0 * * ? *)每天 UTC 0 点触发环境变量在 Lambda 中设置TRAE_USERNAME、TRAE_PASSWORD、SLACK_WEBHOOK关键配置Lambda 内存设为 2048MBTrae 运行时需 1.2GB超时设为 300 秒应对网络延迟使用 Amazon Linux 2023 运行时预装 Trae CLI部署脚本deploy.sh#!/bin/bash # 打包 Trae CLI 和工作流 zip -r signin-lambda.zip ./trae-cli-linux-x64 ./daily-signin.yaml # 创建 Lambda 函数 aws lambda create-function \ --function-name trae-daily-signin \ --runtime provided.al2023 \ --role arn:aws:iam::123456789012:role/trae-lambda-execution \ --handler index.handler \ --zip-file fileb://signin-lambda.zip \ --timeout 300 \ --memory-size 2048 \ --environment Variables{TRAE_USERNAMExxx,TRAE_PASSWORDyyy,SLACK_WEBHOOKzzz} # 创建 EventBridge 规则 aws events put-rule \ --name trae-daily-signin-schedule \ --schedule-expression cron(0 0 * * ? *) aws events put-targets \ --rule trae-daily-signin-schedule \ --targets Id1,Arnarn:aws:lambda:us-east-1:123456789012:function:trae-daily-signin5.4 故障排查工作流监控与日志追踪Lambda 日志会自动流入 CloudWatch Logs。我们添加了 Trae 的日志钩子# 在 daily-signin.yaml 顶部添加 logging: level: debug hooks: - type: cloudwatch config: log_group: /trae/signin log_stream: {{ state.name }}-{{ now | date(%Y%m%d) }}这样每个状态的日志都会打到独立的 Log Stream便于按状态过滤。当签到失败时我们只需在 CloudWatch 中筛选log-group/trae/signin找到stateverify_result的日志流查看response.data.points是否真的未增加若未增加检查state.login.response.token是否有效用 Postman 模拟请求实测效果该工作流上线 3 个月100% 按时执行失败率 0.8%全部为网络瞬时故障均在重试后恢复。最关键的是它证明了 Trae 工作流可以脱离 IDE 独立运行成为真正的基础设施级能力。6. 未来演进Trae 工作流与 Obsidian 知识库的深度协同网络热词中 “obsidian和trae搭建知识库” 不是噱头而是 Trae 架构设计的自然延伸。Trae 的核心能力——语义锚点、上下文建模、动态知识图谱——与 Obsidian 的双向链接、图谱视图、插件生态存在底层契合。我们已实现二者无缝协同让代码知识不再沉睡在 IDE 里而是活在知识库中。6.1 知识同步从代码变更到知识图谱自动更新在.trae/project.yaml中启用知识同步knowledge_sync: enabled: true obsidian_vault: /path/to/my-vault rules: - type: entity_to_note semantic_anchor: domain_entity template: | --- created: {{ now | date(%Y-%m-%d) }} tags: [entity, {{ entity.name | lower }}] --- ## {{ entity.name }} **所属模块**: {{ entity.module }} **关键方法**: {% for method in entity.methods %} - {{ method.name }}() → {{ method.purpose }} {% endfor %} **关联实体**: {% for rel in entity.relationships %} - [[{{ rel.target }}]] ({{ rel.type }}) {% endfor %}当 Trae 检测到新OrderEntity类时自动在 Obsidian Vault 的entities/目录下创建OrderEntity.md内容包含该实体的所有方法、字段、与其他实体的关系。更妙的是relationships数据来自 Trae 的跨文件 AST 分析——它能发现OrderEntity被PaymentService的process()方法引用从而在笔记中生成[[PaymentService]]双向链接。6.2 知识反哺从 Obsidian 笔记到 IDE 智能提示Obsidian 中的笔记也能驱动 Trae 的智能。我们在entities/OrderEntity.md中添加%% trae:config %% inference_context: - type: domain_rule description: Order 状态流转必须遵循CREATED → CONFIRMED → SH
返回列表