feat: Add 110+ agent integration tools across 9 categories#194
Draft
esafwan wants to merge 77 commits into
Draft
feat: Add 110+ agent integration tools across 9 categories#194esafwan wants to merge 77 commits into
esafwan wants to merge 77 commits into
Conversation
fix: harden tool creation functions for migration safety
feat: Update Project documentation
…nd add model field for STT
- 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
Feat/agent voice example
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
94437b7 to
223f685
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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)
Key Features
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:
Implementation Notes
✅ Testing
After merge, users can:
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.