从零构建 Coding Agent:系列总目录与学习路线
从零构建 Coding Agent:系列总目录与学习路线 本文记录了我从零理解并实现 Coding Agent 的完整过程。 GitHub 仓库:XVSHIFU/ai-agent-learning 一开始,我想弄清楚的只是一个看似简单的问题:普通聊天模型只能“一问一答”,为什么 Claude Code、Codex 这类 Coding Agent 却能自己读文件、修改代码、执行命令,并根据结果继续工作? ...
从零构建 Coding Agent:系列总目录与学习路线 本文记录了我从零理解并实现 Coding Agent 的完整过程。 GitHub 仓库:XVSHIFU/ai-agent-learning 一开始,我想弄清楚的只是一个看似简单的问题:普通聊天模型只能“一问一答”,为什么 Claude Code、Codex 这类 Coding Agent 却能自己读文件、修改代码、执行命令,并根据结果继续工作? ...
Mini Claude Code 实战:权限、Skills、可观测性与多 Agent 在 06 的完整 Agent 基线上继续打磨,重点完成声明式权限、Skills 懒加载和本地可观测性。项目保持 JavaScript ESM、零第三方依赖,并兼容 OpenAI 风格的 chat/completions 接口。 ...
Claude Code v2.1.88 源码解析:Agent、工具、权限与上下文 这篇继续对照我们在 06-多Agent与工程化/src/ 里手搓的 mini Claude Code。 这次研究的是 参考源码/claude-code-source-code-main/:由 Claude Code v2.1.88 意外公开的 source map 还原,并由社区补充研究文档和构建脚本的源码副本。 ...
Coding Agent 架构对照:从教学原型到真实工程 把手搓的 mini Claude Code 和生产级实现对照,看清差距与取舍。 对照对象: 社区版 claude-code-best/claude-code(已克隆,3549 文件,src/ 约 6.9 万行 TS) pi(badlogic/pi-mono)调研档案 p01-p06(减法哲学的另一条路) ch13 架构对比表 规模对比:3000 行 vs 6.9 万行 维度 mini Claude Code claude-code-best 代码量 src/ 约 2500 行(14 个 .mjs) src/ 约 6.9 万行 TS + 内置工具包 Agent Loop Agent.chat() 单循环 QueryEngine.ts(1365) + query.ts(2057) 双层 工具 12 个,静态数组 + switch Tool.ts(803) 泛型接口 + 66+ 工具 Skills 2 源 + 预加载(约 100 行) loadSkillsDir.ts(1079) 懒加载 + token 预算 权限 6 模式 + 16 正则 + 确认 7 层纵深 + AST + 8 规则源 + 拒绝追踪 注意:这 6 万行里大部分是"无聊"的工程——各环境兼容性、网络不可靠、用户输入多样性、企业级审计。从原型到产品,80% 的距离在这里(ch13 结语)。 ...
从零构建 Coding Agent(下):Plan Mode、多 Agent 与工程化测试 单 Agent 收尾 + 工程化收口:Plan Mode、子 Agent、MCP、可测试性。 实现:src/(JS + OpenAI 兼容,DeepSeek 可跑)。 ...
从零构建 Coding Agent(中):安全、记忆与 Skills 在 04 的 ch1-4 核心骨架上,补上流式、权限、上下文压缩、记忆、Skills——得到 mini Claude Code v1。 实现:src/(JS + OpenAI 兼容,DeepSeek 可跑)。协议映射见 04 笔记。 ...
从零构建 Coding Agent(上):核心骨架与会话系统 把前 3 单元学的机制,拼成一个真实可跑的 Coding Agent。 主线:claude-code-from-scratch 教程 ch1-4(本地已克隆)。 本笔记对应实现:src/ 文件夹(JS + OpenAI 兼容格式,DeepSeek 可跑)。 ...
AI Agent 工具系统进阶:输出预算、渐进式披露与 MCP 目标:吃透工具系统边界(输出预算 / 渐进披露),写出第一个能被外部调用的自定义 MCP Server。 工具系统(s02) 加一个工具,要同时改两个地方——给模型看的 TOOLS 声明数组,和真正干活的 if-else 执行分支。工具一多,两处早晚对不上:声明了工具却忘了写分支,模型兴冲冲调用,只得到一句"未知工具"。 ...
AI Agent 上下文工程:流式中断、压缩、缓存与持久化 流式输出与中断 流式输出:像水流一样输出文字内容,逐字打印,避免用户在猜测模型是卡住了还是在干活,流式输出就刚好可以解决这个问题,同时,用户在监控输出时,也能随时中断,避免 agent 在错误的方向一去不复返。 ...
从零理解 AI Agent:主循环、工具系统与执行预算 Agent = LLM + 上下文 + 工具 Agent 主循环 Chatbot:一问一答 flowchart LR U1["用户发消息"] --> M1["模型回答"] M1 --> E1["结束 等下一问"] Agent:模型决定是否要执行工具,负责执行工具并喂回结果 flowchart LR U2["用户任务<br/>messages+"] --> M2["chat()<br/>模型决定"] M2 --> T["执行工具<br/>run_shell"] T --> R["tool 结果<br/>写回历史"] R -->|有 tool_calls:回到模型继续| M2 M2 -->|无工具调用:收口| E2["结束"] 实现: 定义一个会调用工具的 AI Agent: ...