01Bread Agent · 第 4 章
总进度 4 / 33

多轮对话 + 权限确认

ch02 的 agent 只能处理 一句话的任务 ——你说一个任务,它做完就退出了。下次想继续,你得从头跑整个 Python 脚本。

2026-09-28约 35 分钟180 行代码难度 ★★

如果想获取全套课程资料,请关注微信公众号 「AI面包君」,回复 「课程资料」 即可领取。

1. 保留上一轮的对话

ch02 的 agent 只能处理一句话的任务——你说一个任务,它做完就退出了。下次想继续,你得从头跑整个 Python 脚本。

我们希望做完一次任务后,还能接着问“刚才那个文件里写了什么”。要让模型理解“刚才”指什么,下一次请求就需要带上前面的对话和工具结果。

这一章我们让 agent 进化成 REPL(Read-Eval-Print Loop,读取-执行-打印 循环):

> 你输入一句话
  AI 回应
> 你再输入一句话
  AI 基于之前的对话回应
> ...

这一章还加入 run_shell,让程序执行命令。它会影响本机环境,所以本例在执行前显示命令,并等待你输入 y/N。先在这里写出确认流程,ch06 再把它整理为可复用的钩子。

<!-- bread-visual:start -->

两层循环,各管一件事

图解: 外层负责持续聊天,内层负责完成当前任务。 退出程序前的对话只在内存里;跨重启恢复要等到 ch07。

<!-- bread-visual:end -->

2. 跑起来

cd ch03_repl
python main.py

启动后你会看到提示符:

Bread Agent · REPL 模式
输入消息开始对话;Ctrl+C 退出。

你 >

试这一组对话:

你 > 列出当前目录都有什么文件
AI > 当前目录下有:main.py 和 README.md 两个文件。

你 > 把第一个文件的前 3 行告诉我
AI > (先调 read_file,再回答)"main.py 的前 3 行是 ..."

你 > 用 shell 运行 echo hello
[!] Agent 想执行命令: echo hello
[!] 允许执行吗?(y/N): y
AI > 已执行,输出是 "hello"

image-20260526173708095

关键观察:

  • 第二句话"第一个文件"——AI 知道是 main.py,因为它记得前一轮对话
  • 第三句话的 [!] 允许执行吗? 提示——agent 在动手前问你了
  • 按 Ctrl+C 随时可以退出,不会崩溃

<!-- bread-practice:start -->

实操画面对照

多轮上下文仍然保留

试读到这里 · 后续内容已封存

关注公众号,继续把这章学完

在「AI面包君」发送关键词「学习AI」拿到口令。验证一次,这个浏览器就能继续阅读全部课程。