Skip to content

feat: Add 110+ agent integration tools across 9 categories#194

Draft
esafwan wants to merge 77 commits into
developfrom
feat/agent-tools-addition
Draft

feat: Add 110+ agent integration tools across 9 categories#194
esafwan wants to merge 77 commits into
developfrom
feat/agent-tools-addition

Conversation

@esafwan
Copy link
Copy Markdown
Contributor

@esafwan esafwan commented Mar 8, 2026

This PR adds comprehensive tool integrations for agents including Communication, Project Management, Search, Data Sources, Finance, Google Workspace, Developer tools, Cloud, and Media services. Tool implementations adapted for HUF's architecture.

Complete Tool Inventory (110 tools across 9 categories)

Category Service Tools Description
Communication (11)
Slack 6 slack_post_message, slack_get_channel_messages, slack_list_channels, slack_get_user_info, slack_list_users, slack_get_channel_info
Discord 4 discord_send_message, discord_get_channel_messages, discord_list_channels, discord_get_guild_info
Telegram 1 telegram_send_message
Project Management (37)
Jira 4 jira_create_issue, jira_get_issue, jira_update_issue, jira_search_issues
Linear 6 linear_create_issue, linear_get_issue, linear_update_issue, linear_search_issues, linear_list_teams, linear_get_team_issues
ClickUp 7 clickup_create_task, clickup_get_task, clickup_update_task, clickup_delete_task, clickup_list_tasks, clickup_create_list, clickup_get_list
Trello 6 trello_create_card, trello_get_card, trello_update_card, trello_delete_card, trello_list_boards, trello_get_board_cards
Notion 3 notion_create_page, notion_get_page, notion_query_database
Zendesk 1 zendesk_create_ticket
Cal.com 4 calcom_create_booking, calcom_get_booking, calcom_list_bookings, calcom_get_availability
Zoom 4 zoom_create_meeting, zoom_get_meeting, zoom_list_meetings, zoom_delete_meeting
2 Additional project management utilities
Search (11)
DuckDuckGo 2 duckduckgo_search, duckduckgo_news
Tavily 2 tavily_search, tavily_extract
Serper 3 serper_search, serper_news, serper_images
SerpApi 2 serpapi_search, serpapi_get_results
Brave Search 1 brave_search
Baidu 1 baidu_search
Data Sources (10)
HackerNews 2 hackernews_get_top_stories, hackernews_search
Reddit 2 reddit_get_subreddit_posts, reddit_search_posts
Wikipedia 1 wikipedia_search
YouTube 2 youtube_search_videos, youtube_get_captions
OpenWeather 3 openweather_current, openweather_forecast, openweather_air_quality
Finance (9)
YFinance 5 yfinance_get_quote, yfinance_get_history, yfinance_get_info, yfinance_search_tickers, yfinance_get_fundamentals
Shopify 4 shopify_get_products, shopify_get_orders, shopify_get_customers, shopify_create_product
Google Workspace (18)
Gmail 4 gmail_send_email, gmail_search_emails, gmail_get_email, gmail_list_labels
Google Sheets 3 google_sheets_read, google_sheets_write, google_sheets_append
Google Calendar 4 google_calendar_create_event, google_calendar_list_events, google_calendar_get_event, google_calendar_delete_event
Google Maps 4 google_maps_search_places, google_maps_get_place_details, google_maps_geocode, google_maps_directions
Google Drive 3 google_drive_list_files, google_drive_upload_file, google_drive_download_file
Developer Tools (11)
GitHub 6 github_get_repo, github_list_repos, github_search_repos, github_get_issue, github_create_issue, github_list_pull_requests
Docker 5 docker_list_containers, docker_run_container, docker_stop_container, docker_list_images, docker_build_image
Cloud (1)
AWS SES 1 aws_ses_send_email
Media (4)
Unsplash 2 unsplash_search_photos, unsplash_get_random_photo
Giphy 2 giphy_search_gifs, giphy_get_trending
Total: 110+ integration tools

Key Features

  • Auto-population: All tools auto-register as Agent Tool Functions on after_install/after_migrate
  • Environment-based credentials: Uses standard env vars (e.g., SLACK_BOT_TOKEN, GITHUB_TOKEN)
  • Custom Function pattern: All tools use pass_parameters_as_json for clean parameter handling
  • Consistent error handling: Standardized error responses across all integrations
  • Comprehensive registry: Central _registry.py with full metadata for all 110+ tools

Technical Details

Architecture:
huf/ai/tools/
├── init.py # Package exports
├── _registry.py # 110+ tool definitions with metadata
├── aws_ses.py # Cloud
├── baidu_search.py # Search
├── brave_search.py # Search
├── calcom.py # Project Management
├── clickup.py # Project Management
├── discord.py # Communication
├── docker_tools.py # Developer
├── duckduckgo.py # Search
├── giphy.py # Media
├── github.py # Developer
├── gmail.py # Google
├── google_calendar.py # Google
├── google_drive.py # Google
├── google_maps.py # Google
├── google_sheets.py # Google
├── hackernews.py # Data
├── jira_tools.py # Project Management
├── linear.py # Project Management
├── notion.py # Project Management
├── openweather.py # Data
├── reddit.py # Data
├── serpapi.py # Search
├── serper.py # Search
├── shopify.py # Finance
├── slack.py # Communication
├── tavily.py # Search
├── telegram.py # Communication
├── trello.py # Project Management
├── unsplash.py # Media
├── wikipedia.py # Data
├── yfinance.py # Finance
├── youtube.py # Data
├── zendesk.py # Project Management
└── zoom.py # Project Management

