// TODO

正在教一个 while 循环学会使用工具。当前进度:它已经会自己读文件和跑命令了。

让 Agent 记住上一次对话 — REPL 会话管理的工程实现

Agent 不是一次性的。你让它重构一个模块,做到一半网断了;你让它写测试,写了三个文件突然要开会;你让它调一个 bug,调到一半想明天再继续。这些场景下,如果关掉终端就意味着所有上下文全丢,那这个 Agent 就只能做"五分钟能搞定"的小事。 传统 CLI 工具没有"会话"概念——grep 不需要

多智能体 — 让 Agent 学会分工协作

"多 Agent"大概是 AI 领域目前最被高估的概念之一。 每次看到"多智能体协作完成复杂任务"的 demo,我都会想:你确定这不是一个 Agent 跑三遍、中间加了几条 system prompt 就能搞定的事吗? 但话说回来,在做 BareAgent 的过程中,确实遇到了一些场景让我觉得"拆分

工具系统 — Agent 能力的边界在哪里

一个 Agent 到底有多"能干",不取决于模型多聪明,取决于你给了它什么工具。 模型再厉害,不给它 bash 工具就跑不了命令,不给它 write_file 就写不了文件。工具定义了 Agent 能力的硬边界。所以 BareAgent 的工具系统设计,本质上就是在回答一个问题:怎么告诉模型"你能做

适配多家大模型 API — 抽象层设计实践

做 Agent 系统时,一个绕不开的问题是:你到底要绑死在哪家模型上? BareAgent 一开始就想支持多家 LLM——至少 Anthropic 和 OpenAI 要能切换。听上去不难,不就是封装个接口嘛。但真正动手之后才发现,两家的 API 差异比我预想的要大得多,而且"差异在哪里"这件事本身就

从零实现 Agent 循环 — 一个 while 循环撑起整个智能体

最近在做 BareAgent 这个项目的时候,最大的一个感受是:Agent 系统的核心其实没有大家想象的那么复杂。剥掉所有花哨的外壳,它就是一个循环——调模型、拿工具调用、执行、把结果塞回去,然后再调一次模型。 听起来很简单,但在实际工程里把这个循环做得稳定,比做得"聪明"重要得多。 循环的本质 如