Trae Agent :能提高开发效率的功能都值亲自体验一下

我用Trae 做了一个有意思的Agent 「代码CV工程师」。 点击 s.trae.ai/a/f67061 立即复刻,一起来玩吧!

一. 前言

这篇文章就两个目的 :

  1. 分享一下这段时间使用 Agent 的感受 ,确实有用
  2. 不限定于 Trae ,同样适用于 Cursor ,只是说 Trae 近期使用比较划算,值得尝试一下
  3. 另外 , 参与一下活动 ,想要那个树莓派 ,拿到手给大家带来10篇优质文章

二. Agent 是什么

2.1 宏观知识的理解

Agent(智能体)是一种基于大模型(如大语言模型 LLM)的智能程序,具备环境感知、自主推理决策、工具使用和独立行动能力,可以在给定目标下自主完成复杂任务,无需人工过多干预

Agent 主要多了这些行为 :具备环境感知 , 动态规划、调用工具完成任务 . 如果用比较官方的话来说就是 :

  • 模型(Model) : Agent 本质上还是要借助 大语言模型(LLM)进行自然语言理解、推理和决策
  • 工具(Tool Use) : 让模型可以感知到工具的存在 ,通过工具扩展模型的能力边界
  • 规划(Planning) : 具备自动拆解目标、制定策略与行动步骤的能力,也就是分解任务
  • 编排与执行(Orchestration & Action) : 编排层负责协调模型、工具和记忆的协同工作
  • 记忆(Memory) :拥有短期和长期记忆模块,支持多轮对话回溯、任务上下文保存和反馈记录

当然 ,这些说起来太绕了 ,听起来也是云里雾里 ,不得劲 ,简单说说 :

  • 早期 AI 就是有脑子没手 ,现在有手进行操作了
  • 说浅显点就是有工具了 ,人类的发展离不开工具的使用 ,AI 也是如此
  • 意识 了 ,知道先做什么 ,再做什么
python 复制代码
''' 一般一个流程如下 '''
1. 首先通过模型对环境/指令进行理解和解析;'(大模型)'
2. 依据目标进行任务规划,分解流程、明确执行策略;
3. 调度合适的工具进行外部操作或信息获取;
4. 记忆模块承担信息存储、历史回溯等功能,为连续任务提供支持;
5. 最终输出结果并持续优化策略,实现自主、闭环的感知-思考-行动过程

2.2 几个感兴趣的问题的自我理解

虽然不是大佬 ,作为一个使用者 ,对其中几个关键的原理还是非常好奇的 ,奈何这东西太深奥 ,也只能简单的理解下 :

Agent 是如何进行任务规划的 ?

S1 : 首先得理解单代理系统和多代理系统 , 他们的处理方式是完全不一样的 :

  • 单代理系统: 由一个代理(Agent)负责所有任务处理,包括任务规划、工具调用、执行和反馈。结构简单,适合简单或中等复杂度的任务。
  • 多代理系统 : 多个代理协同工作,每个代理负责不同的任务部分,如规划、执行、记忆管理等。适用于复杂任务,提供更高的灵活性和效率。
    • 计划者(Planner) :生成包含完整规划步骤的任务列表,并为每个步骤预定义变量引用和依赖关系。
    • 执行者(Executors) :根据计划单独执行各个子任务,并将结果反馈给计划者以进行动态重规划。
组件类型 功能描述 优点 缺点
单代理任务规划 单一模型负责生成规划、分解任务及执行反馈 实现简单,内部协调高效,不依赖外部通信 在复杂任务中易受局部最优困扰,难以扩展任务规模
多代理任务规划 专门规划者与多个执行代理分工协作完成任务规划与执行 分工明确,具有更高的扩展性、并行处理能力及动态调整能力 系统协同通信要求高,协调成本增加,设计难度较大

S2 : 那么接下来就是任务是如何进行任务分解的呢?

  • 任务分解的基本思路是将大任务拆分为多个子任务,并为每个子任务生成具体执行步骤
  • 比如 : 一个旅游预订任务可以被拆分为查询航班、比较价格、检查行程安排、最后完成预订等多个步骤
  • 那么谁做的 ? 其实本质还是大模型做的
    • 利用 Chain-of-Thought 提示工程技术,通过逐步推理生成每个子任务的逻辑关系和执行顺序
    • ReACT(Reasoning and Acting) :一种结合推理和行动的框架
      • 旨在增强大型语言模型(LLMs)的能力 ,它具有这些环节 👇👇👇
      • 思考阶段:代理模型根据当前输入和历史数据生成初步规划方案。
      • 行动阶段:基于规划方案,模型调用外部工具或 API 执行特定子任务。
      • 观察阶段:系统观察执行结果,并反馈给模型进一步优化下一步规划。

S3 : 模型又是怎么知道调用工具的呢?

上一步任务进行分解了 ,但是它知道要去干某件事后 ,它又是凭什么知道应该那么去做的呢?

  • 意图识别 + 需求解析 : 通过大模型 ,识别出核心需求和关键参数。 比如查询武汉天气 ,需求是天气 ,参数是武汉
  • 调用计划生成 : 依据上下文知识和可能预先给定的接口描述信息 ,生成调用计划。
    • 什么意思呢 ? 也就是说你要先在上下文里面把工具的能力告诉大模型
    • 用计划包括调用接口的 URL、请求方法、参数列表以及返回数据的预期格式
    • 比如 MCP ,他会告诉大模型工具的能力 ,URL ,同时请求参数和请求返回
  • 自适应学习 : 用户需求不够明确,大模型会利用内置提示(In-context Learning)机制,参考历史调用元数据,实现自动纠错与反馈,从而不断提升生成调用代码的正确率
  • 请求的物理实现 : 最终是由后端系统中的 执行器(Executor)工具调用模块 来承担这部分任务
    *
    1. 解析模型输出:从 Agent 输出中提取目标 URL、请求方法、所需参数和请求头等信息
      1. 构造 HTTP 请求:利用编程语言中内置的网络库来拼装实际的 HTTP 请求。
      1. 发起网络调用:调用底层 HTTP 客户端,通过 TCP/IP 协议向指定的服务器发送请求。

说白了 ,还是需要把接口的信息告诉大模型,大模型基于接口信息 + 用户需求,解析出调用的逻辑

2.4 阶段总结

对于普通玩家 ,我感觉这些原理就已经够了 ,再深入代码层面的使用 ,那是高级玩家的领域了,没必要太深入。

@ 多智能体协作框架CrewAI -- 标点符

这篇文章里面就详细的列举出了一个多智能体的整合流程,结合上文的基础知识点 ,应该可以有助于理解整个流程。

三. 搭建一个 Agent - Trae 版

搭建一个 Agent 其实不复杂 ,至少对于普通使用者来说 ,就像配置东西一样就简单 ,主要分为两个部分 :

  • Step 1 : 定义一个 Agent 的背景信息,也就是 Agent 的提示词 ,包括工作流程 ,偏好 ,规整等
  • Step 2 : 为 Agent 选择合适的 MCP 组件 ,或者自行搭建一个 ,使其能进行相关的操作

3.1 Agent 的提示词

python 复制代码
你是一个程序员 ,你善于仿写代码,工厂化的去创建类似的类。

首先你会接到类似这样的需求 :

1. 帮我完善某个表的三层链路 
针对这些需求 ,你要帮我基于表生成 DAS 层 和 Service 层 ,View 层 。 同时要包含 CURD 代码 ,写法参考 template 文件中的内容

2. 帮我仿写代码
我会告诉你要仿写的需求 ,首先你要分析要仿写的源类 ,分析出其中的方法 和 参数 。 按照类似的格式生成不同需求的类

3. 帮我完善代码 
你需要分析代码的结构 ,判断出代码逻辑中缺少的方法或者缺少的逻辑, 进行完善。


同时你写代码要有如下规范 :

1. 虽然是 Python ,但是命名全部采用驼峰结构
2. 类文件名同样使用驼峰结构
3. 代码要有必要的注释 ,要对可能出现异常的地方进行 try catch
  • 这里提示词只是一个案例 ,其目的有很多 ,目的是控制智能体的角色 ,工作流程和规范

3.2 定义规则

user_rule.md

js 复制代码
1. 请保持对话语言为中文
2. 代码需要有关键log和日志
3. 代码所有的名称按照驼峰结构来

project_rule.md

python 复制代码
1. 代码分为 Service 和 Das 层 , 分别以这两个名字做后缀
2. 代码项目为 Python 结构 ,包含一个 main.py 入口文件
3. 代码需要使用 sqlite 和 flask 框架
4. 这是一个PyQT的桌面应用,前段界面在 Views 层
5. 调用路径 : Views -> Service -> Das
6. 界面美观 ,颜色偏淡蓝色
7. Service 层模板取上下文里面的 das_template.md 的内容仿写
8. Das 层模板取上下文里面的 das_template.md 的内容仿写
9. 数据表结构取 sql.md 的内容,来生成das 层

规则生效效果

  • 配置完成之后 ,可以看到规则生效了

3.3 定义上下文

我这里定义了两套上下文 :

  1. 代码模板
  2. SQL 文件

通过这两个上下文 ,可以更好的控制代码生成的方向和结构

定义 MCP

@ juejin.cn/post/749782...

MCP 本次里面使用不明显 ,具体的开源看看这一篇

四. 效果图

AI 计算效果

AI 生成效果

  • 编写完 Agent 后 ,5分钟等待就能出 Demo 了 ,效果也不错 ,集成了 SQlite , Peewee ,增删改查都有

总结

整体使用感受 :

  • 总体来说我已经在自己的个人项目里面开始深入使用了 ,付费可以3美元的超级模型 ,不付费也可以Gemini-2.5
  • 使用起来 ,超级模型确实牛逼 ,哈哈
  • 效率有提升 ,对于 Python 脚本语言 ,基本上能完成90%的功能, 确实还会有一些小误差
  • 对于代码质量 ,大家尝试一下就知道了 ,有免费额度,不冲突

分享自己感受的同时参与了一下活动 ,就想要一个树莓派 ,一直想玩无人机 ,哈哈

最后的最后 ❤️❤️❤️👇👇👇

相关推荐
TobyMint8 分钟前
golang 实现雪花算法
后端
今天又欠一行代码9 分钟前
Trae 更智能的编写vue代码
ai编程
G探险者15 分钟前
【案例解析】一次 TIME_WAIT 导致 TPS 断崖式下降的排查与优化
后端
码农之王34 分钟前
(一)TypeScript概述和环境搭建
前端·后端·typescript
玛奇玛丶1 小时前
面试官:千万级订单表新增字段怎么弄?
后端·mysql
木木一直在哭泣1 小时前
基于 XXL-JOB 的任务调度封装实践:xxl-job-start 项目详解
后端
掘金狂热勇士1 小时前
Bullet 物理引擎:开启逼真物理模拟的大门
后端
扎瓦1 小时前
ThreadLocal 线程变量
java·后端
涡能增压发动积1 小时前
一起来学 Langgraph [第一节]
后端
ruokkk2 小时前
重启Eureka集群中的节点,对已经注册的服务有什么影响
后端