25 章实战 · 从零构建 · 工程级代码

Jim Agent
From Scratch

不调用框架,不依赖黑盒。用 Python 从第一行代码开始,亲手构建一个能读文件、写代码、跑命令的 AI 编程助手。

25
实战章节
110+
单元测试
6
核心工具
2
LLM Provider
100%
Mock 可测
这门课适合谁?

找到与你相似的学员

不同背景的学员,都能从这门课中获得价值

查看 README.md
了解完整用户画像
3 个典型学员
不同背景都能获益
学习路径
清晰的进阶路线
查看完整用户画像
课程模块

六大模块,从零到一

每个模块独立成体系,循序渐进掌握核心能力

核心模块

五大构建模块

从类型系统到高级能力,循序渐进

模块一 — 基础架构

类型系统、Provider 抽象、流式输出、消息历史管理、Tool Use 协议

dataclassProtocol StreamEventMessageHistory create_provider()

模块二 — 工具实现

文件读写、命令执行、代码搜索 — 赋予 Agent 双手

ReadFileToolWriteFileTool EditFileToolBashTool SearchFilesToolGrepContentTool

模块三 — Agent 核心

核心循环、并发执行、任务规划、错误恢复 — Agent 的心脏

AgentLoopConcurrentAgent Plan-Then-Executeretry_with_backoff ResilientAgent

模块四 — 生产增强

Prompt 设计、Token 管理、上下文压缩、CLI、安全防护、测试、最终集成

SystemPromptBuilderTokenBudget ContextCompressorInjectionDetector ProjectScannerCodingAgent

模块五 — 高级能力

AST 代码理解、智能编辑、Git 集成、自动修复、语义搜索 — Agent 的眼睛

CodeAnalyzerStructuredEditor GitToolFixLoop SemanticSearchTool
完整大纲

25 章课程目录

每章包含:教案 + 可运行 Demo + Mock 测试套件

模块一:基础架构
  • 01 LLM Provider 抽象 — types.py + Protocol + 工厂模式
  • 02 流式响应与 SSE — StreamEvent + 增量解析
  • 03 消息历史管理 — MessageHistory + 不可变保护
  • 04 Tool Use 协议 — JSON Schema + ToolExecutor
模块二:工具实现
  • 05 Read 文件读取 — 行号/偏移/二进制检测
  • 06 Write/Edit 文件 — 原子写入/精确替换
  • 07 Bash 命令执行 — 超时控制/安全黑名单
  • 08 Search 代码搜索 — glob + regex 双引擎
模块三:Agent 核心
  • 09 核心 Agent Loop — LLM → Tool → Result → Loop
  • 10 并发工具调用 — ThreadPoolExecutor 并行
  • 11 规划与任务分解 — Plan-Then-Execute
  • 12 错误处理与恢复 — 指数退避/自我修正
模块四:生产增强
  • 13 System Prompt 设计 — 分层/动态上下文
  • 14 Token 计数与预算 — tiktoken + 分配策略
  • 15 上下文压缩 — 截断/滑动窗口/LLM 摘要
  • 16 CLI 界面 — Rich + 流式 Markdown
  • 17 安全防护 — 注入检测/命令黑名单/路径安全
  • 18 项目感知 — 目录扫描/技术栈检测
  • 19 测试与调试 — MockFactory + E2E 测试
  • 20 最终集成 — 完整 CodingAgent
模块五:高级能力
  • 21 AST 代码解析 — 符号提取 + 依赖图
  • 22 智能文件编辑 — Diff 管理 + Undo/Redo
  • 23 Git 集成 — 版本控制 + 安全策略
  • 24 测试驱动修复 — Edit → Test → Fix 闭环
  • 25 语义代码搜索 — 向量检索 + Embedding
架构设计

工程化设计,不是玩具

贯穿始终的生产级设计模式

// 核心类型系统
dataclass  Message         // 统一消息 — system / user / assistant / tool
dataclass  ChatResponse    // LLM 响应 — content + tool_calls + usage
dataclass  StreamEvent     // 流式事件 — text / tool_call_start / done
dataclass  ToolCall        // 工具调用 — id + name + arguments
Protocol   LLMProvider     // Provider 接口 — chat() + chat_stream()

// Provider 实现(工厂模式)
create_provider() →
  ├  OpenAICompatibleProvider   // GPT / 兼容 API
  └  AnthropicProvider          // Claude

// 消息历史(不可变保护)
MessageHistory
  ├  add_user / add_assistant / add_tool_result
  ├  get_messages()  // ← 返回浅拷贝
  └  truncate / estimate_tokens

// Agent 核心
CodingAgent
  ├  AgentLoop:  LLM → Tool → Result → Loop
  ├  Tools:     read_file / write_file / edit_file / run_bash / search / grep
  ├  Stream:    流式输出 + 流式 tool_use 拼接
  ├  Safety:    注入检测 + 命令黑名单 + 路径安全
  └  Context:   Token 预算 + 上下文压缩 + 项目感知
学完收获

不是只会调 API

理解 AI Agent 的每一个零件

Protocol 与类型系统

用 dataclass + Protocol 构建可扩展的类型体系,理解结构化子类型

Agent Loop 核心循环

LLM 思考 → 调用工具 → 接收结果 → 继续思考,亲手实现这个心脏

流式输出与 SSE

增量解析 delta.content / delta.tool_calls,实现打字机效果

安全防护体系

注入检测、命令黑名单、路径安全 — 生产级安全策略

Mock 测试方法论

无需 API Key 即可运行完整测试套件,掌握 unittest.mock 技巧

Token 与上下文管理

Token 计数、预算分配、上下文压缩 — 让 Agent 在长对话中保持稳定

快速开始

5 分钟跑起来

1

安装依赖

pip install -r requirements.txt
2

运行任意章节(无需 API Key,Mock 测试可直接跑)

python demos/ch09/main.py    # 核心 Agent Loop
python demos/ch19/main.py    # 完整测试套件
3

启动完整 Agent(需要 API Key)

export OPENAI_API_KEY=your_key
python demos/ch20/main.py
Python 3.10+ OpenAI API Anthropic API dataclass Protocol tiktoken subprocess unittest.mock ThreadPoolExecutor Rich prompt_toolkit ast difflib numpy

准备好开始了吗?

25 章课程,130+ 测试,一个完整的 AI Agent,零框架依赖。

开始构建
← 熵减智算