统一 Web 工作区¶
统一的 LSM Web 工作区是日常使用 local-shell-mcp 的推荐入口。它将 AI 聊天、项目历史记录和 LSM 控制面结合在一个响应式界面中,基于经过定制并内置的 LibreChat 前端。您仍然可以连接外部 MCP 客户端,例如 ChatGPT 或 Gemini。
现在 Web 工作区集成在 LSM Controller 中,不再另行部署 LibreChat 服务。全部业务数据统一存储于 Python/SQLite 后端。
工作区里有什么?¶
| 模块 | 你能做什么 |
|---|---|
| 聊天和项目 | 选择配置的模型、创建对话、组织项目、查找过去的聊天记录并存档对话。历史记录保留在服务器上。 |
| Controller 总览 | 查看运行状况、最近的活动和连接的机器。 |
| 文件 | 浏览和管理本地或远程文件。 |
| 终端 | 使用Controller 或 Worker上的持久终端。 |
| 桌面 | 检查和控制远程 GUI 会话。 |
| 会议 | 检查持久的 LSM 任务及其生命周期。 |
| 遥控器 | 连接和管理外派员工。 |
| 审计 | 检查模型发起的工具活动。 |
| 嵌套MCP | 注册、编辑、启用、禁用、刷新和删除 LSM 后面的外部 MCP 服务器。 |
Controller 页面路由包括 /control/overview、/control/files、/control/terminals、/control/desktop、/control/sessions、/control/remotes 和 /control/audit。聊天页面地址为 /c/new。 LSM MCP 管理器控制 LSM 的嵌套 MCP 注册表;它不会在 LibreChat 中创建第二个注册表。
部署可选的聊天服务¶
- 通过快速入门安装 LSM Controller,默认启用 SQLite;原始状态会自动迁移,旧文件保留作为回滚来源。
- 用户只需一个 HTTP/HTTPS 入口:
https://lsm.example.org。聊天、终端、文件及远程控制都由同一个 Python Controller 提供。 - 如需修改默认配置,可以在 Controller 服务环境中设置:
- 使用源码部署或独立可执行文件启动 Controller:
- React 前端源码位于
ui/workspace/。仅在开发与打包时需要 Bun;参见前端构建与安全说明。
Node.js、MongoDB、Meilisearch 和独立的 LibreChat Compose 服务都不再是运行时依赖。Worker 仍然是普通 Python 包。
重构状态: Python Agent 推理、SSE 恢复及工具协议仍在迁移,草稿 PR 暂不可替换生产部署。
登录并使用聊天功能¶
- 打开 LSM Controller 的
/ui入口,用原有 PIN 或 OAuth 完成认证;React 与控制面共享身份。 - 在 LSM 中配置实际模型端点/API 凭证。Python Agent 后端仍在迁移中,草稿分支尚未完全支持生成。
- 待 Python Agent 与 SSE 协议通过验收测试后即可正常新建对话;MCP、LSM 工具与文件上传继续沿用 Controller 权限。
- 先进行只读请求:“检查 Controller 状态并列出工作区根目录,不修改文件。”
- 通过文件、终端、桌面、会话、远程和审计页面直接查看与管理运行环境。
聊天上传(最多 32 MiB)存储在控制器工作区下,并且它们的绝对路径提供给模型。浏览器上传不会授予额外的文件权限。面向模型的工具调用通过 LSM 授权、审计和远程 Worker 路由器。
外部 MCP、安全和数据¶
使用工作区 MCP 侧边栏管理嵌套的外部 MCP 服务器。这支持本地 stdio 服务器和 HTTP 服务器,包括单独的私有环境变量和请求标头。秘密不会返回到浏览器。 外部 MCP 聊天切换允许搜索、检查和调用嵌套工具;当禁用本机 LSM 工具时,它不会授予模型 mcp_manage。 UI 管理受到正常控制器授权的保护。
聊天、项目、Agent、会话、审计及 Worker 状态统一使用 .local-shell-mcp/lsm.sqlite3,并使用 SQLite FTS5 搜索;文件产物仍在同目录下管理。
工作区是原生 React 页面,不使用 iframe 或独立 Web 服务;Worker 与外部 MCP 客户端保持兼容。
故障排除¶
- WebUI 无法启动: 查看 Python Controller 日志、SQLite 初始化和打包前端;紧急情况下可通过
LOCAL_SHELL_MCP_STATE_BACKEND=file恢复文件存储。 - 登录失败: 使用现有 Controller PIN/OAuth 认证,不再需要 LibreChat 独立账户或桥接密钥。
- 聊天界面可打开但无法应答: 草稿分支的 Python Agent 与 SSE 迁移尚未完成,请勿部署到生产。
- MCP 工具缺失: 核对 Controller 权限与嵌套 MCP 注册表;仅外部 MCP 模式不暴露
mcp_manage。 - 文件或会话为空: 检查 Controller 工作区、SQLite 数据迁移及认证身份。
有关实现详细信息和更新,请参阅 the vendored integration README 和 human interface guide。