从对话到执行:一文读懂AI Coding Agent的底层原理

news2026/4/3 14:03:17
为什么 Claude Code 等 AI Agent 能自己写代码、改 bug、提交 PR为什么它和 ChatGPT 完全不一样这篇文章用最简单的语言拆解 AI Agent 的底层工作原理。一句话说清楚AI Coding Agent 和普通 AI 有什么不同普通 AI如 ChatGPT 对话一问一答你输入 → 它输出 → 结束AI Coding Agent如 Claude Code自主循环你给目标 → 它自己规划、执行、观察结果、调整、再执行……直到完成直观对比看看区别有多大场景给登录模块加邮件验证 普通 AIChatGPT的工作方式你帮我写一个登录函数AI输出一段代码文本你复制粘贴到编辑器你有个 bug再帮我改AI输出修改后的文本你再复制粘贴……你是执行者AI 只是建议者 AI Coding AgentClaude Code的工作方式你给登录模块加邮件验证Claude ✓ 读取现有代码 ✓ 理解架构 ✓ 制定计划 ✓ 写入文件 ✓ 运行测试 ✓ 发现错误 → 自己修复 ✓ 测试通过 → 提交 PRClaude 是执行者你是审批者能力对比表差距在哪里能力维度普通 AI 对话AI Coding Agent 读取文件需要你粘贴给它自己读取✏️ 修改代码输出文本你手动改直接写入文件⚙️ 运行命令告诉你要跑什么自己执行 处理错误你复制错误信息给它看到输出自己调整 多步任务每步都要你介入自主完成多步骤⏱️ 持续工作一轮结束就停可以跑几小时核心差异Agent 有感知 → 思考 → 行动的循环能力普通 AI 只有思考 → 输出。Agent 的核心秘密循环机制The Agent Loop这是 Agent 能自主工作的关键。理解这个循环就理解了 Claude Code 为什么这么强大。 完整循环的 6 个步骤步骤 ① 接收目标 完整上下文Claude 接收的不只是你的指令还包括• 你的指令• CLAUDE.md 项目规范• 之前读取的所有文件内容• 上一轮命令的输出• 历史对话记录这个输入包可能长达数万个 Token。示例你说给登录模块加邮件验证Claude 实际接收到- 你的指令- CLAUDE.md 中的项目规范- 之前读取的 auth/login.ts 文件内容- 上次运行测试的输出- ...步骤 ② 思考 规划Claude 分析整个上下文决定下一步做什么。内部推理过程需要先了解现有的 login 函数结构→ 应该先读取 auth/login.ts→ 然后再决定怎么修改在 Plan Mode 下这个推理过程会展示给你审批普通模式下 Claude 直接进入下一步。步骤 ③ 生成工具调用请求关键点Claude 不是直接执行操作而是生成一个请求。Claude 生成的请求{ tool: Read, input: { path: src/auth/login.ts }}这个请求会被发送给 Claude Code 进程。步骤 ④ 宿主进程执行权限检查在这里Claude Code 进程收到请求后的处理流程1. 触发 PreToolUse Hook如果配置了2. 检查 settings.json 权限规则 - deny直接拒绝 - ask询问用户 - allow通过3. 执行真正的操作读文件、写文件、运行命令等4. 触发 PostToolUse Hook如果配置了5. 返回结果给 Claude示例权限检查Read(src/auth/login.ts) → 匹配 allow 规则 → 执行执行结果读取文件内容返回给 Claude步骤 ⑤ 观察结果更新上下文工具执行的结果文件内容、命令输出、错误信息被追加到上下文窗口。Claude 在下一轮会看到这个结果就像眼睛看到了执行的效果。追加到上下文[Tool result]:export async function login(email, password) { // TODO: add validation const user await db.find(email) ...}步骤 ⑥ 决定继续 or 结束Claude 判断• ✅ 任务完成了吗• 还需要什么信息• 下一步该做什么如果任务未完成回到步骤 ②开始新一轮循环。Claude 的判断已读取文件看到了 TODO 注释→ 需要编写邮件验证逻辑→ 继续循环下一步Edit 文件 上下文是循环的记忆• 每次循环的结果都被追加到上下文窗口• Claude 在下一轮看到完整历史• 这就是为什么 Claude 能记得几步之前做了什么但这也是最大的局限• 上下文窗口有限如 200k Token• 太长的任务需要压缩/compact或拆分为子任务• 上下文用完后记忆就断了这正是 CLAUDE.md、session logs 存在的原因——提供不依赖上下文的持久记忆。工具系统Agent 的手语言模型本身只能生成文本。工具Tools让它能真正影响世界。没有工具Claude Code 和普通对话 AI 没有区别。️ 核心工具清单工具功能Read读取文件Write写入文件Edit精确编辑替换指定内容Bash执行命令Glob查找文件支持通配符Grep搜索内容WebFetch获取网页WebSearch搜索引擎TodoWrite任务管理MCP 工具外部服务扩展 工具调用的技术实现三个关键点1️⃣Claude 生成请求不直接执行• Claude 生成结构化的 JSON 请求• 描述它想做什么2️⃣Claude Code 进程真正执行• 接收请求• 执行操作• 返回结果3️⃣Claude 没有文件系统权限• 通过委托宿主执行来影响世界• 所有操作都经过权限检查 形象类比Claude 大脑思考和决策Claude Code 进程 手臂实际执行工具调用 神经信号大脑告诉手臂做什么工具结果 感觉反馈手臂告诉大脑发生了什么 工具调用实战示例看看一个完整的循环是什么样的// ① Claude 决定读取文件{ tool: Read, input: { path: src/auth/login.ts } }// ② Claude Code 执行返回文件内容{ result: export function login(email, password) { ... } }// ③ Claude 看到内容后决定修改{ tool: Edit, input: { path: src/auth/login.ts, old_string: // TODO: add validation, new_string: if (!isValidEmail(email)) throw new Error(#x27;...#x27;)}}// ④ Claude Code 执行编辑{ result: File updated successfully }// ⑤ Claude 决定跑测试{ tool: Bash, input: { command: npm test auth }}这个循环每秒可能发生数次构成了 Claude Code 自主工作的底层机制。Claude Code 的五层架构理解这五层就理解了整个系统是如何协作的。 第 1 层你用户角色目标提供者 最终审批人你不是执行者是决策者。提供目标、审批计划、处理边界情况。接口终端 / VS Code / 浏览器 / 手机Remote Control/ 语音/voice⚙️ 第 2 层Claude Code 进程编排层角色在 Claude 和真实环境之间做翻译和守门核心职责• 管理 Agent 循环• 权限检查• Hooks 触发• 会话状态管理• 上下文压缩配置文件settings.json控制这一层的行为边界 第 3 层Claude 模型大脑层角色理解意图、规划步骤、生成工具调用输入• System Prompt• CLAUDE.md 内容• 对话历史• 工具结果输出下一步行动工具调用请求配置文件CLAUDE.md注入到这一层的 System Prompt 第 4 层工具层执行层角色把 Claude 的想法转化为真实世界的操作工具集Read / Write / Edit / Bash / WebFetch / MCP……扩展性MCP 服务器让工具无限延伸数据库、Slack、浏览器…… 第 5 层真实环境被操作的世界包含• 文件系统• Git 仓库• 终端进程• 外部 API• 浏览器• 数据库这是 Agent 最终影响的对象。 数据流向一次完整任务的旅程从你的指令到代码落地数据是这样流动的你的指令 ↓Claude Code 进程接收 ↓读取 settings.json 权限配置 ↓注入 CLAUDE.md 内容到 System Prompt ↓发送给 Claude 模型含完整上下文 ↓Claude 生成工具调用请求 ↓Claude Code 检查权限deny/ask/allow ↓触发 PreToolUse Hook如有 ↓执行工具读写文件、跑命令 ↓触发 PostToolUse Hook如有 ↓工具结果追加到上下文 ↓返回给 Claude 模型下一轮循环 ↓Claude 决定继续执行 or 任务完成 ↓你看到最终结果 为什么这样设计Q1: 为什么是循环而不是一次性生成① 现实任务有不确定性• 你不可能在开始时就知道所有需要的信息• 读了文件才知道架构• 跑了测试才知道有没有 bug• 循环允许 Claude 边做边学② 错误是不可避免的• 一次性生成的代码必然有错• 循环让 Claude 能看到错误 → 理解原因 → 自我修正• 无需你介入③ Token 限制• 一次性生成整个功能会超出输出 Token 限制• 循环允许分步处理每次只生成一小部分④ 人类介入点• 循环在每个工具调用前暂停ask 模式• 给你审批或纠正的机会• 而不是等到最后才发现整个方向错了Q2: 为什么工具调用要经过宿主进程① 安全隔离• Claude 模型运行在 Anthropic 的服务器上• 不能直接访问你的文件系统• 通过宿主进程可以实施权限检查settings.json② 可审计性• 所有工具调用经过宿主进程• 可以记录日志• 可以触发 Hooks• 可以通知用户③ 可扩展性• 新工具MCP 服务器只需向宿主进程注册• Claude 模型无需更新就能使用新能力⚠️ Agent 的核心局限 应对策略每个配置工具都在针对 Agent 的某个固有局限提供解决方案。局限根本原因应对策略 会忘记早期指令上下文窗口稀释效应CLAUDE.md持久注入 /compact压缩 方向跑偏没有规划就执行Plan Mode 先规划后执行 重复犯同类错误没有跨会话记忆lessons.md记录 CLAUDE.md累积规则⚡ 危险操作无法撤销工具有副作用settings.jsondeny 规则 Hooks 拦截 并发任务互相干扰共享文件系统git worktree给每个 Agent 独立工作区这就是 Claude Code 整个配置体系存在的原因。 总结AI Coding Agent 不是更强的 ChatGPT而是一种全新的工作模式。核心区别普通 AI你问 → 它答 → 你执行AI Coding Agent你定目标 → 它自己规划、执行、修正、完成三大核心机制这种转变的核心是 循环机制- 感知 → 思考 → 行动 → 感知 → ……️ 工具系统- 让 AI 能真正影响世界 上下文管理- 让 AI 能记住之前做了什么最后一句话当你看到 Claude Code 在终端里不断输出、读文件、改代码、跑测试……那不是魔法而是一个精心设计的循环系统在运转感知工具结果→ 思考Claude 推理→ 行动工具调用→ 感知新的结果→ ……这就是 AI Coding Agent 的本质。理解了这些你就理解了为什么 Claude Code 能自主工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2467162.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…