v3.40.0
Agent Thinking Steps: Display Tasks/Tools, Plans, and Markdown Text
🍿 Preview: Display as Plan
2026-02-10-thinking-steps-display-mode-plan.mov
🍿 Preview: Display as Timeline
2026-02-10-thinking-steps-display-mode-timeline.mov
📺 Chat Stream with 2 Display Mode
- Plan Display Mode
- Timeline Display Mode
👾 Chat Stream Structured Content
Now, you can display a mixture of structured content called "chunks":
- 🔠 Markdown Text Block to format your text with standard markdown
- ☑️ Task Card Block to display a single task, representing an AI Tool Call or general action
- 🗒️ Plan Block to display a collection of related tasks
- 📚 URL Sources Element to display references within a task card block
Available in:
- 🔌 API Methods:
chat_startStream,chat_appendStream, andchat_stopStream - 🛟 Chat Stream Helper:
streamer = client.chat_stream(...),streamer.append(...)
📖 Documentation
- Announcements
- Guides
- Block Kit
- References
- API Methods: chat.startStream, chat.appendStream, and chat.stopStream
- Python SDK Reference
🍿 Getting Started
$ slack create
# → AI Agent App
# Bolt for JavaScript
# → Bolt for Python🕹️ Example
streamer = client.chat_stream(
channel=channel_id,
recipient_team_id=team_id,
recipient_user_id=user_id,
thread_ts=thread_ts,
task_display_mode="plan",
)
streamer.append(
chunks=[
MarkdownTextChunk(
text="Hello.\nI have received the task. ",
),
MarkdownTextChunk(
text="This task appears manageable.\nThat is good.",
),
TaskUpdateChunk(
id="001",
title="Understanding the task...",
status="in_progress",
details="- Identifying the goal\n- Identifying constraints",
),
TaskUpdateChunk(
id="002",
title="Performing acrobatics...",
status="pending",
),
],
)
time.sleep(4)
streamer.append(
chunks=[
PlanUpdateChunk(
title="Adding the final pieces...",
),
TaskUpdateChunk(
id="001",
title="Understanding the task...",
status="complete",
details="\n- Pretending this was obvious",
output="We'll continue to ramble now",
),
TaskUpdateChunk(
id="002",
title="Performing acrobatics...",
status="in_progress",
),
],
)
time.sleep(4)
streamer.stop(
chunks=[
PlanUpdateChunk(
title="Decided to put on a show",
),
TaskUpdateChunk(
id="002",
title="Performing acrobatics...",
status="complete",
details="- Jumped atop ropes\n- Juggled bowling pins\n- Rode a single wheel too",
),
MarkdownTextChunk(
text="The crowd appears to be astounded and applauds :popcorn:"
),
],
blocks=create_feedback_block(),
)What's Changed
🚀 Enhancements
- feat: add thinking steps support as chunks to chat stream with plan and task blocks by @zimeg in #1824
🐛 Bug Fixes
- fix: move away from datetime.utcfromtimestamp for the state and installation stores by @WilliamBergamin in #1798
📚 Documentation
- fix: broken link to CI from readme by @WilliamBergamin in #1805
- docs: updates outmoded links by @lukegalbraithrussell in #1807
📦 Dependencies
- chore(deps): bump actions/checkout from 5.0.0 to 6.0.0 by @dependabot[bot] in #1799
- chore(deps): bump actions/setup-python from 6.0.0 to 6.1.0 by @dependabot[bot] in #1800
- chore(deps): bump docutils from 0.22.2 to 0.22.3 by @dependabot[bot] in #1802
- chore(deps): update mypy requirement from <=1.18.2 to <=1.19.0 by @dependabot[bot] in #1801
- chore(deps): bump actions/checkout from 6.0.0 to 6.0.1 by @dependabot[bot] in #1817
- chore(deps): bump actions/stale from 10.1.0 to 10.1.1 by @dependabot[bot] in #1816
- chore(deps): bump docutils from 0.22.3 to 0.22.4 by @dependabot[bot] in #1812
- chore(deps): bump codecov/codecov-action from 5.5.1 to 5.5.2 by @dependabot[bot] in #1815
- chore(deps): bump actions/download-artifact from 6.0.0 to 7.0.0 by @dependabot[bot] in #1813
- chore(deps): bump actions/upload-artifact from 5.0.0 to 6.0.0 by @dependabot[bot] in #1814
- chore(deps): bump black from 23.3.0 to 24.3.0 in /requirements by @dependabot[bot] in #1786
- chore(deps): update mypy requirement from <=1.19.0 to <=1.19.1 by @dependabot[bot] in #1827
- chore(deps): bump actions/setup-python from 6.1.0 to 6.2.0 by @dependabot[bot] in #1828
- chore(deps): bump actions/checkout from 6.0.1 to 6.0.2 by @dependabot[bot] in #1829
🧰 Maintenance
- fix: improve CI and helper scripts by @WilliamBergamin in #1803
- ci(deps): auto-approve / auto-merge dependencies from dependabot by @mwbrooks in #1830
- chore(release): version 3.40.0 by @zimeg in #1831
Full Changelog: v3.39.0...v3.40.0
Milestone: https://github.com/slackapi/python-slack-sdk/milestone/115