我花了 4 天时间创建一个 code agent, 核心代码不到 200 行。
试用:npm install -g wscode-cli ,github 仓库在: https://github.com/mileswangs/wscode-cli
下面讲一下关键逻辑
这看起来很无聊,但深刻且普遍:传统编程报错会 throw {err: stackoverflow}, llm 时代编程会 return ‘have a error: stackoverflow’
举个例子:我们需要约束以绝对路径访问文件,当 llm 调用相对路径的时候会收到 tool 返回的Path must be within the root directory
这个字符串,llm 看到这个失败信息后会更改工具使用姿势
![]() |
1
qcgzxw 9 天前
学习
|
2
fushall 9 天前
太牛了楼主,学习了
|
3
bbao 9 天前 ![]() 弱弱的问,楼上两位学习的同学,学习到了啥?
|
4
Greenm 9 天前
你这个跟 claude code 有什么关系?
|
5
Gress 9 天前
你这个跟 claude code 有什么关系?
|
![]() |
6
NoobNoob030 9 天前 ![]() |
![]() |
7
Vegetable 9 天前 ![]() 你描述这个,看起来不就是 MCP 的入门吗?
你为什么要把 commit 乱写的仓库发出来啊,这和在大街上拉屎有什么区别 |
8
Scarb 9 天前
你这个跟 claude code 有什么关系?
|
![]() |
9
stormtrooperx5 9 天前
啊?
|
10
yulon 9 天前 ![]() 最简单的 tool use 也能叫 agent 了啊?没有模型路由,上下文没有精简压缩处理,没有长期记忆没有小笔记,tool 也只能被模型主动 call ,call 的结果没有对不同模型做转换,没有预处理和后处理过滤器等等等等……
|
![]() |
11
huluhulu 9 天前 ![]() 然后呢?这就是最初级的一个 agent ,怎么构建 spec/怎么 plan/怎么按步完成 task/怎么 memory/怎么索引代码?你当现在的 AI IDE 更新了那么久,就一无是处?
|
![]() |
12
hejiwen 9 天前
你这个跟 claude code 有什么关系?
|
![]() |
13
belin520 9 天前
所以 1L 和 2L ,是 OP 的小号?
|
![]() |
14
billzhuang 9 天前
keep calm
|
15
kneo 9 天前 via Android
我并不想打击初学者学习和分享的心情。
但是我有点怀疑你这四天是和 claude code 一起度过的。 我也尊重任何使用 claude code 进行真正生产力创造的行为。 但是是看你最后还发个 x 链接,就觉得有点不对味儿了。 |
16
leslieo2 9 天前
commit message 全是 1. 写的什么玩意
|
18
songunity 9 天前
commit message 都没好好写,你发出来干嘛?
|
19
dyncan 9 天前
Not really interested, all the commit messages are just ‘1’, I’d feel a bit embarrassed to even share them.
|
![]() |
20
fudanglp 9 天前 ![]() 如说
|
![]() |
21
wangshuo6 OP 1. 他很简单 2. 他能工作;
|
22
pluto666 9 天前 ![]() 好抽象
|
![]() |
23
zsh2401 9 天前 via iPhone
ReAct 已经是 2023 年的东西了,现在没什么学习意义
|
![]() |
24
paouke 9 天前 ![]() 太抽象了
|
![]() |
26
wangshuo6 OP 多喷,我爱听
但凡研究过 claude-code 这类 cli 工具就说不出这话,还有人用 memory 和 commit 来反对,这就像别人送一朵花,却有人喷叶子长得不好看 有十几个哥们点了 star 的,我相信他们也认为 简单>复杂,逻辑>优化 感兴趣可以研究一下知名仓库的逻辑: https://minusx.ai/blog/decoding-claude-code/ https://github.com/google-gemini/gemini-cli 这篇文章和我观点一样: https://www.reddit.com/r/AI_Agents/comments/1myms7e/agents_are_just_llm_loop_tools_its_simpler_than/ agent 的逻辑由 llm(data) 驱动而不是代码(固定逻辑) |
27
WithoutSugarMiao 8 天前
@wangshuo6 你在这里发的这篇文章,我已经看到好多公众号的洗稿了,没想到在 V2 又看见了。这篇文章里用的方式是通过捕捉网络请求来判断 cc 的执行逻辑,这其实并没有什么问题,但是这并不是 cc 的效果很好的原因,而是所有的 agent 都可以使用这套通用的逻辑。那么差别在哪,你的分析 和 你的项目完全没有体现出来。
想探究 cc 的执行流程不如看看这个: https://github.com/shareAI-lab/analysis_claude_code |
![]() |
28
wangshuo6 OP @WithoutSugarMiao 看了这个仓库,大部分组件是 for 工程上的安全或成本控制,gemini-cli 里还有这个文章的更清晰的实现,但从学习角度来讲,gemini-cli 的实现,非常痛苦,核心 loop 和前端交互代码混杂在一起;为了保证稳定性的代码远多于实现功能的代码。
我发这个帖子就是为了干掉这些 为了“使用稳定/成本”才有的优化,专注于实现功能本身 不知道为什么 cc 效果好,我猜核心是一套评测系统,以此优化 prompt, 和写的代码代码应该关系不大(我猜的)。anthropic docs 花很长篇幅解释了评测系统。换个说法,即使知道 cc 牛逼的原因用处也不大,关键要知道可量化的评测。 |