ZenOps 的钉钉集成支持两种消息模式:
- 流式卡片模式: 需要配置卡片模板ID,提供更好的交互体验
- 传统文本模式: 无需配置卡片模板,使用Markdown文本消息(默认模式)
系统会自动检测配置并选择合适的模式,如果卡片创建失败会自动降级为文本模式。
dingtalk:
enabled: true
mode: "stream"
app_key: "你的AppKey"
app_secret: "你的AppSecret"
agent_id: "你的AgentID"
# 不配置卡片模板
card_template_id: ""
enable_stream_card: false- ✅ 配置简单,无需额外设置
- ✅ 立即可用,无需创建卡片模板
- ✅ 稳定可靠,不依赖卡片API
⚠️ 无法实时流式更新⚠️ 消息样式较简单
🔍 正在查询阿里云 ECS,请稍候...
✅ 阿里云 ECS 查询完成
[查询结果]
- 登录 钉钉开放平台
- 进入你的应用
- 选择 "互动卡片" -> "创建卡片模板"
- 选择 "AI流式卡片" 类型
创建一个简单的卡片模板:
{
"config": {
"autoLayout": true,
"enableForward": true
},
"header": {
"title": {
"type": "text",
"text": "ZenOps 查询助手"
},
"logo": "@lALPDfJ6V_FPDmvNAfTNAfQ"
},
"contents": [
{
"type": "markdown",
"text": "{{content}}",
"id": "markdown_content"
}
]
}关键点:
- 必须包含一个名为
content的变量(通过{{content}}引用) - 卡片类型选择支持流式更新
创建完成后,复制模板ID(格式类似: xxx.schema)
dingtalk:
enabled: true
mode: "stream"
app_key: "你的AppKey"
app_secret: "你的AppSecret"
agent_id: "你的AgentID"
# 配置卡片模板ID
card_template_id: "你的模板ID.schema"
enable_stream_card: true./bin/zenops- ✅ 实时流式更新,体验更好
- ✅ 支持更丰富的样式
- ✅ 支持进度展示
⚠️ 需要额外配置⚠️ 依赖钉钉卡片API稳定性
[实时更新的卡片]
查询阿里云 ECS
⏳ 正在查询阿里云 ECS...
↓
✅ 阿里云 ECS 查询完成
[查询结果逐字流式显示]
系统具有完善的降级机制:
- 卡片模板ID未配置 -> 直接使用文本模式
- 卡片创建失败 -> 自动降级为文本模式
- 卡片更新失败 -> 记录警告,继续执行
无论哪种情况,都不会影响功能的正常使用。
A: 可以!默认使用文本模式,功能完全正常。
A: 查看日志:
Card template not configured, using text reply- 文本模式Creating stream card- 卡片模式
A: 不用担心,系统会自动降级为文本模式,并在日志中提示:
Failed to create card, fallback to text reply
A: 可以!修改配置后重启服务即可。
A:
- 新手: 推荐文本模式,简单可靠
- 进阶: 推荐卡片模式,体验更好
Card template not configured, using text reply
Sent text reply successfully
Creating stream card
Card created successfully
Streaming update: 0/1000 chars
Streaming update: finalized
Failed to create card, fallback to text reply
Sent text reply successfully
dingtalk:
card_template_id: "" # 不配置,使用文本模式
enable_stream_card: false理由: 配置简单,快速验证功能
dingtalk:
card_template_id: "xxx.schema" # 配置卡片模板
enable_stream_card: true理由: 提供更好的用户体验
- 📌 卡片模板不是必需的,不配置也能正常使用
- 📌 系统会自动检测配置并选择合适的模式
- 📌 自动降级机制保证系统稳定性
- 📌 可以根据需求随时切换模式
建议先使用文本模式验证功能,确认无误后再考虑配置卡片模板。