Skip to content

Clarify pydantic-ai tool chaining and voice-agent flows #16

@fbraza

Description

@fbraza

Summary

  • document how pydantic-ai agents pass tool outputs via conversation history
  • describe recommended pattern for chaining slack.user.resolve then slack.private.message
  • capture voice-agent requirements for natural-language recipient selection

Acceptance Criteria

  • README or docs section outlines tool chaining behavior and prompts
  • guidance explains why resolver is a tool rather than injected object
  • voice UX considerations (pronunciation, ambiguous matches) are recorded for future work

Notes

  • reference findings from https://ai.pydantic.dev/llms-full.txt
  • include examples of LLM transcript showing resolver → message flow
  • mention limitations (no automatic tool chaining, LLM must orchestrate calls)

Example

### Example run
1. Agent calls `slack.user.resolve` with `{"names": ["jane"]}`
2. Tool returns `[{"requested": "jane", "user_id": "U123", "confidence": 0.93}]`
3. Agent calls `slack.private.message` with `{"users": ["U123"], "text": "Meeting at 3pm"}`
4. Delivery report confirms success

> Note: PydanticAI stores each tool response in the dialogue history, so the LLM can reuse fields in follow-up tool calls.

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