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

我不认为这类工具需要多强的性能,相反,我觉得随着 AI 模型的变化这类工具应该有快速迭代(甚至更换架构)的能力。
这类工具的核心功能其实就两个:

  1. 调用工具
  2. 与 LLM 通信
    这两个功能随便用什么语言都可以快速实现,难的是在这套方案之上抽象出来的工程化能力:如何给 agent 编写提示词?如何管理上下文?如何管理多 agent 之间的交互?这些是需要花大精力去优化调试的。

在一个复杂任务中调用工具快那么几秒在 LLM 推理的耗时面前不值一提,更不用说像 python 、node.js 这类语言仍然可以调用 rust/c 写的库来提升性能。

这个 trae agent 感觉在蹭 trae 的热度,其实这个 agent 实现的能力非常基础,不知道为啥能有这么高的 star

支持! 多一个选择, 总比没有好

难道功能才是最重要的么,语言只是工具而已。

go

看了你的回复,感觉你的想要用 Rust 的理由站不住脚,本身就是一个命令行执行脚本,你用 Rust 的内存安全来说事
Issue 里提到用 Go 重写,大概率是 ByteDance 的 KPI 了,毕竟 ByteDance 是全面拥抱 Go 的

当然 OP 为爱发电的精神是值得鼓励的,期待你的实现

没必要 rust 吧,agent 这个东西就是快速迭代的,经常不同模型升个级你就要跟住模型的变化。你用 rust 显得有点重了,甚至我觉得 go 都没必要,你 fork 出来 Python 继续写多好。而且很多 ai 相关的人只会写 python ,他们不可能为了贡献你的项目专门学其他语言。

codex 也用 rust 重构,这有个讨论 github.com/openai/codex/discussions/1174 你看一下

不仅仅是内存安全,codex 也用 rust 重构,这有几个讨论 github.com/openai/codex/discussions/1174 www.reddit.com/r/rust/comments/1lkdu2m/openai_is_ditching_typescript_to_rebuild_codex/

Agent 功能其实比较简单,使用什么语言都很快就能完成,使用 rust 重构我就花了两天时间,我想过可以编译成 WebAssembly ,打开浏览器就能用

codex 把大量时间花在了这种换语言的重构任务而不是对 Agent 的优化上,这也是目前还无法追上 claude code 的原因之一

#10 反驳你说的“Agent 功能其实比较简单”,实现一个看起来可用的 Agent 是很简单的,正如我在#1 中说的,难的是对任务的分解和调优,你可以尝试用 rust 实现达到claude code类似的效果(仅仅是最终结果的效果,不考虑其他非必要的功能)对 Agent 的调试得花多大精力

我是非常赞同你的,之前看过 claude code 反编译的源码,确实很复杂,我肯定也达不到 claude code 的效果,一是 prompt 设计、二是任务处理逻辑、三是 claude 模型,除非是他开源了。所以目的不是做一个好用的 Agent ,而是迁移到 rust ,能力上限在于 python 版的上限,理性角度看必要性不高,除非社区提一些新的需求。

简单就说明鲁棒性强,也更容易学习思路

claude code 反编译的源码哪里看?学习一下

你就是想写 rust ,然后大声说:快看我快看我,我在用 rust

我想写 rust 是显而易见的,像 Python 、C++、前端我也写了不少( github 也可以看到),我只是在合适与喜欢之间选择一个平衡

我自己备份了一下,怕没了 git.lsh.pub/agentx/anon-kode

完全赞同一楼的想法。
目前决定这类 cli 工具是否好用的关键因素是模型+工具+上下文管理,也就是 agent 的开发范式,性能完全不是阻塞点。
而且这类工具虽然是以 cli 的形式在工作,但又有很多需要 UI 交互的地方,比如 diff 的展示;在这方面基于 node 生态有很大优势,这也可能是 claude code/codex/gemini-cli 都是选择 node 的原因之一?
另外 codex 是这里面做的最差的,bug 满天飞,提示词和工具也非常简陋,感觉他们的精力不在这个上,反而云端的 codex 要好一些。

agent 用 rust 纯粹折磨自己折磨用户

Gemini-CLI 使用的是 react+ink, 能用前端那一套