#Harness10 篇
11 分钟

从零实现 GeekAgent —— Day9 任务规划与子 Agent

7天从零实现Agent教程,用 TypeScript 动手写一个最简单的 Agent/Harness。Day 9 让 Agent 先列清单再动手:加一张由模型维护的 TODO 表,再提供一个隔离上下文的子 Agent。主 Agent 安排顺序,子 Agent 处理边界清楚的小任务,当前进度始终显示在右侧分栏。

11 分钟

从零实现 GeekAgent —— Day8 权限与回滚

7天从零实现Agent教程,用 TypeScript 动手写一个最简单的 Agent/Harness。Day 8 给工具划边界,也给写入留后路:用 .geekagent/GeekAgent.json 划清权限与目录边界,再给每次文件写入保存最近状态——不该做的操作提前拦住,写错还能用 /undo 恢复。

16 分钟

从零实现 GeekAgent —— Day7 轻量 TUI 与用量面板

7天从零实现Agent教程,用 TypeScript 动手写一个最简单的 Agent/Harness。Day 7 给终端换一张桌:程序暂时接管整个终端,左侧放消息流,右侧常驻一块用量面板——本轮/累计 tokens 与上下文占用比例一边聊一边看得见,退出后原终端内容恢复。

12 分钟

从零实现 GeekAgent —— Day6 多会话与持久化

7天从零实现Agent教程,用 TypeScript 动手写一个最简单的 Agent/Harness。Day 6 做两件事:让一个进程内可以同时维护多条互相独立的会话(/new、/sessions、/open),再把整个会话集合连同当前 ID 一次性落成 JSON(/save、/load,退出自动保存)——「聊得长」升级成「分得开、留得住」。

8 分钟

从零实现 GeekAgent —— Day5 历史压缩

7天从零实现Agent教程,用 TypeScript 动手写一个最简单的 Agent/Harness。Day 5 解决「聊得长、不淡忘」:当 history 数组只增不减、对话越来越长,通过压缩历史来控制上下文规模,让长对话不超出模型上下文窗口。

18 分钟

从零实现 GeekAgent —— Day4 文件工具与注册表

7天从零实现Agent教程,用 TypeScript 动手写一个最简单的 Agent/Harness。Day 4 把读写都从 shell 里拆出来:读走免确认的专用工具(ls/read/glob),写走展示 diff 再落盘的专用通道(write/patch),并把攒下的工具统一进一个注册表,让模型第一次走通「读→改→验证」的闭环。

6 分钟

从零实现 GeekAgent —— Day3 Bash 工具

7天从零实现Agent教程,用 TypeScript 动手写一个最简单的 Agent/Harness。Day 3 给模型接上第一个能碰真实机器的工具:在本地执行 shell 命令,并加上超时、输出截断、执行前确认三道护栏,让 Agent 真正「动手」。

8 分钟

从零实现 GeekAgent —— Day2 工具调用循环

7天从零实现Agent教程,用 TypeScript 动手写一个最简单的 Agent/Harness。Day 2 让模型第一次「动手」:搭建工具调用循环,模型回答不再只是纸上谈兵,它真的会去查时间(get_current_time),为后续执行命令、读写文件铺路。

8 分钟

从零实现 GeekAgent —— Day1 REPL 地基

7天从零实现Agent教程(days implement agent from scratch tutorial),用 TypeScript/Node.js 动手写一个最简单的 Agent/Harness,从零实现 REPL 循环与流式多轮对话。本文介绍 REPL 是什么、为什么 Agent 的地基要选它,以及如何用 readline + OpenAI 兼容接口在不到 160 行代码里跑通「能聊」的第一步。