decodingai-magazine/building-a-coding-agent-from-scratch-course
Learn harness engineering by building Claude Code from scratch. Free, open-source course: 8 articles, 6 videos, 1 codebase.
这个项目是什么
一个开源、免费运行的课程(8篇文章、6个视频、Apache-2.0许可证),带你从零开始构建一个编码代理——一个能够读取、编辑和运行项目中代码的AI。结果是decode,一个你自己构建的可工作的编码助手。该课程由Decoding AI出品,并得到Modal、Opik和Kitaru的技术支持。
核心思想:“harness”才是关键
该项目提出了一个强有力的、有证据支持的论点:AI模型本身只有大约20行代码——一个简单的循环,模型读取提示,决定调用哪个工具(如读取文件、运行命令),然后重复。困难且有趣的工作是围绕这个循环的一切:工具、权限检查、内存管理、沙箱和错误处理。这个外围系统被称为harness,README声称仅改进harness就将一个编码代理在基准测试中从约第30名提升到前5名。因此,课程教你如何工程化这个harness。
你构建什么
一个完整的编码代理,名为decode,具有:
- 两个界面: 一个交互式终端UI和一个远程无服务器模式(部署在Modal上),可以并行运行多个代理,通过手动、webhook或计划触发。
- 六个支持模块: LLM提供商、内存、技能(可重用的指令集)、沙箱、权限,以及一个用于快速编辑器式反馈的LSP服务器。
- 上下文工程: 当对话达到模型上下文窗口的约80%时自动总结,加上内存和技能加载。
- 子代理: 专门的辅助代理(用于探索代码、规划或审查),每个都获得一个专注的小上下文窗口,而不是一个臃肿的窗口。
- 可观测性与评估: 每个会话都被记录并可重放。代码集成了Opik用于追踪和Kitaru用于重放运行,并包含一个评估harness用于基准测试和捕获回归。
技术栈
- 语言: Python
- 代理框架: Pydantic AI
- LLM: 三个可替换的提供商——Modal(通过SGLang托管你自己的开放权重模型)、OpenRouter(开放权重作为服务)或Gemini(专有)
- 沙箱: 本地Docker或远程Modal沙箱——代理的命令永远不会直接在你的机器上运行
- 部署: Modal无服务器函数
- 记录/评估: Kitaru(会话、重放)、Opik(追踪)
其他一切都是有意识地从头构建的——课程避免使用抽象掉困难部分的框架。
8节课(每节有文章,大部分有视频)
| # | 主题 | 你学到的 |
|---|---|---|
| 1 | 系统设计 | 勾勒整个harness:无头核心、六个模块、两种界面模式和一个评估层。 |
| 2 | 极简代理循环 | 你的代理在一个可控制的TUI中循环使用9个工具和3个可替换的LLM提供商。 |
| 3 | 沙箱 | 工具在Docker或Modal沙箱内运行——绝不在你的主机上。 |
| 4 | 上下文工程 | 加载内存、调用技能、读取LSP诊断,并在窗口的80%时自动压缩。 |
| 5 | 子代理 | 并行展开Explore子代理;在构建、规划和代码审查者角色之间切换。 |
| 6 | 部署 | 在Modal上远程运行无头harness,通过CLI、webhook或cron触发代理。 |
| 7 | 评估 | 为你的代理构建基准和回归测试。 |
| 8 | 回归增长 | 将真实的失败代理轨迹转化为新的回归测试,并使用Kitaru重放来比较运行。 |
立即尝试
完成的代理附带演示技能。你可以克隆、安装(免费),并在大约5分钟内看到decode构建一个可玩的贪吃蛇游戏、将网页文章抓取到交互式知识图谱中,或将GitHub数据获取到仪表板——全部来自一个提示。
git clone https://github.com/decodingai-magazine/building-a-coding-agent-from-scratch-course.git
cd building-a-coding-agent-from-scratch-course
make install
cp .env.example .env # 设置你的LLM API密钥
uv run decode
然后输入/demo-并选择一个演示。
适合谁
README发出一个有趣的警告:从零构建编码harness可以让你在构建任何其他AI产品——金融、医疗或电子商务——时“危险地擅长”。课程强调的不仅是代码做什么,还有为什么做出每个设计决策——例如,为什么压缩在约80%而不是在极限时触发,或者为什么子代理是上下文工程的问题。
相关
- 项目
- 项目
- 项目
- 项目