Skip to content

环境变量

Device Agent 启动时读取工作区根目录的 .env,用于首次启动、部署、密钥和环境差异配置;支持配置文件的字段会写入 .device_agent/config.json,HTTP 监听、数据库、A2A 身份和额外 IM 通道等启动项不会写入配置文件。

bash
cp .env.example .env

MQTT

变量说明
MQTT_BROKER_URL网关和设备端连接 MQTT Broker 的地址,例如 mqtt://localhost:1883
VITE_MQTT_WS_URL浏览器连接 MQTT Broker 的 WebSocket 地址,例如 ws://localhost:8083/mqtt
MQTT_CLIENT_ID网关连接 MQTT Broker 时使用的客户端 ID。
MQTT_PROTOCOL_VERSIONMQTT 协议版本,支持 45
MQTT_KEEPALIVE_SECONDS / MQTT_KEEP_ALIVE_SECONDSKeep Alive 时间。
MQTT_CONNECT_TIMEOUT_MS连接超时时间。
MQTT_AUTO_RECONNECT是否自动重连。
MQTT_RECONNECT_PERIOD_MS重连间隔。
MQTT_CLEAN_START是否使用 Clean Start。
MQTT_SESSION_EXPIRY_INTERVAL_SECONDSMQTT 5 会话过期时间。
MQTT_USERNAME / MQTT_PASSWORD网关和设备侧常用 MQTT 认证信息。
VITE_MQTT_USERNAME / VITE_MQTT_PASSWORD浏览器侧 MQTT 认证信息。只在确实需要浏览器直连 Broker 时使用。

TLS 相关变量:

变量说明
MQTT_TLS_ENABLED启用 MQTT TLS。
MQTT_TLS_INSECURE设置为 true 时关闭服务端证书校验。
MQTT_TLS_REJECT_UNAUTHORIZED是否校验服务端证书。
MQTT_TLS_CA_FILECA 证书路径。
MQTT_TLS_CERT_FILE客户端证书路径。
MQTT_TLS_KEY_FILE客户端私钥路径。
MQTT_TLS_KEY_PASSPHRASE客户端私钥密码。
MQTT_TLS_SERVER_NAMETLS Server Name。

主题模板变量:

bash
MQTT_TOPIC_PRODUCT_IN=device-agent/{productId}/in
MQTT_TOPIC_PRODUCT_OUT=device-agent/{productId}/out
MQTT_TOPIC_DEVICE_IN=device-agent/{productId}/device/{deviceId}/in
MQTT_TOPIC_DEVICE_OUT=device-agent/{productId}/device/{deviceId}/out
MQTT_TOPIC_DEVICE_COMMAND=device-agent/{productId}/device/{deviceId}/commands
MQTT_TOPIC_DEVICE_RESPONSE=device-agent/{productId}/device/{deviceId}/responses
MQTT_TOPIC_TELEMETRY=v1/{productId}/{deviceId}/telemetry
MQTT_TOPIC_EVENT=v1/{productId}/{deviceId}/event
MQTT_TOPIC_NTP_REQUEST=device-agent/{productId}/device/{deviceId}/ntp/request
MQTT_TOPIC_NTP_RESPONSE=device-agent/{productId}/device/{deviceId}/ntp/response

主题模板需要保留 {productId}{deviceId} 占位符。更多主题和消息格式见 MQTT 接入

模型和视觉

变量说明
LLM_PROVIDER主智能体模型服务商。
LLM_MODEL主智能体模型名称。
LLM_BASE_URL自定义模型服务地址,常用于 OpenAI 兼容接口或本地模型服务。
LLM_API_KEY通用模型 API Key。
OPENAI_API_KEY / ANTHROPIC_API_KEY / KIMI_API_KEY / QWEN_API_KEY对应服务商的 API Key。
OPENAI_CODEX_AUTH_FILEopenai-codex 服务商使用的 Codex 认证文件路径。
OPENAI_CODEX_ACCESS_TOKENopenai-codex 服务商使用的访问令牌。
AGENT_MAX_ITERATIONS智能体单轮任务的最大执行轮次。
VISION_ENABLED是否启用视觉能力。
VISION_PROVIDER视觉服务商,支持 autodashscope
VISION_MODEL视觉模型名称。
VISION_API_KEY视觉模型 API Key。
VISION_TIMEOUT_MS视觉分析超时时间。

VISION_PROVIDER=auto 时,系统会尝试复用主智能体模型的图像输入能力。使用独立视觉模型时,设置 VISION_PROVIDER=dashscopeVISION_MODELVISION_API_KEY

HTTP、前端和数据存储

变量说明
AGENT_GATEWAY_HTTP_HOST控制台和 HTTP API 的监听地址,默认 127.0.0.1。需要服务器 IP 或局域网访问时设置为 0.0.0.0
AGENT_GATEWAY_HTTP_PORT控制台和 HTTP API 的监听端口,默认 3000
VITE_API_BASE_URL前端请求 API 的基础地址。通常使用同源代理时不需要设置。
VITE_DEVICE_AGENT_PENDING_TIMEOUT_MS控制台等待设备智能体创建或响应的超时时间。
VITE_FF_A2A_MARKETPLACE_ENABLE是否显示 A2A Marketplace 相关入口。
VITE_DEVICE_ACCESS_CONTROL_BASE_URL设备接入控制服务地址,用于小程序等外部访问控制场景。
DATABASE_DRIVER数据存储驱动。默认使用本地数据存储;需要 PostgreSQL 时设置为 postgres
DATABASE_URLPostgreSQL 连接地址,仅在 DATABASE_DRIVER=postgres 时需要。

