01Bread Agent · 第 6 章
总进度 6 / 33多文件重构 + 系统提示词模板
到了 ch04, main.py 里已经同时放着工具函数、参数说明、流式请求、输入循环和提示词。继续添加功能前,先整理一下文件,让查找和修改代码更方便。
2026-09-28约 40 分钟340 行代码难度 ★★
如果想获取全套课程资料,请关注微信公众号 「AI面包君」,回复 「课程资料」 即可领取。
1. 把不同职责的代码分开
到了 ch04,main.py 里已经同时放着工具函数、参数说明、流式请求、输入循环和提示词。继续添加功能前,先整理一下文件,让查找和修改代码更方便。
这一章保留已有的对话和工具流程,主要调整两处:
- 拆成 3 个文件:
tools.py/agent.py/main.py - 系统提示词模板化:不再是写死的字符串,而是根据"当前可用工具 / cwd / 今天日期"动态拼装
拆分后,可以留意这三个变化:
class Agent把消息历史和模型调用放在一起。main.py负责启动和接收输入,不再处理全部细节。build_system_prompt()根据工具、目录和日期生成本次使用的提示词。
后面 3 章(ch06/ch07/ch08)的代码骨架都建立在本章之上。
<!-- bread-visual:start -->
<!-- bread-visual:end -->图解: 像餐厅分工:接待、调度、后厨各管一段。 system prompt 动态拼装:身份说明 + 当前工具 + 工作目录 + 日期。
2. 跑起来
cd ch05_promptpl
python main.py
先用 ch04 的问题再试一遍,确认拆分文件后,对话和工具调用仍然能完成。
Bread Agent · v5(已重构)
输入消息开始对话;Ctrl+C 退出。
你 > 今天几号?
AI > 今天是 **2026年6月6日**。
你 > 你可以使用哪些工具
AI > 我目前可以使用以下 4 个工具:
1. **read_file** — 读取文本文件内容
2. **write_file** — 写入文本文件(会覆盖已有内容)
3. **list_dir** — 列出目录下的文件和子目录
4. **run_shell** — 执行 shell 命令(危险操作需你确认)
简单说就是:**看文件、写文件、列目录、跑命令**。需要我帮你做什么?
你 > 你当前的工作路径是?
AI > 当前工作目录是:
**`D:\Project\bread agent\bread-agent\ch05_promptpl`**
需要我列一下这个目录里有什么吗?
关键观察:问"今天几号",AI 不需要调任何工具就能答——因为我们在 system prompt 里注入了当前日期。这就是本章新加的能力。

3. 对照代码看实现
文件结构
ch05_promptpl/
├── main.py # REPL 外壳(约 35 行)
├── agent.py # Agent 类 + build_system_prompt(约 130 行)
├── tools.py # 工具实现 + schema(约 80 行)
└── README.md
试读到这里 · 后续内容已封存
关注公众号,继续把这章学完
在「AI面包君」发送关键词「学习AI」拿到口令。验证一次,这个浏览器就能继续阅读全部课程。