开发桌面 agent Reina 过程中记下的笔记,讲 coding agent(Claude Code、Codex、opencode 这类工具)的内部实现机制。每篇讲一个机制,把 Reina 里的生产实现简化成零依赖、单文件、可直接运行的 Node 程序——所以这些做法不是照 API 文档推想的,是实际产品里验证过的。 仓库分三块:notes/ 是正篇笔记(s01–s23,每篇一个机制,配可运行 demo);agent_analysis/ 是其他 agent(pi、Kimi
$ npx -y skills add 7-e1even/learn-agent --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: 7-e1even/learn-agent
What's inside
简体中文 · English
开发桌面 agent Reina 过程中记下的笔记,讲 coding agent(Claude Code、Codex、opencode 这类工具)的内部实现机制。每篇讲一个机制,把 Reina 里的生产实现简化成零依赖、单文件、可直接运行的 Node 程序——所以这些做法不是照 API 文档推想的,是实际产品里验证过的。
仓库分三块:notes/ 是正篇笔记(s01–s23,每篇一个机制,配可运行 demo);agent_analysis/ 是其他 agent(pi、Kimi CLI)的源码调研档案,笔记从这里取材;interview/ 是从笔记整理的面试题(连载中)。
Node 18+,零依赖:
git clone https://github.com/7-e1even/learn-agent && cd learn-agent
AGENT_API_KEY=sk-xxx node notes/s01_agent_loop/agent.mjs
任何 OpenAI 兼容的 API key(DeepSeek / Kimi / GLM / OpenRouter / 本地 Ollama)都行;没有 key 的话,多数章节的 demo.mjs 和 s12 的自测模式不需要 key。
clone 之后可以一键验证所有免 key 的示例:node selftest.mjs——20 个章末 demo 加 s12 的整合自测,十几秒跑完。
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 | 压缩与缓存的冲突 | 压缩必然击穿缓存,怎么把损失降到最低 |
| s20 | 自动长期记忆 | 跨项目自动沉淀该记住的事,不烧钱也不攒垃圾 |
| s21 | 横读其他 agent | 同一道题,pi 和 Kimi CLI 为什么给出相反的答案 |
| s22 | 思考档位 | 思考档位从滑块到 API 请求,中间要过哪几关 |
| s23 | 图片输入 | 一张 8MB 截图进上下文,要过哪几层处理 |
发现事实错误或代码 bug 欢迎提 issue。MIT License · © 2026 7-e1even
.gitbook.yaml
.gitignore
agent_analysis/
kimi_cli/
k01_dmail.md
k02_btw.md
k03_kaos.md
k04_shell_mode.md
k05_agent_flow.md
k06_kosong_step.md
k07_dynamic_injection.md
k08_wire_protocol.md
k09_k2_enforcer.md
k10_goal_mode.md
README.md
pi/
p01_session_tree.md
p02_subtraction.md
p03_extensions.md
p04_edit_tool.md
p05_message_queue.md
p06_tui_render.md
README.md
README.md
interview/
README.md
LICENSE
notes/
assets/
s01-agent-loop.svg
s02-tool-registry.svg
s03-loop-budget.svg
s04-output-spill.svg
s05-tool-call-repair.svg
s06-compaction-shape.svg
s07-cache-prefix.svg
s08-event-log-replay.svg
s09-subagent-watchdog.svg
s10-prompt-assembly.svg
s11-task-dag.svg
s12-mechanism-map.svg
s13-permission-gate.svg
s14-provider-normalize.svg
s15-tool-disclosure.svg
s16-moa-advisors.svg
s17-self-evolution-loop.svg
s18-completion-gate.svg
s19-compaction-cache.svg
s20-memory-dream.svg
s21-three-answers.svg
s22-thinking-effort.svg
s23-image-pipeline.svg
s01_agent_loop/
agent.mjs
README.md
s02_tool_system/
agent.mjs
README.md
s03_loop_budget/
agent.mjs
demo.mjs
loop-budget.mjs
README.md
s04_output_budget/
agent.mjs
demo.mjs
loop-budget.mjs
README.md
spill.mjs
s05_streaming_interrupt/
agent.mjs
demo.mjs
loop-budget.mjs
README.md
stream.mjs
s06_compaction/
agent.mjs
compaction.mjs
demo.mjs
loop-budget.mjs
README.md
s07_prompt_cache/
agent.mjs
demo.mjs
loop-budget.mjs
README.md
s08_persistence/
agent.mjs
demo.mjs
loop-budget.mjs
README.md
store.mjs
s09_subagent_watchdog/
agent.mjs
demo.mjs
loop-budget.mjs
README.md
subagent.mjs
s10_prompt_assembly/
agent.mjs
demo.mjs
loop-budget.mjs
prompt.mjs
README.md
skills/
code-review-checklist/
SKILL.md
git-commit-convention/
SKILL.md
s11_agent_team/
dag.mjs
demo.mjs
README.md
s12_full_agent/
agent.mjs
mock-server.mjs
README.md
selftest.mjs
s13_permissions/
demo.mjs
permissions.mjs
README.md
s14_provider_compat/
demo.mjs
README.md
tool-compat.mjs
s15_tool_disclosure/
demo.mjs
README.md
s16_moa/
demo.mjs
README.md
s17_self_evolution/
demo.mjs
README.md
s18_completion_gate/
demo.mjs
README.md
s19_compaction_cache/
demo.mjs
README.md
s20_memory_dream/
demo.mjs
README.md
s21_peer_agents/
demo.mjs
README.md
s22_thinking_effort/
demo.mjs
README.md
s23_image_input/
demo.mjs
README.md
README_EN.md
README.md
selftest.mjs
SUMMARY.mdFAQ
learn-agent is a Claude Code plugin with 2 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes code-review-checklist, git-commit-convention. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.