大家好,我是小月,好久没写专栏系列教程了,距离上次写专栏的时候还是在上次。刚好最近离职了,有时间了,就趁着这个时间写一个专栏-从零开发一个Coding Agent。Agent也是当下最火的方向之一了,在自己学习的同时也分享给大家,同时也能和大家一起讨论相关的知识。

本专栏将带你从一个空目录开始,逐步开发一个真正可运行的 Coding Agent。我们不会只封装一次大模型 API 请求,而是完整实现模型接口、Agent Loop、工具调用、文件操作、命令执行、会话存储、上下文压缩、终端 UI、扩展系统和 RPC 等核心能力。
项目使用 TypeScript、Node.js、npm workspaces、Vitest 和 Biome,采用 npm workspaces 搭建 monorepo(单仓库多包)架构,将系统拆分为四个职责明确的软件包:
ai:定义统一的模型、消息、工具和流式事件契约,并适配不同的大模型 Provider。agent:实现 Agent Loop,负责模型调用、工具执行、状态转换、错误传播和取消。coding-agent:组合 CLI、文件工具、命令执行、会话管理和不同运行模式。tui:提供独立可复用的终端输入、组件和差量渲染能力。

教程采用渐进式开发方式:先使用 faux provider 构建不依赖 API Key 的确定性测试,再接入真实大模型 Provider;先完成最小的命令行闭环,再逐步增加文件工具、会话恢复和交互式终端界面。该项目暂不接入LangChain或者LangGraph等第三方库,我觉得学习第三方框架之前应该先属性Agent本身是如何开发的。
项目完成后,你不仅会得到一个可以读取和修改代码、执行命令并持续对话的 Coding Agent,还能够理解一条用户提示词如何依次经过 CLI、Agent Loop、Provider、工具系统、会话存储和终端界面。
如果你对Agent开发也感兴趣,欢迎点赞收藏+关注。专栏:从零开发一个Coding Agent - 东方小月的专栏 - 掘金
项目地址:qddidi/di-code: 基于TypeScript、Node.js 和大语言模型,支持流式对话、工具调用、会话持久化和终端交互的编程智能体。