前端变量由前端开发服务或构建过程读取,修改后需要重启前端服务或重新构建。

语音

变量说明
VOICE_ENABLED是否启用语音通道。
VOICE_HOST语音服务监听地址。
VOICE_PORT语音服务监听端口,默认 3001
VITE_ASR_SAMPLE_RATE浏览器采集语音时使用的 ASR 采样率。
VOICE_REGION语音区域,支持 cnuseuglobal
VOICE_TLS_ENABLED是否启用语音服务 TLS。
VOICE_TLS_CERT_FILE / VOICE_TLS_KEY_FILE语音服务 TLS 证书和私钥路径。
VOICE_TLS_PASSPHRASE语音服务 TLS 私钥密码。

语音服务商变量:

服务商变量
火山引擎VOLCENGINE_SPEECH_APP_IDVOLCENGINE_SPEECH_ACCESS_KEYVOLCENGINE_ASR_RESOURCE_IDVOLCENGINE_ASR_LANGUAGEVOLCENGINE_TTS_RESOURCE_IDVOLCENGINE_TTS_VOICEVOLCENGINE_TTS_VOICESVOLCENGINE_TTS_EXPLICIT_LANGUAGEVOLCENGINE_TTS_SAMPLE_RATE
阿里云 DashScopeALIYUN_DASHSCOPE_API_KEYALIYUN_ASR_MODELALIYUN_ASR_LANGUAGEALIYUN_TTS_MODELALIYUN_TTS_VOICEALIYUN_TTS_VOICESALIYUN_TTS_SAMPLE_RATE
AWSAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_REGIONAWS_TRANSCRIBE_LANGUAGE_CODEAWS_POLLY_VOICEAWS_POLLY_SAMPLE_RATE
ElevenLabsELEVENLABS_API_KEYELEVENLABS_API_ENDPOINTELEVENLABS_ASR_MODEL_IDELEVENLABS_ASR_LANGUAGEELEVENLABS_TTS_MODEL_IDELEVENLABS_TTS_VOICEELEVENLABS_TTS_VOICESELEVENLABS_TTS_SAMPLE_RATE

更多说明见 语音交互

IM

这些通道也可以在控制台设置页配置:

通道变量
飞书FEISHU_ENABLEDFEISHU_APP_IDFEISHU_APP_SECRETFEISHU_ENCRYPT_KEYFEISHU_VERIFICATION_TOKENFEISHU_ALLOW_FROM
钉钉DINGTALK_ENABLEDDINGTALK_CLIENT_IDDINGTALK_CLIENT_SECRETDINGTALK_ALLOW_FROM
DiscordDISCORD_ENABLEDDISCORD_BOT_TOKENDISCORD_ALLOW_FROM
TelegramTELEGRAM_ENABLEDTELEGRAM_BOT_TOKENTELEGRAM_ALLOW_FROM
SlackSLACK_ENABLEDSLACK_BOT_TOKENSLACK_APP_TOKENSLACK_SIGNING_SECRETSLACK_ALLOW_FROMSLACK_CHANNEL_DIRECT_ENABLED

额外 IM 通道目前只支持环境变量,不会出现在控制台设置页:

通道变量
WhatsAppWHATSAPP_ENABLEDWHATSAPP_BRIDGE_URLWHATSAPP_BRIDGE_TOKENWHATSAPP_ALLOW_FROM
QQQQ_ENABLEDQQ_APP_IDQQ_APP_SECRETQQ_TOKENQQ_SANDBOXQQ_ALLOW_FROM
MatrixMATRIX_ENABLEDMATRIX_HOMESERVER_URLMATRIX_ACCESS_TOKENMATRIX_AUTOJOINMATRIX_ALLOW_FROM
MoChatMOCHAT_ENABLEDMOCHAT_SERVER_URLMOCHAT_TOKENMOCHAT_BOT_NAMEMOCHAT_ALLOW_FROM
EmailEMAIL_ENABLEDEMAIL_IMAP_HOSTEMAIL_IMAP_PORTEMAIL_IMAP_USEREMAIL_IMAP_PASSWORDEMAIL_IMAP_TLSEMAIL_SMTP_HOSTEMAIL_SMTP_PORTEMAIL_SMTP_USEREMAIL_SMTP_PASSWORDEMAIL_SMTP_TLSEMAIL_FROM_ADDRESSEMAIL_POLL_INTERVAL_MSEMAIL_ALLOW_FROM

更多说明见 IM 接入

日志

变量说明
LOG_LEVEL日志级别,支持 debuginfowarnerror
LOG_CONSOLE_ENABLED是否输出到控制台。
LOG_FILE_ENABLED是否输出到文件。
LOG_DIR日志目录。相对路径会解析到运行目录下。
LOG_MAX_SIZE_MB单个日志文件最大大小。
LOG_RETENTION_DAYS日志保留天数。
LOG_MAX_TOTAL_SIZE_MB日志文件总大小上限。
LOG_TIMEZONE日志文件时间使用 systemutc

日志使用方式见 日志

工具权限

变量说明
ENABLE_TOOL_EDITOR_MUTATIONS写入工具编辑器保存/删除权限初始值。
ENABLE_FILE_WRITE_TOOL写入 write_file 工具权限初始值。
ENABLE_EXECUTE_COMMAND_TOOL写入 execute_command 工具权限初始值。
ALLOWED_EXEC_COMMAND_PREFIXES写入允许执行的命令前缀初始值。

A2A

变量说明
A2A_ORG_ID / A2A_UNIT_IDA2A 注册和发现使用的组织与单元身份,默认都是 default

A2A 使用方式见 A2A