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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions