codecamp

TRAE 创建并管理智能体

智能体(Agent)是你面向不同开发场景的编程助手。Trae IDE 提供内置智能体。同时,你还可以创建自定义智能体,通过灵活配置提示词和工具集,使其更高效地帮你完成复杂任务。

智能体的能力

  • 自主运行 - 独立探索你的代码库,识别相关文件并进行必要修改。
  • 完整的工具访问权限 - 使用所有可用工具进行搜索、编辑、创建文件及运行终端命令。
  • 上下文理解 - 建立对你项目的结构和依赖关系的全面理解。
  • 多步骤规划 - 将复杂任务拆分为可执行的步骤,并按顺序逐一处理。

智能体的工作流

  1. 需求分析:深入理解任务目标及代码库上下文,明确需求要点。
  2. 代码调研:检索代码库、文档及网络资源,定位相关文件并分析现有实现逻辑。
  3. 方案设计:根据分析结果拆解任务步骤,并动态优化调整修改策略。
  4. 实施变更:照计划在整个代码库中进行必要的代码变更,过程中可能涉及:
    • 新增依赖库推荐
    • 需执行的终端指令
    • TRAE IDE 客户端外的手动操作指引
  5. 交付验收:完成验证后移交控制权,同步汇总所有修改内容。

内置智能体

TRAE IDE 提供以下内置智能体:

  • Chat:用于对话。你可以让 Chat 智能体聊聊你的代码库或编写代码。
  • Builder:Builder 可以帮助你从 0 到 1 开发一个完整的项目。根据你的需求,Builder 会调用不同的工具,包括分析代码文件的工具、编辑代码文件的工具、运行命令的工具等等,从而更加精确且有效地处理你的需求。
  • Builder with MCP:在 Builder 的基础上,你配置的所有 MCP Server 都会默认添加至 Builder with MCP,且不可编辑。

创建自定义智能体

  1. 在 AI 对话窗口中,点击 设置 图标,然后选择 智能体 页签。
    或 在 AI 对话输入框中点击 @智能体 > + 创建智能体,进入 智能体 页签。

  2. 点击 + 创建智能体 按钮。

    你将前往以下智能体配置面板。

  3. 配置智能体。

    配置项 说明
    头像 (可选) 上传图片作为智能体的头像,或直接使用系统生成的随机头像。
    名称 输入智能体的名称。
    提示词 输入智能体的提示词(Prompt),用于规范和指导智能体完成任务的方式。你可以规定智能体的人设、回答口吻、工作流程、使用工具的时机和需要遵守的规范等。
    工具 配置智能体处理需求时可以调用的工具,包括: 
    ● MCP Server:添加 MCP Server 后,智能体在处理你的需求时可调用 MCP Server 提供的工具。你可以为一个智能体添加一个或多个 MCP Server。关于 MCP Server 的更多信息,参考《模型上下文协议(MCP)》。 
    ● 内置工具 
      ⚪ 文件系统:对文件进行增删改查。 
      ⚪ 终端:在终端运行命令,并获取命令的运行状态和结果。 
      ⚪ 联网搜索:搜索和用户任务相关的网页内容。 
      ⚪ 预览:在生成可预览的前端结果后提供预览入口。

  4. 点击 创建 按钮。

使用智能体

在 AI 对话输入框中,输入 @ 或者点击 @智能体,然后在智能体列表中选择你想用的智能体。

修改/分享/删除智能体

你可以按需管理自定义智能体,包括:

  • 修改自定义智能体的配置。
  • 直接通过 TRAE IDE 将自定义智能体分享至掘金社区,或通过复制自定义智能体的链接来将其分享至更多渠道。

    💡 提示
    分享前,建议对智能体提示词和 MCP Server 配置中的信息进行脱敏。

  • 删除自定义智能体。

在自定义智能体列表中,点击 设置 图标,然后在菜单中选择相应的选项并完成所需操作。

对于分享智能体,除通过智能体设置菜单操作外,你也可以先进入智能体的编辑面板,然后点击智能体名称右侧的 分享 按钮进行分享。

导入智能体

