# Coding-Agent **Repository Path**: belikeyou/coding-agent ## Basic Information - **Project Name**: Coding-Agent - **Description**: 不用任何 Agent 框架,用 ~2000 行 Python 从零实现一个能读代码、改文件、跑命令的 Coding Agent —— 亲手造一遍,你才真正理解 Claude Code / OpenCode 的工作原理们。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-26 - **Last Updated**: 2026-07-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 从零写一个 Coding Agent(中文教程) > 不用任何 Agent 框架,用 ~2000 行 Python 从零实现一个能读代码、改文件、跑命令的 Coding Agent —— 亲手造一遍,你才真正理解 Claude Code / OpenCode 们的工作原理。 ## 为什么要做这个教程 2026 年,Coding Agent 已经成为开发者的日常工具,但大多数人对它的理解停留在"魔法"层面。事实上,一个可用的 Coding Agent 的核心只有**一个循环**: ```mermaid flowchart LR A[用户输入] --> B[调用 LLM] B --> C{模型想用工具吗?} C -- 是 --> D[执行工具
读文件 / 改代码 / 跑命令] D -- 结果喂回 --> B C -- 否 --> E[输出最终回答] ``` 其余的一切——上下文管理、权限控制、子 Agent、MCP——都是围绕这个循环的工程化。本教程带你逐章把它们全部亲手实现一遍。 **本教程的原则:** - **零框架**:不用 LangChain / LangGraph,直接调用模型 API,让你看到每一个字节 - **每章可运行**:每一章都是一个能独立运行的完整版本,不是代码片段 - **对标 2026 年的真实架构**:MCP、并行子 Agent、上下文压缩、权限沙箱——业界正在用的设计,而不是玩具 - **中文优先**:所有讲解、注释、术语对照都用中文写作 ## 开始之前 第一次接触?先读 **[准备工作](getting-started.md)**:Python 环境、API key 获取、跑完全书大概花多少钱。遇到问题先查 **[FAQ](faq.md)**,术语不熟悉查 **[术语表](glossary.md)**。 ## 目录 ### 第一部分 · 核心循环(一个周末就能跑起来) | 章节 | 主题 | 你将实现 | |---|---|---| | [01](01-minimal-agent/) | 最小 Agent | 一个 ~150 行、会用工具的对话循环 | | [02](02-file-tools/) | 文件工具三件套 | read / write / edit,以及为什么 edit 要用字符串替换 | | [03](03-bash-tool/) | 执行命令 | bash 工具、超时控制、安全边界 | | [04](04-search-tools/) | 搜索与导航 | glob / grep,让 agent 学会"看懂"一个陌生代码库 | ### 第二部分 · 从玩具到可用 | 章节 | 主题 | 你将实现 | |---|---|---| | [05](05-system-prompt/) | 系统提示词工程 | agent 的行为规范:何时提问、何时行动、如何汇报 | | [06](06-streaming/) | 流式输出 | 打字机效果、工具调用的实时展示 | | [07](07-context/) | 上下文管理 | token 预算、历史裁剪、自动压缩(compaction) | | [08](08-permissions/) | 权限与确认 | 危险操作的审批机制:为什么 `rm -rf` 必须先问你 | ### 第三部分 · 进阶架构 | 章节 | 主题 | 你将实现 | |---|---|---| | [09](09-subagents/) | 子 Agent | 任务分解、并行执行、结果汇总 | | [10](10-mcp/) | MCP | 接入 Model Context Protocol,连上外部工具生态 | | [11](11-memory/) | 记忆 | 跨会话的持久化:agent 如何"记住"你的项目 | | [12](12-eval/) | 评测 | 如何科学地知道你的 agent 变强了 | ## 学完之后,你的 agent 长这样 ```mermaid flowchart TB subgraph 交互层 U[终端交互 / 流式输出 06] --> P[审批层 08] end subgraph 内核 P --> L[Agent 循环 01
系统提示词 05 + 上下文压缩 07] L --> T[本地工具 02-04
read / write / edit / bash / glob / grep] L --> S[子 Agent 09
只读并行调查] L --> M[MCP 工具 10
外部工具生态] end subgraph 持久层 L <--> Mem[记忆文件 11
.agent-memory/] end E[评测 harness 12] -.考核.-> L ``` ## 快速开始 ```bash git clone https://github.com/unlikeyou-dev/code.git cd code/01-minimal-agent pip install -r requirements.txt export ANTHROPIC_API_KEY=sk-ant-... # 在 https://platform.claude.com 获取 python agent.py ``` 然后试着对它说: ``` 帮我看看当前目录下有哪些文件,然后总结一下 agent.py 是做什么的 ``` 看着它自己决定调用 `list_files`、再调用 `read_file`、最后给出总结——这就是 Agent 的全部秘密。 ## 适合谁读 - 想搞懂 Claude Code / OpenCode / Cursor Agent 底层原理的开发者 - 想在自己产品里嵌入 agent 能力、但不想背上框架黑盒的工程师 - 有 Python 基础、调用过任意一家 LLM API 即可,不需要机器学习背景 ## 学习建议 - **动手 > 阅读**:每章代码不到 300 行,强烈建议对照 README 自己敲一遍,而不是直接运行 - **做每章的实验**:多数章节末尾有对比实验(比如删掉某条提示词看行为变化),它们比正文更能建立直觉 - **顺序阅读第一部分,之后可跳读**:05-12 章相对独立,按兴趣选择即可,但都依赖第一部分的循环骨架 ## 贡献 欢迎提 issue / PR:指出错误、补充章节实验、分享你的改造。参见 [贡献指南](CONTRIBUTING.md)。 ## 相关项目 站在巨人的肩膀上,也推荐这些优秀的同类资源(更多见[延伸阅读](resources.md)): - [How to Build a Coding Agent](https://github.com/ghuntley/how-to-build-a-coding-agent)(英文 workshop) - [hello-agents](https://github.com/datawhalechina/hello-agents)(Datawhale 的通用 Agent 教程) 本教程的差异点:专注 **Coding Agent** 这一垂直场景、每章一个可独立运行的完整版本、覆盖 2026 年的现代架构(MCP / 子 Agent / 上下文压缩 / 权限沙箱)。 ## License 代码采用 [MIT](LICENSE) 协议;文字内容采用 [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh) 协议。