跳转到主要内容

环境变量

通过环境变量配置 Myrm 实例。复制 .env.example 为 .env 并按需修改。

LLM 提供商(在 WebUI 中配置,不是环境变量)

提供商凭据不是环境变量。请在 WebUI 的设置 > 模型服务中添加:每个提供商各自保存自己的 Key, Myrm 会将其加密存储在本地数据目录(MYRM_DATA_DIR,默认 ~/.myrm)。.env 仅承载进程级与运维级配置。
服务端随附的 .env.example 写明了同一策略:.env 中只放 [P] 进程级与 [O] 运维级变量; 业务能力(LLM、向量化、搜索、提供商)一律在 WebUI 设置中管理。

应用

**搬迁数据目录:**桌面端在设置 → 系统 → 存储中点击更改(向导含空间预检、实时进度、拷贝校验与自动回滚)。独立 WebUI/服务端改 MYRM_DATA_DIR 后重启。云托管数据由托管持久化卷管理。

Docker Compose

安全

可观测性与遥测

确认导出是否生效

设置 → 开发者 → OpenTelemetry 遥测导出展示的是每条管线实际投递的结果,而不是配置了什么。链路在第一批数据被送达或被拒收之前显示「已就绪」,之后按最近一次结果显示「运行中」或「导出失败」。指标有独立的状态(「未开启」「已就绪」「运行中」「导出失败」),因为后端可能接收链路却拒收指标。GET /api/v1/system/telemetry-posture 返回同一组实测字段(status、metrics_status、exported_spans、failed_batches、last_success_at、last_failure_at),GET /api/v1/health/liveness 的 gatewayRuntime 中的 otlp_connected 也由它们得出:只有最近一次导出被接收时才为 true。 平台托管(云托管)实例的采集端归运营者所有,因此该卡片不显示,接口也不披露采集端地址。

一次请求的链路如何对上

同一个 HTTP 请求只有一个 32 位十六进制 ID:它同时是响应头 X-Trace-Id、错误响应里的 error.trace_id、服务端日志行里的 ID,以及导出 Span 的 trace ID,所以从错误提示里抄下的 ID 能直接查到对应链路。调用方带上合法的 X-Trace-Id(32 位十六进制、不全为 0)或 W3C traceparent 时沿用它自己的 ID(X-Trace-Id 优先),其他取值一律换成新生成的 ID。 导出的 Span 包括智能体运行、模型调用、工具调用,以及聊天渠道中每条流式回复对应的一条 stream_reply 链路。HTTP 请求本身不产生 Span(健康检查只会制造噪音)。OTEL_* 变量只有服务端读取:智能体运行的程序(终端命令、脚本、后台进程、浏览器)不会继承它们,需要 OpenTelemetry 的程序请在自己的命令行里设置。