Skip to content

Add standardized planner content blocks helper (community module) #162

Description

@vaibhav-patel

What

Add a small, read-only helper that converts planner-produced google.genai.types.Part lists into provider-agnostic, typed "content blocks" modelled after LangChain v1's standard content blocks.

ADK planners (PlanReActPlanner, BuiltInPlanner) emit reasoning as parts with thought=True, and PlanReActPlanner additionally annotates text with inline /*PLANNING*/-style tags that consumers must parse by hand. This helper turns that into a list of typed blocks — reasoning (with a reasoning_kind of planning/replanning/reasoning/action), text, and tool_call — so consumers branch on a type discriminator instead of re-parsing raw text.

It is additive and read-only: it never mutates the parts and doesn't change how planners build instructions or post-process responses. Existing consumers of the Part output are unaffected.

Background

Originally proposed in core ADK (google/adk-python#6185). That PR was closed and the maintainer suggested the feature belongs in adk-python-community as a community module. This issue tracks landing it here.

Proposed location

New module src/google/adk_community/planners/ exporting parts_to_content_blocks / part_to_content_block (plus the ReasoningContentBlock / TextContentBlock / ToolCallContentBlock TypedDicts, ReasoningKind, and ContentBlock). Self-contained — depends only on google-genai (already a transitive dependency via google-adk), so no new optional-dependency group is needed. Unit tests under tests/unittests/planners/.

A PR implementing this is ready to open.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions