Skip to content

v3.40.0

Choose a tag to compare

@zimeg zimeg released this 10 Feb 22:09
· 7 commits to main since this release
8b0bd0b

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, and chat_stopStream
  • 🛟 Chat Stream Helper: streamer = client.chat_stream(...), streamer.append(...)

📖 Documentation

🍿 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

📦 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

Full Changelog: v3.39.0...v3.40.0
Milestone: https://github.com/slackapi/python-slack-sdk/milestone/115