从零构建一个编码智能体
摘要
作者从零实现了一个极简编码智能体,详细讲解了其架构:包含异步事件驱动的 ReAct 代理循环、带沙箱的 read/write/edit/bash 工具、支持分支与回溯的 JSONL 会话存储,以及用 TypeScript 编写并通过 stdin/stdout JSON 通信的 TUI。
我想弄明白编码智能体是如何工作的,于是我从零构建了一个极简版本,灵感来自 pi。我写了一篇详细解析其架构的文章(链接见评论)。文章从一个简单的 ReAct 代理循环开始,然后逐步介绍围绕它搭建管道所需的各个概念,直到它变成一个完整的编码智能体。简而言之:
**代理循环(Agent loop):** 循环会在不同检查点发布事件(回合开始、消息更新、工具执行等),任何消费者(TUI、CLI、RPC)都可以订阅这些事件。它是异步的,因此可以在 LLM 生成回复的同时处理中止和转向消息。
**工具(Tools):** read、write、edit 和 bash,其中 bash 带有沙箱(使用 bubblewrap)。工具通过一个操作接口(operations interface)调用,因此也可以在远程机器上运行。
**会话(Sessions):** 以只追加的 JSONL 格式存储,每条记录都保存其父记录的 id,这样一个文件就能容纳多个分支,回溯只需移动一个指针。
**TUI:** 用 TypeScript 编写,将 Python 作为子进程启动,两者通过 stdin/stdout 以 JSON 行(JSON lines)的方式通信。
相似文章
@geekbb: Hugging Face 出的极简智能体,手把手教你从零造一个属于自己的 coding agent。学习写 agent 的入门玩具。 https://github.com/huggingface/tau
Hugging Face 发布了 Tau,一个简单的基于终端的 coding agent,作为教学工具,帮助开发者从零学习如何构建自己的 coding agent。
@Huahuazo: 想搞明白Agent到底怎么从零搭起来,不是光会调API那种——我翻过不少资料,要么讲得太抽象,要么直接甩给你一个成品让你改改参数就完事,中间“为什么这样设计”的部分基本是空白。 LangChain官方的这个Agents From Scra…
LangChain官方发布的Agents From Scratch教程详细介绍了如何从零构建一个具有人机协作和记忆功能的AI代理,涵盖基础搭建、评估体系、人机协作和长期记忆四个部分。
@XAMTO_AI: 想自己写一个编码 Agent,原理文章没少看,一动手就卡在第一行。 最近发现《动手学 Pi》这本中文教程,从一段真实的离线 Agent 日志开始,带你把 15 个关卡从头过一遍。 真正从零撸一个完整的编码 Agent,每一步都有可运行的代…
介绍中文教程《动手学 Pi》,通过 15 个可运行 checkpoint 从零实现一个 Pi-style 编码 Agent,涵盖协议、工具循环、会话树、上下文压缩与评测,每个章节配有正文、commit、测试和故障实验。
@vintcessun: 发现新思路:编码 agent 原来可以轻到这个程度。16MB 内存、0% 空闲 CPU、26MB 二进制——这数据在 agent 圈里有点离谱。 它用 Rust 硬怼,17k LoC 就把所有标准工具、权限系统、会话管理、MCP 都塞进去…
Zerostack 是一个用 Rust 编写的极简编码 agent,仅消耗 16MB 内存和 26MB 二进制,通过 feature gate 实现轻量化,支持多种提供商和工具。
@GitHub_Daily: 很多教程教 AI Agent 开发都是直接上框架,装完跑起来了,但底下到底怎么回事不清楚。 ai-agents-from-scratch 反过来,先从最基本的模型调用写起,一步步搭出工具调用、记忆、ReAct 循环这些核心模式。 全程用本…
GitHub_Daily 推荐了一个开源项目 ai-agents-from-scratch,它从零开始使用本地模型逐步实现工具调用、记忆和 ReAct 循环等核心模式,帮助开发者理解 AI Agent 的底层原理,而不直接使用框架。