分离大脑、环境和界面。
θ sweeps 0 → τ θ = 0.00学习 Agent 架构
阅读小型 Python 层
运行真实的终端 Agent
01 作为课程体系的编码 Agent
Ⅰ 模型成为流
Provider 适配器将模型响应转换为 Provider 无关的事件,供 Agent 的其余部分消费。
Ⅱ Agent 循环
可重用的框架:消息、工具、对话记录状态、取消、队列提示、会话。
Ⅲ 它变得实用
编码环境:文件、Shell、持久会话、技能、斜杠命令和 Textual TUI。
课程要点
每个运动部件都可见。
Tau 回答了教程跳过的问题:Agent 循环 究竟 是什么?工具调用从何而来?对话记录如何增长?会话如何在进程退出后持久存在?
模型流 → 令牌(token)、工具请求、思考增量
↓
事件流 → 层之间的契约
↓
Agent 循环 → 决策、调用工具、更新对话记录
↓
会话 → 可检查的 JSONL 历史记录
前端 → 打印、Rich 或 TUI
核心思想
分离大脑、环境和界面。
整门课程就是边界。可重用的框架不得依赖终端、文件路径或 Rich 渲染。这些只是包裹框架——它们从不位于框架内部。
AgentHarness = 可重用的 Agent 大脑
AgentSession = 编码 Agent 环境
TUI = 一种可能的前端
依赖方向
tau_coding → tau_agent → tau_ai
02 你能从 Tau 中学到什么
- Provider 无关的流式接口
- 请求并执行工具的 Agent 循环
- 用于读取、写入、编辑和 Bash 的类型化本地工具
- 位于
~/.tau/sessions的持久会话 - 会话恢复、分支、JSONL 导出和 HTML 导出
- 项目指令、技能和提示模板
- 斜杠命令和模型/Provider 选择
- 上下文核算、压缩和思考控制
- 如何将 Textual 保留在 UI 适配器边界之后
03 教学原则
小层级胜过魔法
每个包只做一件事。分别研究 Provider 层、框架和编码应用。
事件让 Agent 可教学
Agent 发出一个你可以渲染、测试和导出的流——而不是隐藏在回调中的控制流。
足够真实,有意义
教育性,不是玩具。在阅读其背后代码的同时,将其作为真实的终端 Agent 运行。
文档紧随实现
按阶段构建,每个阶段都附有添加了什么、为什么以及如何适应的说明。
灵感来源
受 Pi 启发,作为 Python 学习路径编写。
Tau 借鉴了 Pi 的架构教训——保持框架、环境和 UI 分离。不是逐行移植;而是基于相同核心思想的教育性 Python 实现。
τ › 解释 Agent 循环
流 模型事件
请求 工具调用
执行 读取/编辑/Bash
追加 对话记录条目
渲染 打印模式或 TUI
τ 构建你自己的 Agent 的地图:从事件开始,添加循环,用框架包裹,然后赋予它工具和 UI。
$ uv tool install tau-ai