Usage Example:

Agent can now use any of these tools:

  • agent.run("Send a message to the Slack #general channel")
  • agent.run("Search for Python repositories on GitHub")
  • agent.run("Get the current weather in London")
  • agent.run("Create a new Jira ticket")

Implementation Notes

  • All tool handlers follow the same pattern: def tool_name(params: dict) -> str
  • Credentials loaded from environment variables (standard practice)
  • Rate limiting and error handling built into each handler
  • Compatible with HUF's streaming and async execution modes

✅ Testing

  • All Python files compile successfully
  • Tool registry properly formatted
  • Install hooks updated to auto-populate tools

After merge, users can:

  1. Set environment variables for desired integrations
  2. Add tools to agents via the HUF UI
  3. Start using 110+ integrations immediately

Credits

Tool handlers and patterns adapted from Agno (https://agno.com) - an open-source framework for building agentic systems. We've modified their implementations to work with HUF's Custom Function pattern and Frappe ecosystem.

Sanjusha-tridz and others added 30 commits March 4, 2026 11:43
fix: harden tool creation functions for migration safety
- Implement _resolve_stt_config helper to robustly resolve STT models and API keys,mirroring the architecture of _resolve_tts_config.
- Update handle_transcribe_audio logic to actively save the identified stt_model to the generated 'Agent Message' database record for better tracking.
- Add '_get_default_stt_model' to cleanly handle provider-specific model fallbacks.
feat: refactor audio transcription to support cross-provider overrides
…sponses

- Fixed early exit bug in 'litellm.run_stream' upon receiving the 'stop' finish reason, allowing the stream to fully process and capture OpenAI's delayed usage metadata chunk.
- Improved 'cached_tokens' extraction in agent_integration.py to support LiteLLM's internal 'cache_hit_tokens' alias.
- Fixed a scoping bug in run_agent_stream where cost calculation and conversation DB metrics updates were incorrectly nested inside a fallback block.
- Fix token extraction in agent_integration.py sync & stream to handle explicit None values.
- Fix litellm.py tracking logic to prevent '+= None' operations.
- Ensure 'cached_tokens' always falls back to 0 to prevent SQL cannot be null constraints and comparison errors in cost calculation.
Fix: Resolve Gemini Prompt Caching  & Streaming Cost Accumulation
fix: audio transcription issue in gemini
Sqlite Vector in Knowledge Source for Huf
fix: agent voice chat ui mobile responsiveness
- Add tools package initialization with handler imports
- Add _registry.py with 110+ tool definitions across 9 categories
- Update install.py to auto-populate tools on install/migrate
- Support for Custom Function pattern with pass_parameters_as_json
- Slack: 6 tools for channels, messages, and user management
- Discord: 4 tools for messages, channels, and guild operations
- Telegram: 1 tool for bot messaging
- Jira: 4 tools for issues and projects
- Linear: 6 tools for issues and teams
- ClickUp: 7 tools for tasks and lists
- Trello: 6 tools for cards and boards
- Notion: 3 tools for pages and databases
- Zendesk: 1 tool for tickets
- Cal.com: 4 tools for bookings and availability
- Zoom: 4 tools for meetings and webinars
- DuckDuckGo: 2 tools for web and news search
- Tavily: 2 tools for AI-powered search
- Serper: 3 tools for Google Search API
- SerpApi: 2 tools for search results
- Brave Search: 1 tool for privacy-focused search
- Baidu: 1 tool for Chinese search
- HackerNews: 2 tools for top stories and search
- Reddit: 2 tools for subreddit and post search
- Wikipedia: 1 tool for article search
- YouTube: 2 tools for video search and captions
- OpenWeather: 3 tools for current, forecast, and air quality
- YFinance: 5 tools for stock quotes, history, and info
- Shopify: 4 tools for products, orders, and customers
- Gmail: 4 tools for email management and search
- Google Sheets: 3 tools for spreadsheet operations
- Google Calendar: 4 tools for events and scheduling
- Google Maps: 4 tools for places and directions
- Google Drive: 3 tools for file management
- GitHub: 6 tools for repos, issues, and pull requests
- Docker: 5 tools for container and image management
- AWS SES: 1 tool for sending emails via Simple Email Service
- Unsplash: 2 tools for image search and random photos
- Giphy: 2 tools for GIF search and trending
esafwan added 29 commits March 10, 2026 04:27
@esafwan esafwan force-pushed the feat/agent-tools-addition branch from 94437b7 to 223f685 Compare March 10, 2026 01:06
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.

4 participants