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

claude code 的核心逻辑

  •  
  •   wangshuo6 · 9 天前 · 4029 次点击

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

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

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

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

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

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

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

    不知道为什么 cc 效果好,我猜核心是一套评测系统,以此优化 prompt, 和写的代码代码应该关系不大(我猜的)。anthropic docs 花很长篇幅解释了评测系统。换个说法,即使知道 cc 牛逼的原因用处也不大,关键要知道可量化的评测。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5913 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 06:17 · PVG 14:17 · LAX 23:17 · JFK 02:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.