agentscope-ai / agentscope-ai/QwenPaw

飞书流式卡片: 思考过程输出完成后自动折叠

未关闭
#7,570 2 条评论 0 个 reaction 已指派 1 人 已被 @hongxicheng 认领 在 GitHub 查看
主要语言
Python
星标
34.9k
派生
3.1k
平均合并
1 天 15 小时
30 天内合并 PR
225

描述

2.1.0 的飞书 CardKit 流式输出(#3001)用着不错。但目前思考过程和回复一样是
普通 markdown 流式卡,强制思考的模型(GLM-5.x 系列)思考文本很长,输出完仍
整屏占着,把最终回复顶到很远。回看场景其实很少,希望思考卡在流式结束后自动
折叠。
已验证可行,本地这样改后稳定运行一段时间:
1. 思考卡用 JSON 2.0 的 collapsible_panel 包裹 markdown,流式期间 expanded: true
2. 流式更新接口(PUT elements/:element_id/content)对嵌套在折叠面板内的
markdown 正常工作,打字机效果不受影响
3. 流式结束后 PATCH /cards/:card_id/elements/:element_id,body 传
{"partial_element": "{\"expanded\": false}", "sequence": n} 即可收起面板,
header 顺便改成「思考过程(已完成·点击展开)」
几个坑:
- settings 接口是 PATCH 方法,用 PUT 会 404
- patch 元素的 body 要用 partial_element 字段包一层(JSON 字符串)
- element_id ≤ 20 字符、字母开头
改动点很小:_create_streaming_card 里 reasoning 卡把 markdown 换成面板结构
(内层 element_id 不变,现有更新逻辑不用动);_finalize_streaming_card 里
settings 之后加一次面板 patch。顺带一提,预创建的占位卡("..."那张)不再被
思考流复用后,适合改成状态卡(「正在思考与处理中」→「✅ 任务已完成」)。
环境:qwenpaw 2.1.0 / 2.2.0(feishu/channel.py 两版一致),飞书 CardKit v1,
2026-09 实测。需要的话补丁 diff 可以附上。

Image

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。