Skip to content

feat: Add GoogleSlidesTools toolkit (Closes #6829)#6830

Open
anshul-jain-devx108 wants to merge 11 commits intoagno-agi:mainfrom
anshul-jain-devx108:feat/add-google-slide-tools
Open

feat: Add GoogleSlidesTools toolkit (Closes #6829)#6830
anshul-jain-devx108 wants to merge 11 commits intoagno-agi:mainfrom
anshul-jain-devx108:feat/add-google-slide-tools

Conversation

@anshul-jain-devx108
Copy link

Summary

Adds a new GoogleSlidesTools toolkit that enables Agno agents to create, read, and manage Google Slides presentations via the Google Slides API.

This completes Google Workspace coverage in Agno — Sheets, Docs, Drive, Calendar, Gmail all have toolkits, but Slides was missing.

The toolkit provides 19 tools covering presentation management, slide operations, content creation, content reading, and advanced batch updates. Authentication follows the same pattern as GoogleSheetsTools (OAuth, env vars, service account).

Issue: #6829

Type of change

  • Bug fix
  • New feature
  • Breaking change
  • Improvement
  • Model update
  • Other:

Checklist

  • Code complies with style guidelines
  • Ran format/validation scripts (./scripts/format.sh and ./scripts/validate.sh)
  • Self-review completed
  • Documentation updated (comments, docstrings)
  • Examples and guides: Relevant cookbook examples have been included or updated (if applicable)
  • Tested in clean environment
  • Tests added/updated (if applicable)

Additional Notes

Files Added

File Purpose
libs/agno/agno/tools/googleslides.py Toolkit source (19 tools)
libs/agno/tests/unit/tools/test_googleslides.py Toolkit Unit Test
cookbook/91_tools/googleslides_tools.py Cookbook example

Tools Included

Presentation Management: create, get, list, delete, get_metadata
Slide Operations: add, delete, duplicate, move
Content Creation: text box, table, background image, YouTube video, Drive video
Content Reading: read all text, slide text, get page, thumbnail URL
Advanced: batch update with request type validation

Dependencies

Uses the same packages as existing Google toolkits — no new dependencies:

  • google-api-python-client
  • google-auth-httplib2
  • google-auth-oauthlib

Validation Results

./scripts/format.sh → 1 file reformatted, all checks passed
./scripts/validate.sh → ruff: passed, mypy: 0 issues in 760 files, cookbook: 0 violations

Environment Variables

# OAuth (option 1)
export GOOGLE_CLIENT_ID=your_client_id
export GOOGLE_CLIENT_SECRET=your_client_secret
export GOOGLE_PROJECT_ID=your_project_id

# Service Account (option 2)
export GOOGLE_SERVICE_ACCOUNT_FILE=path/to/service-account.json

@anshul-jain-devx108 anshul-jain-devx108 requested a review from a team as a code owner March 2, 2026 09:01
@anshul-jain-devx108
Copy link
Author

Hi @ashpreetbedi , @kausmeows, @willemcdejongh , I've submitted this PR and would love a review when you get a chance! Also, could someone approve the 2 pending workflows? Happy to make any requested changes.

@anshul-jain-devx108
Copy link
Author

Hello @uzaxirr, @kausmeows, @ashpreetbedi , I’ve refactored the code according to PR #6833.I would really appreciate a review when you have time. Happy to make any further changes if needed.

Copy link

@andreampiovesana andreampiovesana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants