字节 Trae Agent 的 rust 版本讨论 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
sxhxliang
V2EX    程序员

字节 Trae Agent 的 rust 版本讨论

  •  
  •   sxhxliang
    sxhxliang 90 天前 4720 次点击
    这是一个创建于 90 天前的主题,其中的信息可能已经有所发展或是发生改变。

    第一次发贴,前几天字节开源了Trae Agent,原本的是 python 版本的,我 fork 了一个分支,迁移到了rust,还是个半成品,但是框架和逻辑基本完成了,现在就是要完善细节了,为什么没完成就发出来呢,因为社区关于重构有不同的观点,看看这个 issue,有人支持 rust ,有人支持 go ,我想继续完善,看大家有没有好的建议。

    30 条回复    2025-07-25 11:33:17 +08:00
    musi
        1
    musi  
       90 天前   8
    我不认为这类工具需要多强的性能,相反,我觉得随着 AI 模型的变化这类工具应该有快速迭代(甚至更换架构)的能力。
    这类工具的核心功能其实就两个:
    1. 调用工具
    2. 与 LLM 通信
    这两个功能随便用什么语言都可以快速实现,难的是在这套方案之上抽象出来的工程化能力:如何给 agent 编写提示词?如何管理上下文?如何管理多 agent 之间的交互?这些是需要花大精力去优化调试的。

    在一个复杂任务中调用工具快那么几秒在 LLM 推理的耗时面前不值一提,更不用说像 python 、node.js 这类语言仍然可以调用 rust/c 写的库来提升性能。
    xxxccc
        2
    xxxccc  
       90 天前
    这个 trae agent 感觉在蹭 trae 的热度,其实这个 agent 实现的能力非常基础,不知道为啥能有这么高的 star
    uRQDd07Pt2UWOtOF
        3
    uRQDd07Pt2UWOtOF  
       90 天前
    支持! 多一个选择, 总比没有好
    Reficul
        4
    Reficul  
       90 天前
    难道功能才是最重要的么,语言只是工具而已。
    meteor957
        5
    meteor957  
       90 天前
    go
    maocat
        6
    maocat  
       90 天前
    看了你的回复,感觉你的想要用 Rust 的理由站不住脚,本身就是一个命令行执行脚本,你用 Rust 的内存安全来说事
    Issue 里提到用 o 重写,大概率是 ByteDance 的 KPI 了,毕竟 ByteDance 是全面拥抱 Go 的

    当然 OP 为爱发电的精神是值得鼓励的,期待你的实现
    yedkk
        7
    yedkk  
       90 天前
    没必要 rust 吧,agent 这个东西就是快速迭代的,经常不同模型升个级你就要跟住模型的变化。你用 rust 显得有点重了,甚至我觉得 go 都没必要,你 fork 出来 Python 继续写多好。而且很多 ai 相关的人只会写 python ,他们不可能为了贡献你的项目专门学其他语言。
    sxhxliang
        8
    sxhxliang  
    OP
       90 天前
    @musi codex 也用 rust 重构,这有个讨论 https://github.com/openai/codex/discussions/1174 你看一下
    sxhxliang
        9
    sxhxliang  
    OP
       90 天前
    sxhxliang
        10
    sxhxliang  
    OP
       90 天前
    @yedkk Agent 功能其实比较简单,使用什么语言都很快就能完成,使用 rust 重构我就花了两天时间,我想过可以编译成 WebAssembly ,打开浏览器就能用
    musi
        11
    musi  
       90 天前
    @sxhxliang codex 把大量时间花在了这种换语言的重构任务而不是对 Agent 的优化上,这也是目前还无法追上 claude code 的原因之一

    #10 反驳你说的“Agent 功能其实比较简单”,实现一个看起来可用的 Agent 是很简单的,正如我在#1 中说的,难的是对任务的分解和调优,你可以尝试用 rust 实现达到`claude code`类似的效果(仅仅是最终结果的效果,不考虑其他非必要的功能)对 Agent 的调试得花多大精力
    sxhxliang
        12
    sxhxliang  
    OP
       90 天前
    @musi 我是非常赞同你的,之前看过 claude code 反编译的源码,确实很复杂,我肯定也达不到 claude code 的效果,一是 prompt 设计、二是任务处理逻辑、三是 claude 模型,除非是他开源了。所以目的不是做一个好用的 Agent ,而是迁移到 rust ,能力上限在于 python 版的上限,理性角度看必要性不高,除非社区提一些新的需求。
    030
        13
    030  
       90 天前
    @xxxccc 简单就说明鲁棒性强,也更容易学习思路
    interger
        14
    interger  
       90 天前
    claude code 反编译的源码哪里看?学习一下
    @sxhxliang
    sampeng
        15
    sampeng  
       90 天前 via iPhone
    你就是想写 rust ,然后大声说:快看我快看我,我在用 rust
    sxhxliang
        16
    sxhxliang  
    OP
       90 天前
    @sampeng 我想写 rust 是显而易见的,像 Python 、C++、前端我也写了不少( github 也可以看到),我只是在合适与喜欢之间选择一个平衡
    sxhxliang
        17
    sxhxliang  
    OP
       90 天前
    @interger 我自己备份了一下,怕没了 http://git.lsh.pub/agentx/anon-kode
    dcatfly
        18
    dcatfly  
       90 天前
    完全赞同一楼的想法。
    目前决定这类 cli 工具是否好用的关键因素是模型+工具+上下文管理,也就是 agent 的开发范式,性能完全不是阻塞点。
    而且这类工具虽然是以 cli 的形式在工作,但又有很多需要 UI 交互的地方,比如 diff 的展示;在这方面基于 node 生态有很大优势,这也可能是 claude code/codex/gemini-cli 都是选择 node 的原因之一?
    另外 codex 是这里面做的最差的,bug 满天飞,提示词和工具也非常简陋,感觉他们的精力不在这个上,反而云端的 codex 要好一些。
    009694
        19
    009694  
       90 天前 via iPhone
    agent 用 rust 纯粹折磨自己折磨用户
    magicdawn
        20
    magicdawn  
       89 天前
    Gemini-CLI 使用的是 react+ink, 能用前端那一套
    maplestarplay5
        21
    maplestarplay5  
       89 天前 via Android
    还以为是 Trae 本身,agent 不无所谓吗
    chunhuitrue
        22
    chunhuitrue  
       88 天前
    自己觉得哪个顺手就用哪个。
    deali
        23
    deali  
       88 天前
    话说楼主用 rust 重写还不如用 C#,微软现在在.net 平台的 AI 投入还不错的
    sxhxliang
        24
    sxhxliang  
    OP
       88 天前
    @deali 那可以编译成 dll 引用,现在应该是缺乏.net 的 AI 开发者
    MacsedProtoss
        25
    MacsedProtoss  
       87 天前 via iPhone
    又来一个 rust 邪教?这玩意到底为啥要用 rust 写??? GitHub 上面一堆半成品弃坑 rust-xxx 还嫌不够多吗
    whoami9894
        26
    whoami9894  
       87 天前
    还是太闲了,重写的收益是什么?
    一没性能瓶颈要换语言重写,二作为练手项目没技术含量,三写了也不会有多少人用。
    当然你要是学生时间多无所谓
    Geon97
        27
    Geon97  
       86 天前
    想用什么写就用什么写呗,codex 也 rust 重构的
    用什么语言写不重要,而是要用某语言解决某些语言解决不了的问题
    asd999cxcx
        28
    asd999cxcx  
       77 天前
    我觉得,不如写个 CC 或者 CCR 的 GUI 出来
    sxhxliang
        29
    sxhxliang  
    OP
       76 天前
    @asd999cxcx cc 是 claude code ccr 是啥?
    asd999cxcx
        30
    asd999cxcx  
       76 天前
    @sxhxliang claude code router 可以更换 CC 的模型为其他的(例如 kimi,ds,qwen 之类)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1108 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 23:21 PVG 07:21 LAX 16:21 JFK 19:21
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86