
本文记录在工位 Ubuntu 24.04 开发机上从 0 到 1 部署 OpenClaw 个人 AI 助手的完整工程落地过程。目标是打造一个既能在本地终端、网页端直接交互,又能通过 Telegram 移动端随叫随到,并且深度打通 Obsidian 个人知识库与远端 GPU 大模型的全天候智能助手。
一、架构设计与核心目标
1. 核心目标
- 多端入口:通过 OpenClaw Gateway 提供本机 Web Dashboard / REST 入口,并通过 Telegram Bot 提供移动端即时交互。
- 算力分离:本地工位机轻量运行 Agent 编排;远端 GPU 服务器(RTX 5090)运行 Ollama,承载
qwen3:30b大模型与nomic-embed-text嵌入模型。 - 知识库打通:通过 MCP(Model Context Protocol)读写本地 Obsidian Vault,赋予 Agent 检索与整理知识库的能力。
- 持久化长期记忆:基于向量检索实现跨会话的长期记忆沉淀与召回。
2. 拓扑架构
[ 移动端 Telegram ] <---+
| (HTTPS Proxy)
[ 本地 Web Dashboard ] <-+--> [ OpenClaw Gateway (端口: 18789) ]
|
+--> [ 本地 Obsidian Vault (MCP Server) ]
+--> [ 长期记忆系统 (Memory Vector Store) ]
+--> [ 远端 Ollama GPU 服务器 (192.168.x.x:11434) ]
├── qwen3:30b (主推理模型, 64k 上下文)
└── nomic-embed-text (向量嵌入)
二、Gateway 服务化与代理配置
1. Systemd User Service 配置
为了保证网关在开机后自动拉起且不依赖 root 权限,采用 Systemd 用户级服务管理:
创建 ~/.config/systemd/user/openclaw-gateway.service:
[Unit]
Description=OpenClaw Gateway Service
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/node /home/y/.npm-global/lib/node_modules/openclaw/dist/index.js gateway --port 18789
Restart=always
RestartSec=5
Environment=OPENCLAW_GATEWAY_PORT=18789
[Install]
WantedBy=default.target
2. 局部代理注入策略
由于 Telegram Bot 需要访问境外 API,而远端 Ollama 及局域网资源无需代理,推荐使用 Systemd Drop-in 配置局部代理,避免全局环境变量污染:
创建 ~/.config/systemd/user/openclaw-gateway.service.d/proxy.conf:
[Service]
Environment="HTTPS_PROXY=http://127.0.0.1:7897"
Environment="HTTP_PROXY=http://127.0.0.1:7897"
Environment="ALL_PROXY=http://127.0.0.1:7897"
Environment="NO_PROXY=localhost,127.0.0.1,::1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,.local"
加载并启动:
systemctl --user daemon-reload
systemctl --user enable --now openclaw-gateway
三、模型接入与性能调优
在 ~/.openclaw/openclaw.json 中配置远端 Ollama Provider:
{
"models": {
"providers": {
"ollama": {
"baseUrl": "http://192.168.180.234:11434",
"api": "ollama",
"timeoutSeconds": 300,
"models": [
{
"id": "qwen3:30b",
"reasoning": true,
"contextWindow": 65536,
"maxTokens": 8192,
"params": {
"num_ctx": 65536,
"keep_alive": "15m",
"temperature": 0.3
}
},
{
"id": "qwen2.5:7b-instruct",
"reasoning": false,
"contextWindow": 32768,
"maxTokens": 8192,
"params": {
"num_ctx": 32768,
"keep_alive": "15m"
}
}
]
}
}
}
}
调优要点:
- 上下文扩容:将
num_ctx设为65536,在 RTX 5090 32GB 显存上qwen3:30b (Q4_K_M)显存占用约为 24.9GB,留有足够裕量防止 OOM。 - Keep Alive:设置
keep_alive: "15m",避免模型在频繁调用间反复重新加载到显存。
四、知识库与工具层(MCP & Telegram)
1. Telegram 移动端通道
运行 openclaw channels add telegram,根据向导填入 BotFather 申请的 Token。配置完成后,可以在手机随时随地给 Bot 发送语音、文字指令,由 Agent 在后台执行并回传处理结果。
2. Obsidian MCP Server 联动
将 Obsidian 笔记库作为外部知识源挂载给 Agent:
- 在 Obsidian 中启用 Local REST API 插件;
- 在 OpenClaw 中配置
obsidianMCP Server 规则; - Agent 获得
search_notes、read_note、append_note、patch_note等原子工具能力,能够自主查阅过往笔记或将研究结论直接沉淀回 Vault。
3. 长期记忆机制
配置 Embedding 模型为 nomic-embed-text,OpenClaw 会在后台自动对关键事实、用户偏好和历史决策进行向量化落盘。当用户提及历史话题时,Agent 会通过语义检索自动召回相关背景,实现真正的连贯记忆。
五、日常维护与常用命令
# 查看整体运行状态与各通道健康度
openclaw status --deep
# 查看已注册的 MCP 工具与状态
openclaw mcp list
# 实时查看网关日志
journalctl --user -u openclaw-gateway -f -n 50
# 手动触发安全审计
openclaw security audit
六、总结
通过本套方案,我们实现了:
- 低成本高效算力:开发机轻巧无噪音,大模型算力集中在局域网高性能机器上;
- 多模态全场景触达:既有本地 Web Dashboard 供深度编码与调试,又有 Telegram 随时随地处理碎片化灵感;
- 知识闭环:通过 MCP 真正让 Agent 与个人知识库融为一体。