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

关键观察:
- 第二句话"第一个文件"——AI 知道是 main.py,因为它记得前一轮对话
- 第三句话的
[!] 允许执行吗?提示——agent 在动手前问你了 - 按
Ctrl+C随时可以退出,不会崩溃
<!-- bread-practice:start -->
实操画面对照

试读到这里 · 后续内容已封存
关注公众号,继续把这章学完
在「AI面包君」发送关键词「学习AI」拿到口令。验证一次,这个浏览器就能继续阅读全部课程。