第一次发贴,前几天字节开源了Trae Agent,原本的是 python 版本的,我 fork 了一个分支,迁移到了rust,还是个半成品,但是框架和逻辑基本完成了,现在就是要完善细节了,为什么没完成就发出来呢,因为社区关于重构有不同的观点,看看这个 issue,有人支持 rust ,有人支持 go ,我想继续完善,看大家有没有好的建议。
![]() |
1
musi 59 天前 ![]() 我不认为这类工具需要多强的性能,相反,我觉得随着 AI 模型的变化这类工具应该有快速迭代(甚至更换架构)的能力。
这类工具的核心功能其实就两个: 1. 调用工具 2. 与 LLM 通信 这两个功能随便用什么语言都可以快速实现,难的是在这套方案之上抽象出来的工程化能力:如何给 agent 编写提示词?如何管理上下文?如何管理多 agent 之间的交互?这些是需要花大精力去优化调试的。 在一个复杂任务中调用工具快那么几秒在 LLM 推理的耗时面前不值一提,更不用说像 python 、node.js 这类语言仍然可以调用 rust/c 写的库来提升性能。 |
![]() |
2
xxxccc 59 天前
这个 trae agent 感觉在蹭 trae 的热度,其实这个 agent 实现的能力非常基础,不知道为啥能有这么高的 star
|
![]() |
3
uRQDd07Pt2UWOtOF 59 天前
支持! 多一个选择, 总比没有好
|
![]() |
4
Reficul 59 天前
难道功能才是最重要的么,语言只是工具而已。
|
5
meteor957 59 天前
go
|
![]() |
6
maocat 59 天前
看了你的回复,感觉你的想要用 Rust 的理由站不住脚,本身就是一个命令行执行脚本,你用 Rust 的内存安全来说事
Issue 里提到用 Go 重写,大概率是 ByteDance 的 KPI 了,毕竟 ByteDance 是全面拥抱 Go 的 当然 OP 为爱发电的精神是值得鼓励的,期待你的实现 |
7
yedkk 59 天前
没必要 rust 吧,agent 这个东西就是快速迭代的,经常不同模型升个级你就要跟住模型的变化。你用 rust 显得有点重了,甚至我觉得 go 都没必要,你 fork 出来 Python 继续写多好。而且很多 ai 相关的人只会写 python ,他们不可能为了贡献你的项目专门学其他语言。
|
![]() |
8
sxhxliang OP @musi codex 也用 rust 重构,这有个讨论 https://github.com/openai/codex/discussions/1174 你看一下
|
![]() |
9
sxhxliang OP |
![]() |
10
sxhxliang OP @yedkk Agent 功能其实比较简单,使用什么语言都很快就能完成,使用 rust 重构我就花了两天时间,我想过可以编译成 WebAssembly ,打开浏览器就能用
|
![]() |
11
musi 59 天前
@sxhxliang codex 把大量时间花在了这种换语言的重构任务而不是对 Agent 的优化上,这也是目前还无法追上 claude code 的原因之一
#10 反驳你说的“Agent 功能其实比较简单”,实现一个看起来可用的 Agent 是很简单的,正如我在#1 中说的,难的是对任务的分解和调优,你可以尝试用 rust 实现达到`claude code`类似的效果(仅仅是最终结果的效果,不考虑其他非必要的功能)对 Agent 的调试得花多大精力 |
![]() |
12
sxhxliang OP @musi 我是非常赞同你的,之前看过 claude code 反编译的源码,确实很复杂,我肯定也达不到 claude code 的效果,一是 prompt 设计、二是任务处理逻辑、三是 claude 模型,除非是他开源了。所以目的不是做一个好用的 Agent ,而是迁移到 rust ,能力上限在于 python 版的上限,理性角度看必要性不高,除非社区提一些新的需求。
|
15
sampeng 59 天前 via iPhone
你就是想写 rust ,然后大声说:快看我快看我,我在用 rust
|
![]() |
16
sxhxliang OP @sampeng 我想写 rust 是显而易见的,像 Python 、C++、前端我也写了不少( github 也可以看到),我只是在合适与喜欢之间选择一个平衡
|
![]() |
18
dcatfly 58 天前
完全赞同一楼的想法。
目前决定这类 cli 工具是否好用的关键因素是模型+工具+上下文管理,也就是 agent 的开发范式,性能完全不是阻塞点。 而且这类工具虽然是以 cli 的形式在工作,但又有很多需要 UI 交互的地方,比如 diff 的展示;在这方面基于 node 生态有很大优势,这也可能是 claude code/codex/gemini-cli 都是选择 node 的原因之一? 另外 codex 是这里面做的最差的,bug 满天飞,提示词和工具也非常简陋,感觉他们的精力不在这个上,反而云端的 codex 要好一些。 |
![]() |
19
009694 58 天前 via iPhone
agent 用 rust 纯粹折磨自己折磨用户
|
![]() |
20
magicdawn 58 天前
Gemini-CLI 使用的是 react+ink, 能用前端那一套
|
21
maplestarplay5 57 天前 via Android
还以为是 Trae 本身,agent 不无所谓吗
|
![]() |
22
chunhuitrue 57 天前
自己觉得哪个顺手就用哪个。
|
![]() |
24
sxhxliang OP @deali 那可以编译成 dll 引用,现在应该是缺乏.net 的 AI 开发者
|
25
MacsedProtoss 56 天前 via iPhone
又来一个 rust 邪教?这玩意到底为啥要用 rust 写??? GitHub 上面一堆半成品弃坑 rust-xxx 还嫌不够多吗
|
![]() |
26
whoami9894 56 天前
还是太闲了,重写的收益是什么?
一没性能瓶颈要换语言重写,二作为练手项目没技术含量,三写了也不会有多少人用。 当然你要是学生时间多无所谓 |
![]() |
27
Geon97 55 天前
想用什么写就用什么写呗,codex 也 rust 重构的
用什么语言写不重要,而是要用某语言解决某些语言解决不了的问题 |
28
asd999cxcx 46 天前
我觉得,不如写个 CC 或者 CCR 的 GUI 出来 🐶
|
![]() |
29
sxhxliang OP @asd999cxcx cc 是 claude code ccr 是啥?
|
30
asd999cxcx 45 天前
@sxhxliang claude code router 可以更换 CC 的模型为其他的(例如 kimi,ds,qwen 之类)
|