你可以将他人分享的智能体导入至 TRAE IDE,从而复用智能体的配置。

  1. 点击他人分享的链接。

  2. 根据浏览器的引导打开 TRAE IDE。

    TRAE IDE 中弹出智能体的信息展示窗口。

  3. 点击 立即获取 按钮。

    TRAE IDE 导入该智能体并将你导航至该智能体的配置页面。

开启/关闭 “自动运行” 功能

自动运行 功能作用于所有智能体。你可以在 智能体 窗口开启该功能并将指定命令加入黑名单后(默认已将 rmkillchmod 加入黑名单),智能体会自动运行不在黑名单中的命令和 MCP 服务器。智能体提出建议执行的命令时,如果命令前缀在黑名单中,则需要手动运行相关命令。

💡注意
开启 “自动运行” 后,可能存在外部提示词注入(Prompt Injection)的安全风险,请谨慎评估后使用。

更多功能

TRAE IDE 提供一系列可以配合智能体使用的功能,精准且高效地助力你从 0 到 1 开发项目。

使用自定义模型

TRAE 预置了一系列业内表现比较出色的模型,你可以直接切换不同的模型进行使用。此外,TRAE 还支持通过 API 密钥(API Key)接入自定义模型,从而满足个性化的需求。详情参考《模型》。

添加上下文

智能体可以理解当前项目中的上下文,包括代码、文件和文件夹,从而更精确地协助你完成开发需求。详情参考《上下文》。

生成并处理代码变更

根据你的需求,智能体会自动创建新文件或编辑已有文件,并自动保存生成的代码。你可以选择接受或拒绝代码变更,包括:

  • 处理多文件内的所有代码变更:点击输入框上方待审查文件列表中的 全部接受全部拒绝 按钮,批量接受或拒绝当前项目中的所有代码变更。

  • 处理单文件内的所有代码变更:在编辑器内打开文件,点击上方提示条中的 接受 按钮(快捷键:macOS 为 Command + Enter;Windows 为 Ctrl + Enter)或 拒绝 按钮(快捷键:macOS 为 Command + Backspace;Windows 为 Ctrl + Backspace),批量接受或拒绝当前文件内的所有代码变更。

  • 处理单处代码变更:在编辑器内,将鼠标悬浮至某个代码变更处,然后点击右上角的 ^Y 按钮(快捷键:macOS 为 Control+Y;Windows 为 Alt + Y)或 ^N 按钮(快捷键:macOS 为 Control + N;Windows 为 Alt + N),接受或拒绝该变更。

生成并运行命令

根据你的需求,智能体会适时推荐必要的 Shell 命令供你运行(以下图为例)。你可以选择运行或跳过某个命令,智能体会根据你的操作完成后续的工作。

点击 运行 后,终端将运行该命令。命令运行后,智能体会自动读取并分析运行结果。如果运行异常,智能体会自动分析原因,并给出建议解决方案。

预览成果

智能体完成开发需求后,会提供 预览 按钮。点击后,TRAE 会打开 Preview 窗口,用于展示开发成果。

预览过程中,若你继续与智能体对话,修改需求,开发成果会在 Preview 窗中实时更新。

回退版本

你可以将项目回退到指定会话轮次发起前的版本。

💡提示
- 回退操作不可撤销。
- 仅支持回退至最近 10 轮会话内的版本。

使用以下步骤回退项目的版本:

  1. 找到目标对话气泡。
  2. 点击左侧的 回退 按钮。

    对话框中展示本次回退会影响的文件。

  3. 点击文件名。

    编辑器内会打开该文件,显示即将发生的变更。

  4. 确认本次回退的影响范围。
  5. 若本次回退符合预期,点击 确定

    智能体开始回退项目。

管理历史对话

点击对话窗口右上角的 历史会话 按钮,查看并管理你与智能体的所有对话。

  • 若你需要查看某轮历史对话,点击该对话,你会跳转至该对话的位置。
  • 若需要删除某轮对话,可以将鼠标悬浮至该对话,然后点击右侧的 删除 图标。对话被删除后无法恢复。
TRAE SOLO Figma 导入
TRAE 自动运行 & 安全性
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }