claude code 的核心逻辑 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
wangshuo6
V2EX    程序员

claude code 的核心逻辑

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

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

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

    下面讲一下关键逻辑

    关键 1: loop + tool use

    core loop

    关键 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

    28 条回复    2025-08-26 19:38:27 +08:00
    qcgzxw
        1
    qcgzxw  
       45 天前
    学习
    fushall
        2
    fushall  
       45 天前
    太牛了楼主,学习了
    bbao
        3
    bbao  
       45 天前   23
    弱弱的问,楼上两位学习的同学,学习到了啥?
    Greenm
        4
    Greenm  
       45 天前
    你这个跟 claude code 有什么关系?
    Gress
        5
    Gress  
       45 天前
    你这个跟 claude code 有什么关系?
    NoobNoob030
        6
    NoobNoob030  
       45 天前   3
    核聚变的核心原理就是烧开水
    Vegetable
        7
    Vegetable  
       45 天前   6
    你描述这个,看起来不就是 MCP 的入门吗?
    你为什么要把 commit 乱写的仓库发出来啊,这和在大街上拉屎有什么区别
    Scarb
        8
    Scarb  
       45 天前
    你这个跟 claude code 有什么关系?
    stormtrooperx5
        9
    stormtrooperx5  
       45 天前
    啊?
    yulon
        10
    yulon  
       45 天前   2
    最简单的 tool use 也能叫 agent 了啊?没有模型路由,上下文没有精简压缩处理,没有长期记忆没有小笔记,tool 也只能被模型主动 call ,call 的结果没有对不同模型做转换,没有预处理和后处理过滤器等等等等……
    huluhulu
        11
    huluhulu  
       45 天前   1
    然后呢?这就是最初级的一个 agent ,怎么构建 spec/怎么 plan/怎么按步完成 task/怎么 memory/怎么索引代码?你当现在的 AI IDE 更新了那么久,就一无是处?
    hejiwen
        12
    hejiwen  
       45 天前
    你这个跟 claude code 有什么关系?
    icanfork
        13
    icanfork  
       45 天前
    所以 1L 和 2L ,是 OP 的小号?
    billzhuang
        14
    billzhuang  
       45 天前
    keep calm
    kneo
        15
    kneo  
       45 天前 via Android
    我并不想打击初学者学习和分享的心情。

    但是我有点怀疑你这四天是和 claude code 一起度过的。

    我也尊重任何使用 claude code 进行真正生产力创造的行为。

    但是是看你最后还发个 x 链接,就觉得有点不对味儿了。
    leslieo2
        16
    leslieo2  
       45 天前
    commit message 全是 1. 写的什么玩意
    fushall
        17
    fushall  
       45 天前
    @yulon 谢谢学到了
    songunity
        18
    songunity  
       45 天前
    commit message 都没好好写,你发出来干嘛?
    dyncan
        19
    dyncan  
       45 天前
    Not really interested, all the commit messages are just ‘1’, I’d feel a bit embarrassed to even share them.
    fudanglp
        20
    fudanglp  
       45 天前   1
    如说
    wangshuo6
        21
    wangshuo6  
    OP
       45 天前
    1. 他很简单 2. 他能工作;
    pluto666
        22
    pluto666  
       45 天前   1
    好抽象
    zsh2401
        23
    zsh2401  
       44 天前 via iPhone
    ReAct 已经是 2023 年的东西了,现在没什么学习意义
    paouke
        24
    paouke  
       44 天前   1
    太抽象了
    flyqie
        25
    flyqie  
       44 天前 via Android
    @wangshuo6 #21

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

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

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

    不知道为什么 cc 效果好,我猜核心是一套评测系统,以此优化 prompt, 和写的代码代码应该关系不大(我猜的)。anthropic docs 花很长篇幅解释了评测系统。换个说法,即使知道 cc 牛逼的原因用处也不大,关键要知道可量化的评测。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     947 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 18:49 PVG 02:49 LAX 11:49 JFK 14:49
    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