深入拆解AI Coding Agent 的底层原理

news2026/3/24 9:59:38
本文基于Amazon Q Developer CLI和Claude Code两个开源项目从架构层面拆解AI Coding Agent的核心设计。详细分析了Agent Loop智能体循环、工具系统、四层安全模型、Context Window管理策略、MCP工具扩展协议等关键技术总结了七大设计原则。这些工具通过LLM大脑工具手脚的模式实现了给AI放权和不让AI搞破坏的平衡为开发者理解AI Coding工具的工作原理和安全边界提供了宝贵参考。Cursor、Claude Code、Amazon Q、Windsurf… 2026 年 AI Coding 已经卷成红海。但你有没有想过这些工具到底是怎么工作的本文基于Amazon Q Developer CLIRust 实现和Claude CodeTypeScript Python两个已开源项目的源码从架构层面拆解 AI Coding Agent 的核心设计。看完你会明白为什么这些工具能写代码、能改文件、能跑命令——以及它们是如何在「给 AI 放权」和「不让 AI 搞破坏」之间做平衡的。1 先搞清楚一件事AI Coding ≠ 聊天机器人很多人以为 AI Coding 工具就是 ChatGPT 套了个 IDE 的壳。大错特错。聊天机器人只能「说」AI Coding Agent 能「做」。区别在哪Tool Use工具调用。当你让 Claude Code 帮你改一个 bug 时背后发生的事情是这样的 你「帮我修一下 src/app.js 里的 bug」⬇️ LLM 思考我需要先看看这个文件 LLM 输出工具调用fs_read(src/app.js)⬇️⚙️ Agent 执行读取文件内容 → 返回给 LLM⬇️ LLM 思考找到 bug 了第 42 行有问题 LLM 输出工具调用fs_write(src/app.js, ...)⬇️⚙️ Agent 执行修改文件 → 返回结果⬇️ LLM「搞定了问题出在…」这个过程叫Agent Loop智能体循环是所有 AI Coding 工具最核心的设计模式。关键概念LLM 不直接操作你的电脑。它通过结构化的 JSON 请求告诉 Agent「我想做什么」Agent 验证权限后代为执行。这样所有操作都可审计、可拦截、可回滚。2 Agent Loop一个精巧的状态机Amazon Q CLI 在 Rust 里实现了一个显式的有限状态机来管理整个 Agent 循环▲ Agent Loop用户输入 → Prompt → LLM → 流式解析 → 工具执行 → 循环▲ 6 种状态的有限状态机Idle → ExecutingRequest → ExecutingHooks → WaitingForApproval → ExecutingTools → 循环这个状态机看起来简单但有几个精妙之处循环是自动的—— LLM 调用工具后结果会自动注入对话并再次调用 LLM直到 LLM 决定停下来。你跟它说「帮我重构这个模块」它可能会连续调用 20 多次工具才停下。⚡工具可以并行执行—— LLM 一次可以返回多个 tool_useAgent 用 Tokio 的 FuturesUnordered 并行执行然后打包所有结果一起发回。️每次工具调用都过权限检查—— Allow 直接执行Ask 弹出确认Deny 直接拒绝并告诉 LLM 原因。3 工具系统AI 的「手和脚」AI Coding Agent 的能力上限完全取决于它有哪些工具。来看 Amazon Q CLI 的内置工具集▲ LLM 一次返回多个 tool_use → TaskExecutor 并行执行 → 打包结果发回 LLM工具描述的艺术这里有一个很多人不知道的细节工具的 description 不是给人看的文档而是给 LLM 看的行为指令。它的质量直接决定 Agent 的表现。比如 ExecuteCmd 的描述里写着这段描述的目的是引导 LLM 优先使用 FsRead/FsWrite 等专用工具而不是什么都用 bash 命令——因为专用工具更安全、更可控。⚠️这是 Prompt Engineering 最被低估的领域工具描述的措辞差异可以让 Agent 的行为从「靠谱」变成「灾难」。一个写得好的 description 比调整模型温度有用 10 倍。__tool_use_purpose让 AI 「三思后行」Amazon Q CLI 有一个精妙的设计——每次工具调用都强制 LLM 填写一个 purpose 字段这个字段的作用① 用户能看到 AI 为什么做这个操作② 迫使 LLM「思考」后再行动减少无意义的调用③ 所有操作都有审计记录。4 安全模型四层纵深防御给 AI 能力越大安全就越重要。Amazon Q CLI 实现了四层安全架构▲ Amazon Q CLI 四层纵深防御Hook → 用户确认 → 路径权限 → 工具白名单其中路径权限是最有意思的一层所有路径都会先做canonicalize规范化处理防止用../这种路径穿越攻击绕过权限。Claude Code 这边则用 Hook 实现了声明式安全策略自动检测 9 种常见安全风险命令注入、XSS、eval() 滥用、SQL 注入、硬编码凭证等等。5 Context Window 管理最核心的稀缺资源这是 AI Coding 和传统软件最大的架构差异。▲ 五层 Prompt 架构System Prompt → Context Entries → Tool Specs → 对话历史 → 用户消息传统软件的瓶颈是 CPU、内存、IO。AI Coding 的瓶颈是Context Window—— LLM 一次能处理的 token 上限。超了就「失忆」之前的对话全忘了。Amazon Q CLI 用了四个策略来管理这个稀缺资源1自动压缩Compact—— 当上下文溢出时调用 LLM 对历史对话生成摘要。200K tokens 的历史压缩成 2K tokens 的摘要 最近 20 条消息。2消息截断—— 读取大文件时只保留前 10000 字符附带...truncated提示。3历史裁剪—— 保留最近的消息删除最早的。但要维护结构完整性不能破坏 tool_use/tool_result 配对。4资源文件限制—— 自动包含的资源文件不超过 10KB。 Amazon Q CLI 的终端提示符会实时显示 Context Window 使用率[default] 42% _→ 正常[default] 85% ! _→ 警告该 /compact 了6 MCP 协议工具扩展的事实标准两个项目都采用了MCPModel Context Protocol作为工具扩展协议。MCP 正在成为 AI Coding 领域的事实标准。简单说MCP 就是 AI Agent 调用外部工具的「USB 接口」▲ MCP 协议AI Agent 通过 JSON-RPC 与 MCP Server 通信McpManager 用 Actor 模型管理多个 ServerAmazon Q CLI 用 Actor 模型管理多个 MCP Server —— 每个 Server 是一个独立的 Actor通过消息通信支持独立的连接管理、错误恢复和工具发现。这意味着你可以用任何语言写一个 MCP Server定义自己的工具比如查数据库、调内部 API、操作 K8s 集群然后任何支持 MCP 的 AI Agent 都能用。7 插件体系Claude Code 的五维扩展Claude Code 定义了 5 种正交的扩展点每种解决不同的需求▲ 五种扩展点 Hook 事件生命周期最有意思的是feature-dev插件的 7 阶段工作流展示了 Agent 编排的最佳实践。注意 Phase 2 ——并行启动多个子 Agent去探索不同的代码路径这就是 Multi-Agent 协作在实际产品中的落地。8 两个项目的架构对比维度Amazon Q CLIClaude Code语言Rust系统级性能TypeScript Python架构单体 Agent Actor 并发核心引擎 插件生态并发Tokio async ActorNode.js 事件循环 子进程扩展MCP Hook 脚本5 维插件体系状态SQLite 持久化文件系统 会话状态优势性能、类型安全、编译时保证开发效率、生态丰富、灵活性一个走性能路线一个走生态路线。但核心范式完全一致LLM Agent Tool Use Streaming Safety MCP。▲ Rust vs TypeScript 两种技术路线的详细对比▲ 流式处理全链路LLM API → StreamParseState 增量解析 → 实时渲染/工具执行 → 终端 UI9 七大设计原则总结原则 1LLM 是大脑工具是手脚LLM 不直接操作系统通过结构化的 Tool Use 间接操作。所有操作可审计、可拦截、可回滚。原则 2流式处理优先不等完整响应增量解析 实时渲染。用户体验接近实时对话。原则 3安全是架构级关注点权限不是事后补丁而是从工具定义到用户确认的完整链路。原则 4Context Window 是稀缺资源所有设计都围绕「如何在有限窗口内塞入最有价值的信息」。原则 5工具描述即 Prompt工具的 description 直接决定 Agent 选择和使用工具的方式。原则 6MCP 标准化工具生态统一的工具接口协议支持跨 Agent 复用。原则 7状态机驱动对话管理不是简单的一问一答而是带有明确状态转换的有限状态机。写在最后AI Coding 看起来像魔法但拆开看本质就是一个循环 一堆工具 一套权限。理解了这些底层原理你会发现 为什么有时候 Agent 会「失忆」—— Context Window 满了 为什么它有时候不用最好的方法 —— 工具描述引导不够好 为什么不同工具的「手感」差很多 —— 状态机和错误处理的精细度不同 为什么 MCP 这么重要 —— 它是工具生态的 USB 接口如果你正在做 AI 相关的开发或者在考虑自己搭 Agent 系统这两个开源项目是最好的学习材料。代码不会说谎。 参考项目• Amazon Q Developer CLIgithub.com/aws/amazon-q-developer-cli• Claude Codegithub.com/anthropics/claude-code如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…学习是一个过程只要学习就会有挑战。天道酬勤你越努力就会成为越优秀的自己。如果你能在15天内完成所有的任务那你堪称天才。然而如果你能完成 60-70% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2443520.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;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…