第35讲:Vibe模式多轮对话管理——外设单独迭代、互不干扰
CSDN专栏:
- 嵌入式程序开发实战
- 嵌入式双范式AI编程
- 嵌入式开发必掌握
- 嵌入式求职面试技术资料
第35讲:Vibe模式多轮对话管理——外设单独迭代、互不干扰
一、多轮对话的问题
Vibe模式开发中,经常需要多轮对话迭代多个外设。如果管理不当,会导致外设迭代相互干扰、上下文混乱。
1.1 典型问题
问题一:上下文混乱
场景:
- 第一轮对话:配置UART
- 第二轮对话:配置SPI
- 第三轮对话:修改UART
问题:
AI可能混淆上下文,修改了SPI配置
问题二:修改冲突
场景:
- 外设A:正在迭代修改
- 外设B:AI建议修改全局配置
问题:
外设B的修改影响了外设A
问题三:遗忘约束
场景:
- 第一轮:明确约束"不要修改时钟"
- 第五轮:AI忘记约束,修改了时钟
问题:
约束在多轮对话中被遗忘
二、外设隔离策略
2.1 策略一:独立对话
方法:
每个外设使用独立的对话会话:
- UART对话:只讨论UART相关
- SPI对话:只讨论SPI相关
- I2C对话:只讨论I2C相关
优点:
- 上下文清晰
- 不会相互干扰
缺点:
- 无法共享上下文
### 2.2 策略二:明确范围 **Prompt模板**:【当前任务】
正在开发:[外设名称]
不影响:[其他外设列表]
【约束】
- 不要修改其他外设配置
- 不要修改全局配置
- 不要修改时钟配置
【当前代码】
[只提供当前外设的代码]
请生成/修改[外设名称]的代码
**示例**:【当前任务】
正在开发:UART驱动
不影响:SPI、I2C、GPIO、时钟配置
【约束】
- 不要修改SPI配置
- 不要修改I2C配置
- 不要修改GPIO配置(除UART引脚外)
- 不要修改时钟配置
【当前代码】
UART初始化代码:
[粘贴UART代码]
请修改UART波特率为9600
### 2.3 策略三:分段对话 **方法**:将开发过程分为多个阶段,每个阶段专注一个外设:
阶段一:GPIO开发
- 只讨论GPIO
- 完成GPIO开发
阶段二:UART开发
- 只讨论UART
- 完成UART开发
阶段三:SPI开发
- 只讨论SPI
- 完成SPI开发
## 三、上下文管理技巧 ### 3.1 上下文精简 **原则**:只提供当前相关的上下文:
- 当前外设代码
- 相关接口定义
- 必要的约束
不提供:
- 无关外设代码
- 过多的历史记录
- 冗余信息
**示例**:错误的Prompt:
“这是整个工程的代码:[粘贴整个工程代码]
请修改UART波特率”
正确的Prompt:
"这是UART驱动代码:
[只粘贴UART代码]
请修改波特率为9600"
### 3.2 约束固化 **方法**:在每轮对话中重复约束:
Prompt:
"【约束】
- 不要修改时钟配置
- 不要修改其他外设配置
- 只修改UART相关代码
[具体需求]"
### 3.3 修改范围控制 **Prompt模板**:【修改范围】
只允许修改:
- [文件1]
- [函数1]
- [配置项1]
禁止修改:
- [其他文件]
- [全局配置]
- [其他外设]
请生成修改代码
## 四、多外设开发流程 ### 4.1 标准流程第一步:规划外设开发顺序
- 确定外设依赖关系
- 按依赖顺序开发
第二步:逐个外设开发
- 使用独立对话或明确范围
- 完成一个外设再开发下一个
第三步:集成测试
- 测试外设间交互
- 发现问题单独修复
第四步:文档记录
- 记录每个外设的配置
- 记录约束和注意事项
### 4.2 典型案例 **场景**:开发UART+SPI+I2C驱动 **错误做法**:在一个对话中同时开发三个外设
→ 上下文混乱
→ 修改冲突
**正确做法**:对话1:UART开发
Prompt:
"开发UART驱动:
- USART1,PA9/PA10,115200
- 不要修改其他外设"
对话2:SPI开发
Prompt:
"开发SPI驱动:
- SPI1,PA5/PA6/PA7
- 不要修改UART配置
- 不要修改时钟配置"
对话3:I2C开发
Prompt:
"开发I2C驱动:
- I2C1,PB6/PB7
- 不要修改UART和SPI配置
- 不要修改时钟配置"
## 五、本讲核心要点 ### 5.1 记住这三句话 1. **多轮对话问题:上下文混乱、修改冲突、遗忘约束** 2. **隔离策略:独立对话、明确范围、分段对话** 3. **上下文管理:精简上下文、固化约束、控制修改范围** ### 5.2 下讲预告 第36讲将深入讲解:**嵌入式上下文精简:只喂当前外设代码,避免AI失忆** 如何精简上下文,避免AI失忆?下一讲将详细讲解。