Dream River
嵌入式系统开发 AI 助手 — 与了解你开发板的大语言模型对话,可操作终端,并熟知社区编写的最佳实践。
基于 Google ADK 构建 · 兼容任何 OpenAI 格式 API · 零依赖安装(内置后端)
功能特性
|
|
| 💬 流式对话 |
基于 SSE 的实时响应,内联工具调用卡片 |
| 🧠 项目记忆 |
自动记住开发板型号、操作系统、技能水平和文档链接 |
| 📚 最佳实践指南 |
社区可编辑的 best_practices.md — Agent 在执行文件传输、WiFi 配置、apt 安装等操作前会参考 |
| 🖥️ Electerm 集成 |
Agent 通过 Electerm MCP 操作远程开发板的 SSH/串口终端 |
| 🔧 PlatformIO 集成 |
开发板发现、项目初始化、编译、上传和库管理 |
| 🔍 网络搜索 |
基于 Tavily 的搜索,优先匹配官方数据手册和教程 |
| ⏹ 强制停止 |
中途打断生成,不会损坏会话状态 |
| 😴 休眠工具 |
Agent 可在长时间 apt install / docker build 期间等待,无需轮询 |
| 📋 用户表单 |
Agent 可展示内联表单用于结构化输入或暂停/恢复流程 |
前置要求
Dream River 根据你的硬件类型,至少需要以下一种 MCP 后端:
单板计算机(Raspberry Pi、Radxa、Jetson……)
安装 Electerm — 一款跨平台 SSH/串口终端,内置 MCP 支持。
- 从官网下载并安装 Electerm。
- 打开 Electerm → 设置 → MCP → 启用 MCP 服务器(默认端口
30837)。
- 在 VS Code 设置中配置:
Dream River: Electerm MCP URL = http://127.0.0.1:30837/mcp
微控制器(Arduino、ESP32、STM32……)
安装 PlatformIO MCP 服务器(如可用)或直接使用 PlatformIO CLI。如果已安装 CLI,Agent 可通过 Electerm 执行 pio 命令。
LLM API
你需要一个 兼容 OpenAI 格式 的 API 端点,例如:
| 提供商 |
API 地址 |
示例模型 |
| OpenAI |
https://api.openai.com/v1 |
openai/gpt-4o |
| DeepSeek |
https://api.deepseek.com/v1 |
deepseek/deepseek-chat |
| Ollama(本地) |
http://localhost:11434/v1 |
openai/qwen2.5-coder:7b |
| Azure OpenAI |
https://<your>.openai.azure.com/ |
azure/<deployment> |
安装
从 Open VSX Marketplace 安装,或在 VS Code 扩展面板中搜索 "Dream River"。
无需 Python 或 pip — 后端可执行文件已内置于扩展中。
配置
打开 VS Code 设置(Ctrl+,)并搜索 "Dream River":
下面以chatglm为例说明应该如何填写
| 设置项 |
说明 |
默认值 |
备注 |
aiEmbeddedHelper.apiKey |
LLM 提供商的 API 密钥 |
(必填) |
|
aiEmbeddedHelper.apiBase |
兼容 OpenAI 格式的 API 地址 |
https://open.bigmodel.cn/api/paas/v4 |
这是chatglm的open ai compatible地址 |
aiEmbeddedHelper.model |
模型名称(LiteLLM 格式:provider/model) |
openai/glm-5 |
openai compatible就填openai/xxxx,由于chatglm使openai compatible所以就填openai |
aiEmbeddedHelper.tavilyApiKey |
Tavily API 密钥(用于网络搜索) |
(可选) |
在https://app.tavily.com获取 |
aiEmbeddedHelper.electermMcpUrl |
Electerm MCP 服务器地址 |
http://127.0.0.1:30837/mcp |
|
aiEmbeddedHelper.streamingEnabled |
启用 SSE 流式传输 |
true |
推荐开启 |
aiEmbeddedHelper.useExternalBackend |
使用外部后端进程 |
false |
系统自带后端进程,如无需二次开发调试无需勾选 |
aiEmbeddedHelper.backendUrl |
外部后端地址 |
http://127.0.0.1:8000 |
只有在useExternalBackend为true时勾选 |
修改设置后会自动重启后端 — 无需手动重新加载。
数据存储
Dream River 在当前打开的工作区中存储项目记忆和对话日志:
<your_project>/
└── .dream-river/
└── data/
├── projects/ ← 记住的开发板配置、文档链接、笔记
└── logs/ ← 按会话保存的 JSONL 对话日志
每个 VS Code 工作区拥有独立的数据目录。如果没有打开工作区,数据将保存到 VS Code 全局存储位置。
.dream-river/ 会被扩展自动添加到 .gitignore。
最佳实践指南
backend/best_practices.md 是一个社区可编辑的知识库,Agent 在执行常见任务前会参考它。你可以添加自己团队的实践:
git clone <repo>
# 编辑 backend/best_practices.md
# 新增一个 ## 章节,然后提交 PR
安装后可在 <扩展目录>/resources/best_practices.md 查看和编辑。
使用方法
- 从侧边栏打开 Dream River 面板(河流图标)。
- 在对话框中输入问题或任务描述。
- Agent 会根据需要使用工具(终端、记忆、搜索),并显示内联状态卡片。
- 长时间操作:Agent 会使用
sleep_tool 等待,而非轮询。
- 中途停止生成:点击工具栏中的 ⏹ 停止 按钮。
示例提示
搭建一个 Raspberry Pi 5 项目 — 开发板运行 Raspberry Pi OS Lite,IP 是 192.168.1.42
在开发板上安装 Docker 并验证 hello-world 能否运行
将 build/firmware.bin 传输到开发板并烧录
将开发板连接到 WiFi "MyNetwork" 并验证网络连通性
初始化一个使用 Arduino 框架的 ESP32 PlatformIO 项目