claude code 的核心逻辑

22 天前
 wangshuo6

我花了 4 天时间创建一个 code agent, 核心代码不到 200 行。

试用:npm install -g wscode-cli ,github 仓库在: https://github.com/mileswangs/wscode-cli

下面讲一下关键逻辑

关键 1: loop + tool use

关键 2: llm 通过工具调用(成功或失败都行)获取信息,以字符串形式传递

这看起来很无聊,但深刻且普遍:传统编程报错会 throw {err: stackoverflow}, llm 时代编程会 return ‘have a error: stackoverflow’

举个例子:我们需要约束以绝对路径访问文件,当 llm 调用相对路径的时候会收到 tool 返回的Path must be within the root directory这个字符串,llm 看到这个失败信息后会更改工具使用姿势

详细实现和 prompt 见仓库

关注我: https://x.com/mileswangs

4321 次点击
所在节点    程序员
28 条回复
wangshuo6
22 天前
1. 他很简单 2. 他能工作;
pluto666
22 天前
好抽象
zsh2401
21 天前
ReAct 已经是 2023 年的东西了,现在没什么学习意义
paouke
21 天前
太抽象了
flyqie
21 天前
@wangshuo6 #21

所以呢,这就是你带上"claude code 的核心逻辑"的原因?
wangshuo6
21 天前
多喷,我爱听
但凡研究过 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) 驱动而不是代码(固定逻辑)
WithoutSugarMiao
21 天前
@wangshuo6 你在这里发的这篇文章,我已经看到好多公众号的洗稿了,没想到在 V2 又看见了。这篇文章里用的方式是通过捕捉网络请求来判断 cc 的执行逻辑,这其实并没有什么问题,但是这并不是 cc 的效果很好的原因,而是所有的 agent 都可以使用这套通用的逻辑。那么差别在哪,你的分析 和 你的项目完全没有体现出来。

想探究 cc 的执行流程不如看看这个: https://github.com/shareAI-lab/analysis_claude_code
wangshuo6
21 天前
@WithoutSugarMiao 看了这个仓库,大部分组件是 for 工程上的安全或成本控制,gemini-cli 里还有这个文章的更清晰的实现,但从学习角度来讲,gemini-cli 的实现,非常痛苦,核心 loop 和前端交互代码混杂在一起;为了保证稳定性的代码远多于实现功能的代码。

我发这个帖子就是为了干掉这些 为了“使用稳定/成本”才有的优化,专注于实现功能本身

不知道为什么 cc 效果好,我猜核心是一套评测系统,以此优化 prompt, 和写的代码代码应该关系不大(我猜的)。anthropic docs 花很长篇幅解释了评测系统。换个说法,即使知道 cc 牛逼的原因用处也不大,关键要知道可量化的评测。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1154790

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX