从零写一个 Agent: 15 章开源教程,每章都能跑

qshine 2026-10-29 14:25 1

大家好,分享一个自己做了一段时间的开源项目 Mino:用 Go 从零写一个终端里的 coding agent ,同时整理成一份分章教程。



  • GitHub: https://github.com/qshine/mino

  • 中文教程: https://qshine.github.io/mino/zh/


为什么做这个


用 Claude Code 、Codex 这类工具的时候,我一直好奇它们内部到底在做什么:模型每次收到的是什么?工具调用跑到一半进程被杀了怎么办?上下文满了怎么压缩?权限和沙箱怎么做?


光看文章不太过瘾,所以决定自己从零写一个,不用任何 agent 框架,只用官方 OpenAI Go SDK 调 Responses API 。边写边整理成教程,给和我一样想搞懂原理的人。


教程怎么组织


一章对应一个可运行的版本( git tag chapter-01 … chapter-15)。每章从一段能观察到的交互讲起,说明模型收到了什么、程序怎么处理返回,最后用一个小实验验证效果和边界。中英双语。


目前 15 章已经全部发布:



  1. 流式终端问答

  2. JSONL 对话历史与重启恢复

  3. Agent 循环 + 逐次批准的 Bash

  4. 中断工具调用的如实恢复(不重复执行,结果未知要用户确认)

  5. 多会话管理

  6. 上下文压缩(手动 /compact + 自动预算检查)

  7. 项目 Skills

  8. 限定在项目目录内的文件读写工具

  9. MCP ( HTTP / stdio )

  10. 安全防护:统一工具策略、受保护路径、三种权限模式

  11. Evals:声明式用例 + 确定性评分

  12. macOS Seatbelt 沙箱(限制写入、断网)

  13. 用户记忆

  14. 子 Agent (并行委派任务)

  15. 自定义子 Agent 角色


适合谁



  • 会一点 Go (变量、函数、错误处理就够了),想搞懂 agent 原理的人

  • 之前没用过模型 API 也可以,从第 01 章开始就行

  • base_url 可以配置,只要兼容 OpenAI Responses API 的服务都能用


试用


目前只支持 macOS 13+( Apple Silicon / Intel ),一行安装:


mino_installer="$(curl --proto '=https' --tlsv1.2 -fsSL https://raw.githubusercontent.com/qshine/mino/main/install.sh)" && bash -c "$mino_installer" && export PATH="$HOME/.mino/bin:$PATH"

最后


代码刻意写得比较克制,以可读为主,没追求功能大全。哪里讲得不清楚、写错了或者缺了什么,欢迎在这里或 GitHub 上提,谢谢!

最新回复 (6)
  • yueyueyan 10-29 15:25
    1楼
    让我来验证下能不能教会零基础的哈哈
  • wdmx007 10-29 17:04
    2楼
    谢谢分享,学习一下
  • iorilu 10-29 17:46
    3楼
    不错, 有空学下

    我想问下, 你这个项目完全手工编的吗
  • qshine 楼主 10-29 17:53
    4楼
    @iorilu 谢谢, 当然不是, 但是章节和技术细节我是 review 过的
  • simo 10-29 19:52
    5楼
    想系统看一遍,坚持了几页就不想看了,个人感觉太啰嗦,至少可以压缩 1/2 。
  • hueralin 10-29 23:02
    6楼
    不支持一个目录下好几个仓库吗,现在 AI 写代码,好多个仓库在一个目录下。
* 帖子来源V2EX
返回