tencentcloud-agentobs-sdk-dsh,将 DSH 原生生命周期转换为 Agent Trace 数据并上报到日志服务(Cloud Log Service,CLS)。接入方式 | 说明 | 推荐场景 |
使用支持 Skill 的 AI 工具,由 AI 自动创建或复用日志主题、识别 DSH 环境并完成插件接入与分析。 | 使用支持 Skill 的 AI 工具,希望一键接入、减少手动配置。 | |
按步骤安装 DSH 插件,手动填写地域接入点、日志主题、密钥等参数完成接入。 | 需要精细化控制接入参数,或所用工具不支持 Skill。 |
ap-guangzhou。方式一直接填写 Region;方式二还需获取该地域对应的 CLS Endpoint。>=0.1.0-rc.6 <0.2.0。请使用腾讯云 Agent 可观测接入 Skill:https://skillhub.cn/skills/tencentcloud-cls-agent-obs帮我把当前 DeepSeek Harness 接入腾讯云 Agent 可观测。接入方式:DeepSeek HarnessRegion:ap-guangzhou
ap-guangzhou.cls.tencentcs.com。dsh plugin --profile web add tencentcloud-agentobs-sdk-dsh
dsh plugin --profile headless add tencentcloud-agentobs-sdk-dsh
dsh plugin --profile harness add tencentcloud-agentobs-sdk-dsh
ERR_PNPM_IGNORED_BUILDS,请进入对应 Profile 目录执行:cd ~/.dsh/profiles/webecho "enable-scripts=true" >> .npmrcpnpm install
export CLS_ENDPOINT=ap-guangzhou.cls.tencentcs.comexport CLS_TOPIC_ID=<日志主题 ID>export CLS_SECRET_ID=<SecretId>export CLS_SECRET_KEY=<SecretKey>export CLS_SERVICE_NAME=dsh-agent
环境变量 | 是否必填 | 说明 |
CLS_ENDPOINT | 是 | 以广州地域为例,外网域名:ap-guangzhou.cls.tencentyun.com,内网域名:ap-guangzhou.cls.tencentcs.com。 |
CLS_TOPIC_ID | 是 | 步骤 1 中获取的日志主题 ID。 |
CLS_SECRET_ID | 是 | |
CLS_SECRET_KEY | 是 | |
CLS_SERVICE_NAME | 否 | 服务名称,用于在 CLS 中区分不同 DSH 实例或业务。默认值为 deepseek-harness。 |
$DSH_HOME/profiles/<profile>/cordis.patch.yml。如果未设置 DSH_HOME,默认路径通常为 ~/.dsh/profiles/<profile>/cordis.patch.yml。- id: cls-observabilityconfig:enabled: trueendpoint: ap-guangzhou.cls.tencentcs.comtopicId: <Trace 日志主题 ID>secretId: <SecretId>secretKey: <SecretKey>serviceName: dsh-agentcaptureContent: truebatchMaxSize: 32flushIntervalMs: 5000debug: false
dsh --profile web
[cls-dsh] loaded; endpoint=<CLS Endpoint>; topic=<Topic ID 前缀>...; content=enabled
ENTRY:一次请求进入 DSH。AGENT:Agent 执行过程。STEP:一次 ReAct 推理步骤。CHAT:一次实际模型调用。TOOL:一次工具调用。CHAT Span,确认可查看模型名称、耗时、TTFT、Token 用量和状态信息。TOOL Span,确认可查看工具名称、调用耗时和执行状态。* | SELECT traceID, spanID, parentSpanID, spanKind, name, durationMs, statusCodeORDER BY __TIMESTAMP__ DESCLIMIT 50
traceID:"<Trace ID>"
parentSpanID 能够关联到对应父 Span,表示 Trace 数据已成功上报。export OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=false
- id: cls-observabilityconfig:captureContent: false
dsh plugin --profile web update
--profile 参数。更新完成后,请重启对应的 DSH 进程。dsh plugin --profile web remove tencentcloud-agentobs-sdk-dshdsh plugin --profile headless remove tencentcloud-agentobs-sdk-dshdsh plugin --profile harness remove tencentcloud-agentobs-sdk-dsh
配置项 | 默认值 | 说明 |
enabled | true | 是否启用采集。设置为 false 时,无需卸载插件即可停止采集。 |
endpoint | CLS_ENDPOINT | CLS API 接入点。 |
topicId | CLS_TOPIC_ID | Trace 日志主题 ID。 |
secretId | CLS_SECRET_ID | 腾讯云访问凭证 SecretId。 |
secretKey | CLS_SECRET_KEY | 腾讯云访问凭证 SecretKey。 |
serviceName | deepseek-harness | 服务名称。 |
resourceAttributes | {} | 写入 Span 的自定义资源属性,键和值均为字符串。 |
captureContent | true | 是否采集提示词、模型回复、工具参数与工具结果。 |
contentMaxChars | 128000 | 单个内容属性保留的最大字符数,超出部分将被截断。 |
batchMaxSize | 32 | 单次批量上报的最大 Span 数量。 |
maxQueueSize | 2048 | 内存队列的最大 Span 数量。超过上限时,插件将丢弃最早的部分数据,避免阻塞 DSH。 |
flushIntervalMs | 5000 | 定时刷新间隔,单位为毫秒。 |
retryTimes | 3 | CLS SDK 的请求重试次数。 |
debug | false | 是否输出插件调试日志。 |
sessionID 关联同一会话中的多轮 Trace。ENTRY└── AGENT└── STEP├── CHAT└── TOOL
Span 类型 | 名称格式 | 说明 |
ENTRY | enter_application | 一次请求进入 DSH,是当前 Trace 的根 Span。 |
AGENT | invoke_agent {agentName} | Agent 执行过程,汇总该 Turn 的模型、Token 和结束状态。 |
STEP | react round_{step} | 一次 ReAct 推理步骤。 |
CHAT | chat {model} | 一次实际模型调用。模型重试会生成新的 CHAT Span,不会与前一次合并。 |
TOOL | execute_tool {toolName} | 一次工具调用,包含工具名称、调用 ID、耗时和状态。 |
CHAT Span,避免框架内部调用影响业务侧模型调用统计。[cls-dsh] loaded 信息,且没有配置缺失提示。CLS_ENDPOINT 与 Trace 日志主题位于同一地域。CLS_TOPIC_ID 为日志主题 ID,而不是 Agent 可观测应用 ID。debug: true,重启 DSH 后查看以 [cls-dsh] 开头的日志。captureContent 是否设置为 false。OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT 是否设置为 false、no、off、disabled 或 0。文档反馈