把复杂,
讲成星光。
Dream AI 是一个开源、通用、可自托管的 AI 助手。这里有它的骨架、 它如何思考、如何被唤醒,以及它将要走向哪里。
目录 · 09 个章节 ⌄
一页看懂 Dream AI
从一个简单的 CLI 会话开始,慢慢长成一个能记忆、能使用工具、能自主规划,也能在浏览器里协作的通用智能体。
核心处于 early development(v0.4.0),网页版已在 liguijiang.com 上线。路线图里标注为未完成的部分仍然只是计划,不提前把梦想写成现实。
三分钟,把 Dream 叫醒
只需要 Python 3.11 或更高版本。没有 API Key 也能进入离线演示模式,先把整条交互链路跑通。
# 1. 克隆并进入项目
git clone https://github.com/Li-Guijiang/DreamAI.git
cd DreamAI
# 2. 创建虚拟环境(Windows)
python -m venv .venv
.venv\Scripts\activate
# 3. 安装并以离线模式启动
pip install -e .
python -m dream_ai
先看见,再接入
没有 Key 时,LocalEchoProvider 会回声你的输入,用来熟悉命令、历史和工具流程;它不会伪装成真实模型的回答。
接入任意模型
复制 .env.example 为 .env,填入 DREAMAI_API_KEY。OpenAI、DeepSeek、Qwen 等兼容端点都可以直接切换。
更完整的中文手把手说明见仓库 docs/GUIDE.md,有环境检查、常见报错和每个命令的用法。
三个入口,同一个 Dream
它们共享同样的产品定义与配置约定,但承担的日常任务不同。你可以在网页里随手对话,在终端里接入自动化,在桌面版里真正操作文件。
四层能力,一条思考链
Python 内核只依赖很小的抽象接口,Provider、Memory、Tools 与 Autonomy 可以独立替换。CLI 运行在这颗核心上;Web 端目前由独立的 FastAPI 流式层驱动,共享模型配置与体验语言,接通同一套工具与自主循环是下一阶段计划。
Plan → Reason → Act → Observe → Reflect
LLMProvider、Memory、Tool 都是可替换的小契约;核心不依赖某一家厂商。
文件与联网工具默认关闭,写入需要确认,自主循环有步数预算和可解释轨迹。
从 CLI 到 Web、从离线演示到真实模型,旧路径始终保留,不需要重写核心。
全站都在动,阅读仍然安静
这片站点现在有自己的呼吸:星野、轨道、打字机、卡片聚光、页面跃迁与滚动叙事。动效服务于层次和反馈,而不是遮住内容。
会呼吸的标题
问候语与提示词先打字、停留、再删除并切换下一句,像一台真正等待你说话的终端。
可触摸的星野
Canvas 星场随指针轻微视差漂移,偶尔有流星掠过。低性能设备会自动减少星点数量。
有反馈的交互
卡片聚光与 3D 倾斜、按钮磁性位移、点击星火、页面跃迁,所有变化都在回应你的指尖。
可关闭的动效
右上角的动效开关会尊重 prefers-reduced-motion,并记住你的选择;内容永远不是动画的人质。
打开导航右上角的「动态 / 静态」开关,整站会立即静止,不需要重新加载。
实现集中在 assets/js/motion.js、assets/css/motion.css 与各页面独立的故事脚本中。都使用原生 API,没有引入额外的前端框架或动画库。
命令行里的 Dream
输入自然语言即可对话;斜杠命令负责查看状态、管理记忆与触发多步任务。
| 命令 | 它会做什么 | 触发条件 |
|---|---|---|
/help | 列出全部命令和工具提示。 | 随时 |
/run <objective> | 拆解目标,执行 think → act → observe → reflect 循环,并输出计划与结果。 | DREAMAI_AUTONOMY_ENABLED=true |
/trace | 回看上一次自主任务的状态、步骤和完整轨迹。 | 运行过 /run |
/tools | 列出注册的工具、风险等级、确认要求与必填参数。 | 工具注册表开启 |
/tool <name> <json> | 直接运行一个工具,例如计算表达式。 | 工具名存在 |
/remember <text> | 把一条长期偏好写入记忆,并在之后注入上下文。 | 持久化开启 |
/memory · /forget | 查看或清空长期偏好。 | 随时 |
/clear | 清空当前会话历史,但保留系统提示与已记忆偏好。 | 随时 |
/about | 查看 Provider、模型、工具、自主模式和消息数量。 | 随时 |
file_write 和自主任务中的受保护动作永远先请求确认。没有确认,Dream 不会修改你的文件。
目录不是仓库的装饰
每一个文件夹都对应一个可以独立理解和测试的概念。新的 Provider、Tool、Memory 或 Planner 都可以沿着接口生长。
DreamAI/
├─ dream_ai/ # 智能体内核(Python)
│ ├─ core/ # Agent 与 Conversation
│ ├─ providers/ # 可插拔模型后端
│ ├─ memory/ # 会话、偏好、持久化
│ ├─ tools/ # 注册表与内置工具
│ ├─ autonomy/ # Planner、执行引擎、Trace
│ ├─ ui/ # 终端动效与可访问降级
│ └─ cli.py # 交互循环与斜杠命令
├─ web/ # 本页所在的网页版
│ ├─ app/ # FastAPI:SSE、限流、安全响应头
│ ├─ web/ # 原生前端 + 动效系统
│ ├─ docs/ # 站点截图与预览
│ └─ deploy/ # systemd / Nginx / 一键部署
├─ desktop/ # Electron 桌面版(加载同一套界面)
├─ docs/ # 架构、路线图、指南、安全
├─ examples/ # 可直接运行的示例
├─ tests/ # 单元与行为测试
└─ assets/brand/ # 会动的仓库视觉资产
网页版是原生 HTML + CSS + JavaScript,不需要 Node 构建;FastAPI 只负责模型转发、流式 SSE 与安全边界。少一层工具链,就多一层可维护性。
一颗慢慢长大的星
Dream AI 不追逐“什么都做”。它按能力一层一层地长,每个版本都有可验证的完成标准。
-
v0.1 · CONVERSATION DONE
先学会对话
CLI 交互循环、会话记忆、可插拔 Provider、离线演示模式。
-
v0.2 · MEMORY DONE
再学会记住
本地 JSON 持久化、跨会话偏好、下次启动自动恢复。
-
v0.3 · TOOLS DONE
然后学会动手
安全工具注册表、计算器与时钟、沙箱文件读写、可选联网搜索。
-
v0.4 · AUTONOMY CURRENT
现在学会计划
多步拆解、步数预算、失败重试、确认闸门,以及可解释的完整轨迹。
-
NEXT · NATIVE TOOL CALLING PLANNED
把选择交还给模型
模型驱动的计划拆解、原生函数调用、流式 CLI,以及更聪明的长期记忆。
完整里程碑与验收标准在 docs/ROADMAP.md。没有完成的事项会一直保持未勾选。
能一直长下去的工程
可读的抽象、默认安全的边界、持续运行的测试,以及一套不需要 Node 就能跑起来的网页。
pytest 覆盖 Agent、Memory、Tools 与 Autonomy;Ruff 约束导入、格式和常见错误,CI 在 Python 3.11 / 3.12 / 3.13 上同时运行。
每个 think / act / observe / reflect 事件都进入 Trace,失败可重试、预算可检查、受保护动作必须确认。
Web 层包含 CSP、X-Frame-Options、nosniff、Referrer-Policy;模型输出经 DOMPurify 清洗后才进入页面。
装饰性 Canvas 带 aria-hidden,键盘焦点保持可见,所有动效支持关闭并尊重系统减少动态偏好。
在你自己的服务器上点亮它
网页版目标环境是宝塔面板 + Nginx + systemd。静态文件由 Nginx 直出,FastAPI 只监听本机回环地址,API Key 只存在服务器 .env。
你可以从阅读代码开始,也可以提交一个工具、一处翻译、一颗新的星。贡献指南在 docs/CONTRIBUTING.md。