7-e1even
learn-agent
JavaScript✨ New

从零写一个能活下来的 AI Agent:机制从真实产品 Reina 移植 | Build a coding agent from scratch — how Claude Code / Codex / Cursor actually work under the hood. 15 runnable lessons, zero deps.

Last updated Jul 8, 2026
99
Stars
8
Forks
0
Issues
+30
Stars/day
Attention Score
67
Language breakdown
JavaScript 100.0%
Files click to expand
README

learn-agent · AI Agent 开发笔记

简体中文 · English

开发桌面 agent Reina 过程中记下的笔记,讲 coding agent(Claude Code、Codex、opencode 这类工具)的内部实现机制。每篇讲一个机制,把 Reina 里的生产实现简化成零依赖、单文件、可直接运行的 Node 程序——所以这些做法不是照 API 文档推想的,是实际产品里验证过的。

所有机制最终都建立在同一个循环上

运行

Node 18+,零依赖:

git clone https://github.com/7-e1even/learn-agent && cd learn-agent
AGENTAPIKEY=sk-xxx node s01agentloop/agent.mjs

任何 OpenAI 兼容的 API key(DeepSeek / Kimi / GLM / OpenRouter / 本地 Ollama)都行;没有 key 的话,多数章节的 demo.mjss12 的自测模式不需要 key。

目录

s01–s12 从零搭出一个完整可用的 agent,按顺序读;s13 之后是开发 Reina 时陆续踩到、记下来的边界问题,挑感兴趣的读。每篇结尾附 Reina 中对应生产实现的位置。

| # | 主题 | 要解决的问题 | | --------------------------------- | ---------------- | ---------------------------- | | s01 | Agent 主循环 | 最小可用的 agent 长什么样 | | s02 | 工具系统 | 工具越加越多,怎么不用每次都改循环 | | s03 | 循环预算与纠偏 | 模型原地打转、反复报错,怎么发现并拉回来 | | s04 | 工具输出预算与溢出 | 一条 cat 的输出就能撑爆上下文,怎么办 | | s05 | 流式输出与中断 | 用户按下 Ctrl+C,断在一半的消息记录怎么修 | | s06 | 上下文压缩 | 上下文满了要压缩,怎么不忘掉最初的任务 | | s07 | Prompt 缓存 | 同样的对话,为什么有人的账单贵 10 倍 | | s08 | 会话持久化与恢复 | 进程崩了,跑了半小时的会话怎么接着跑 | | s09 | 子代理与看门狗 | 子任务卡死了,怎么发现它并保住已完成的部分 | | s10 | System prompt 组装 | system prompt 越写越长,怎么按需拼装 | | s11 | 多 agent 协作 | 几个 agent 同时干活,怎么分工不重复不冲突 | | s12 | 完整 agent 整合 | 前面所有机制装回一个循环里是什么样 | | s13 | 权限与审批 | 模型要执行 rm -rf,怎么在动手前拦住 | | s14 | Provider 兼容层 | 换个模型 tool call 格式全乱,怎么兼容 | | s15 | 渐进式工具披露 | 工具有几十个,怎么不把上下文塞满 | | s16 | MoA 多模型合议 | 让多个模型一起商量,到底值不值 | | s17 | 自进化复盘环 | agent 能不能自己复盘对话,把学到的沉淀成记忆和技能 | | s18 | 自主任务的完成门 | agent 说"做完了",凭什么信 | | s19 | 压缩与缓存的冲突 | 压缩必然击穿缓存,怎么把损失降到最低 |


发现事实错误或代码 bug 欢迎提 issue。MIT License · © 2026 7-e1even

🔗 More in this category

© 2026 GitRepoTrend · 7-e1even/learn-agent · Updated daily from GitHub