跳到主要内容

本地 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:
- 时钟:
- 关键引脚:

## 已解决问题

### [日期] 问题标题
- 现象:
- 解决:

## 待解决
- [ ]

knowledge_base/分类/文件名.md(可移植)

# [功能名称] 通用笔记

## 适用范围
- 平台:通用描述,不绑定具体型号
- RTOS:RT-Thread / FreeRTOS / 裸机

## 关键注意事项
1.

## 常见问题模板
### 问题:
- 触发条件:
- 根因:
- 解决方案:
- 验证方法:

## 代码模板
```c


---

## 10. WSL2 内存限制(防止 Keil/IDE 卡顿)

编辑 Windows 侧 `%UserProfile%\.wslconfig`:

```ini
[wsl2]
memory=8GB
processors=4
swap=2GB

保存后执行:

wsl --shutdown

重新进入 WSL 生效。