本地 AI 知识库与项目开发工作流
1. 初始化目录结构
cd ~
mkdir -p ~/knowledge_base/{drivers,protocols,rtos,c_cpp,tools}
mkdir -p ~/workspace
mkdir -p ~/ai_assets/ollama_models
验证:
tree -L 2 ~
目录说明:
/home/用户名/
├── knowledge_base/ ← 通用知识库(可跨项目移植)
│ ├── drivers/ ← 通用驱动模板
│ ├── protocols/ ← 通信协议笔记
│ ├── rtos/ ← RT-Thread / FreeRTOS 最佳实践
│ ├── c_cpp/ ← C/C++ 设计模式
│ └── tools/ ← 工具链配置
├── workspace/ ← 具体项目代码
└── ai_assets/
└── ollama_models/ ← 本地模型文件
2. 初始化项目目录
每次新建项目执行:
mkdir -p ~/workspace/项目名
touch ~/workspace/项目名/.project_memory.md
cd ~/workspace/项目名
3. 快捷指令配置(已包含在 Ollama 配置中,确认存在)
cat ~/.bashrc | grep alias
确认包含以下内容,如缺少则补充:
alias start-ai='sudo systemctl start ollama && echo "Ollama 已启动"'
alias stop-ai='sudo systemctl stop ollama && echo "Ollama 已关闭"'
alias cd-kb='cd ~/knowledge_base'
alias cd-ws='cd ~/workspace'
source ~/.bashrc
4. 标准开发工作流
4.1 开始工作
start-ai
cd ~/workspace/项目名
hermes
4.2 开发阶段常用指令
在 Hermes 对话框中:
# 代码审查
"检查 drv_spi.c 的初始化逻辑,是否符合 RT-Thread 驱动框架要求?"
# 生成注释
"根据 include/ 目录下的头文件,为每个函数生成标准的 Doxygen 中文注释。"
# 分析依赖
"扫描当前目录的 Kconfig 和 SConscript,理清组件依赖关系,生成文字版依赖关系图。"
# 生成 Commit Message
"总结我刚才的代码改动,生成一条符合 Conventional Commits 规范的 git commit 信息。"
4.3 结束工作
stop-ai
5. 双轨记忆文件操作
5.1 保存项目专用记忆(绑定硬件,不移植)
在 Hermes 对话中:
"把刚才调试 STM32F407 串口3 DMA 溢出的解决方法
(NVIC 优先级 5,缓 冲区 512 字节)
记录到当前目录的 .project_memory.md,标注今天日期。"
5.2 提炼通用知识存入知识库(可移植)
"从刚才的调试中,提取关于 STM32 UART DMA 配置的通用注意事项,
去掉 F407 和串口3 等具体型号,
以 Markdown 格式追加到 ~/knowledge_base/drivers/uart_dma.md。"
5.3 跨项目继承历史经验
新项目开始时:
"请先阅读 ~/knowledge_base/drivers/ 目录下的所有文件,
然后基于这些经验帮我初始化这个项目的驱动框架,
生成 README.md。"
6. 知识库定期维护
cd-kb
hermes
在 Hermes 对话中:
"扫描 drivers/ 和 rtos/ 目录 下所有 Markdown 文件,
检查重复知识点,
生成本周技术要点索引,保存为 weekly_summary_日期.md。"
7. 知识库初始化(首次使用)
在知识库目录让 Hermes 生成基础文档:
cd-kb
hermes
"在 rtos/ 目录下生成 rtt_startup_flow.md,
详细描述 RT-Thread 从启动到进入 main 函数的标准流程,
包括内核初始化、组件初始化、线程创建的执行顺序。"
"在 drivers/ 目录下生成 driver_template.md,
包含符合 RT-Thread 驱动框架的通用 C 语言驱动模板骨架,
含 probe/open/read/write/close/control 函数签名和 Doxygen 注释格式。"
8. Git 版本控制
8.1 知识库纳入 Git
cd ~/knowledge_base
git init
git add .
git commit -m "feat: 初始化个人嵌入式知识库"
8.2 项目记忆纳入项目 Git
cd ~/workspace/项目名
git init
git add .project_memory.md
git commit -m "docs: 初始化项目专用记忆文件"
8.3 备份到 Windows
tar -czf /mnt/d/Backup/knowledge_base_$(date +%Y%m%d).tar.gz ~/knowledge_base/
9. 两个记忆文件模板
.project_memory.md(项目目录下,不可移植)
# 项目名称 - 专用记忆
## 硬件环境
- MCU:
- 时钟:
- 关键引脚:
## 已解决问题
### [日期] 问题标题
- 现象:
- 解决:
## 待解决
- [ ]