尧图精选

如何用Tau快速搭建自定义前端:Agent Harness事件流API与RPC实战指南

🕒 发布时间:2026/10/1 20:58:23 📁 来源:尧图网络
如何用Tau快速搭建自定义前端Agent Harness事件流API与RPC实战指南【免费下载链接】tauA Python port of Pi’s minimalist coding agent.项目地址: https://gitcode.com/gh_mirrors/tau16/tauTauPython 移植版 Pi 极简编码智能体把智能体的大脑与界面彻底解耦你只需要消费Agent Harness 事件流就能用任何框架搭建自己的编码智能体前端甚至通过RPC 协议把 Tau 当成无头子进程驱动。本文用一次最小示例 一张命令清单带你走通这条完整的自定义前端之路。为什么Tau允许你自定义前端Tau 的设计哲学只有一句话前端只是事件的消费者。整个体系分成三层层职责位置CodingSession拥有编码环境模型、工具、持久化、技能、压缩src/tau_coding/session.pyAgentEvent描述文本、工具调用、结果的统一事件流src/tau_agent/events.py前端状态输入框、渲染、快捷键——全归你的 UI你自己的代码关键点可复用的tau_agent包不依赖任何终端框架不碰 Textual 组件、键绑定、配置路径所以你可以基于CodingSession写 Web 前端、桌面客户端或 CLI而不用碰内置 TUI 的内部实现。官方对这一点有明确说明custom-frontend.md。Agent Harness最可复用的智能体大脑在tau_agent包里harness.py 定义了一个有状态、可复用、与 UI 完全无关的AgentHarness。它的核心能力只有四件事prompt()— 发送一条消息返回一个异步事件迭代器边跑边吐事件subscribe()— 注册事件监听器把事件推送给持久化层或审计日志steer()/follow_up()— 运行中插入方向修正或排队后续消息而不是启动第二个运行cancel()— 安全取消当前运行。Harness 还内置了工程细节运行中断时自动补上工具调用被用户打断的伪结果见 _append_interrupted_tool_results保证对话历史在任何时刻都是合法的。事件流全解前端只需渲染这些事件Tau 是典型的event-first 设计——每一步进展都以事件形式可观测。可移植的AgentEvent流包含 11 种事件agent_start / agent_end 一次运行的开始与结束 turn_start / turn_end 一轮助手回复及其工具结果 message_start / message_update / message_end 消息生命周期 tool_execution_start / update / end 工具执行在上层tau_coding/events.py 的CodingSessionEvent又扩展了会话级事件agent_settled、queue_update、compaction_start/end、entry_appended、thinking_level_changed、auto_retry_start/end等。⚠️新手最容易踩的坑判断这次运行彻底结束请用agent_settled而不是agent_end。因为agent_end之后还可能跟着自动重试、上下文压缩或排队的后续消息。三步写出一个最小前端官方文档给出的最小事件循环只有这一句async for event in session.prompt(user_text): render_event(event)三步走初始化— 用session.messages重建可见的对话记录ToolResultMessage自带结构化元数据如编辑补丁无需直接读 JSONL消费事件流—agent_start时进入运行中状态agent_settled时离开处理打断— 用户运行中提交新消息时用streaming_behaviorsteer立即插队或follow_up排队到本轮结束来排队而不是再开一次prompt()。RPC 实战把 Tau 当无头子进程驱动不想写 PythonTau 自带Pi 兼容的 JSONL RPC 模式一条命令即可tau --mode rpc [--provider NAME] [--model MODEL] [--cwd PATH]协议规则极其简单stdin每行一个 JSON 命令对象stdout每行一个 JSON 响应/事件stderr输出诊断信息客户端可以带id对应响应会原样回显方便配对未知命令只返回success: false不会杀死进程。一轮最小交互长这样{id:1,type:prompt,message:Inspect this project} {id:1,type:response,command:prompt,success:true} {type:agent_start}RPC 协议参考 列出了完整的命令面最实用的几个命令作用prompt/steer/follow_up提问、插队修正、排队后续abort取消当前运行get_state/get_messages拉取状态与完整消息set_model/cycle_model切换模型compact/set_auto_compaction手动/自动压缩上下文new_session/switch_session/fork会话管理与分支bash直接执行终端命令export_html导出 HTML 转录对前端开发者尤其友好的是Node/Electron 客户端只需spawn一个子进程、按\n切分 stdout 即可官方文档里连一个十几行的最小 JS 客户端示例都给你备好了。协议实现见 rpc.py。避坑清单不要依赖这些东西来自官方自定义前端文档的三条红线❌ 不要耦合CodingSession的私有属性❌ 不要从供应商专属的原始流块渲染——永远从AgentEvent渲染❌ 不要直接解析 JSONL 存储格式用SessionManager/CodingSession提供的 API也不要依赖 Textual 内部实现。键绑定、主题如~/.tau/tui.json属于前端策略你的 UI 完全可以无视它们。延伸阅读事件循环与 Harness 设计agent-loop.md完整前端构建指南custom-frontend.mdRPC 协议参考rpc.md各阶段构建日志dev-notes/总结Tau 把智能体做成了一条事件流。理解了AgentHarnessCodingSessionEvent这套契约你的前端工作就只剩三件事——发提示、消费流、画出来。【免费下载链接】tauA Python port of Pi’s minimalist coding agent.项目地址: https://gitcode.com/gh_mirrors/tau16/tau创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →