3636| ` OPENCODE_INTERNAL_ALLOWED_TOOLS ` | ` (none) ` | 当请求未传入 ` tools ` 时允许使用的 OpenCode 内置工具列表,逗号分隔 |
3737| ` OPENCODE_INTERNAL_TOOL_METRICS_ENABLED ` | ` true ` | 输出 internal allowlist 模式的调试/指标日志 |
3838| ` OPENCODE_TOOL_DISCOVERY_FIXTURE ` | ` (none) ` | 集成测试/本地调试用的固定后端工具 ID 列表,逗号分隔 |
39+ | ` OPENCODE_HEALTH_DETAILS_ENABLED ` | ` true ` | 控制 ` /health/details ` 是否暴露 |
40+ | ` OPENCODE_HEALTH_DETAILS_REQUIRE_AUTH ` | ` true ` | 控制 ` /health/details ` 是否要求 Bearer 认证 |
41+ | ` OPENCODE_METRICS_ENABLED ` | ` false ` | 控制 Prometheus ` /metrics ` 是否暴露 |
42+ | ` OPENCODE_METRICS_REQUIRE_AUTH ` | ` true ` | 控制 ` /metrics ` 是否要求 Bearer 认证 |
3943| ` USE_ISOLATED_HOME ` | ` false ` | 使用隔离的 OpenCode 配置目录 |
4044| ` PROMPT_MODE ` | ` standard ` | 提示词处理模式 |
4145| ` OMIT_SYSTEM_PROMPT ` | ` false ` | 忽略传入的 system prompt |
@@ -132,6 +136,8 @@ OpenCode2API 现在支持把外部客户端传入的 OpenAI-compatible `tools`
132136### 结构化健康诊断接口
133137
134138可以通过 ` GET /health/details ` 接口获取代理内部的运行状态与指标。这不仅有助于问题排查,也是用于编写集成行为测试的重要依据。
139+ - ` OPENCODE_HEALTH_DETAILS_ENABLED=false ` 时,接口返回 ` 404 ` 。
140+ - ` OPENCODE_HEALTH_DETAILS_REQUIRE_AUTH=true ` 时,接口要求 Bearer 认证;否则返回 ` 401 ` 。
135141返回值格式如下:
136142``` json
137143{
@@ -154,11 +160,34 @@ OpenCode2API 现在支持把外部客户端传入的 OpenAI-compatible `tools`
154160 "tool_ids_cached" : true ,
155161 "tool_id_count" : 3 ,
156162 "age_ms" : 12000
163+ },
164+ "audit" : {
165+ "available" : true ,
166+ "fields" : [
167+ " requestedAllowlist" ,
168+ " allowedToolNames" ,
169+ " deniedRequestedTools" ,
170+ " resolutionPath" ,
171+ " resultingMode"
172+ ]
157173 }
158174 }
159175}
160176```
161177
178+ ### Prometheus 指标接口
179+
180+ 可以通过 ` GET /metrics ` 获取 Prometheus 文本格式指标。
181+ - ` OPENCODE_METRICS_ENABLED=false ` 时,接口返回 ` 404 ` 。
182+ - ` OPENCODE_METRICS_REQUIRE_AUTH=true ` 时,接口要求 Bearer 认证;否则返回 ` 401 ` 。
183+ 当前暴露的核心指标包括:
184+ - ` opencode_internal_tool_mode_requests_total{mode="external_bridge"} `
185+ - ` opencode_internal_tool_mode_requests_total{mode="internal_allowlist"} `
186+ - ` opencode_internal_tool_mode_requests_total{mode="disabled"} `
187+ - ` opencode_internal_tool_discovery_failures_total `
188+ - ` opencode_internal_tool_fallback_disabled_total `
189+ - ` opencode_internal_tool_cache_ids `
190+
162191### 推荐生产配置
163192
164193``` bash
@@ -168,11 +197,16 @@ OPENCODE_EXTERNAL_TOOLS_CONFLICT_POLICY=namespace
168197OPENCODE_INTERNAL_ALLOWED_TOOLS=web_fetch
169198OPENCODE_INTERNAL_TOOL_METRICS_ENABLED=true
170199OPENCODE_TOOL_DISCOVERY_FIXTURE=
200+ OPENCODE_HEALTH_DETAILS_ENABLED=true
201+ OPENCODE_HEALTH_DETAILS_REQUIRE_AUTH=true
202+ OPENCODE_METRICS_ENABLED=false
203+ OPENCODE_METRICS_REQUIRE_AUTH=true
171204OPENCODE_PROXY_PROMPT_MODE=plugin-inject
172205OPENCODE_PROXY_OMIT_SYSTEM_PROMPT=true
173206OPENCODE_PROXY_AUTO_CLEANUP_CONVERSATIONS=true
174207```
175208
209+
176210---
177211
178212## 🎯 Prompt Mode 说明
@@ -195,11 +229,16 @@ OPENCODE_EXTERNAL_TOOLS_CONFLICT_POLICY=namespace
195229OPENCODE_INTERNAL_ALLOWED_TOOLS=web_fetch
196230OPENCODE_INTERNAL_TOOL_METRICS_ENABLED=true
197231OPENCODE_TOOL_DISCOVERY_FIXTURE=
232+ OPENCODE_HEALTH_DETAILS_ENABLED=true
233+ OPENCODE_HEALTH_DETAILS_REQUIRE_AUTH=true
234+ OPENCODE_METRICS_ENABLED=false
235+ OPENCODE_METRICS_REQUIRE_AUTH=true
198236OPENCODE_PROXY_PROMPT_MODE=plugin-inject
199237OPENCODE_PROXY_OMIT_SYSTEM_PROMPT=true
200238OPENCODE_PROXY_AUTO_CLEANUP_CONVERSATIONS=true
201239```
202240
241+
203242### 💻 本地开发
204243
205244``` bash
0 commit comments