CLI 交互式命令行终端设计

从这一篇开始,我们要一步步把前面那个玩具级的 Coding Agent 改造成一个像 Claude Code 这样的工业级工具。

用 Agent SDK 简化开发 那篇我们用 Pydantic AI 把 Coding Agent 重写了一遍,跑通了基本的 Agent 循环和工具调用,但工具依然很简陋,缺少最基本的交互命令。

去看一眼 Claude Code、Codex 等 CLI 工具,/help/new/status 这种以斜杠开头的命令是标配,方便用户切换会话、查看当前会话的上下文消耗等等。

所以我先把这层 CLI 的交互外壳做出来。功能本身不复杂,但它需要我们熟悉 LLM 接口的交互和 Agent SDK 提供的扩展功能。

具体来说,我们会给 Coding Agent 装上五个命令:

  • /new:开启新会话,清空之前的对话历史
  • /status:查看当前模型、历史消息条数、累计 token 用量
  • /help:列出所有可用命令
  • /exit:退出程序
  • /api-detail:展开一轮 Agent 循环底层的每一次 LLM 调用请求,方便我们学习理解

前四个命令比较容易,/api-detail 稍微特殊,它要借助 用 Agent SDK 简化开发 结尾讲过的 Hooks 机制去 SDK 内部把请求数据取出来。