Commit Graph
64 Commits
Author SHA1 Message Date
Dhivya-Bharathy b339c5b3aa Add Kimi2_Intelligent_Agents: 10 specialized AI agents 2025-07-15 12:57:48 +05:30
Mervin Praison c84a59ab4d feat: implement PostHog event tracking in telemetry module 2025-07-15 07:13:38 +01:00
github-actions[bot]andMervin Praison a604cd9584 fix: Replace eval() with safe AST-based expression evaluator and remove unused imports
- Replace insecure eval() usage with ast-based safe expression evaluator in README and combined examples
- Remove unused os imports from all Python example files
- Update comments to show import os inline for API key setup
- Addresses security vulnerabilities identified in code review

Co-authored-by: Mervin Praison <[email protected]>
2025-07-14 20:38:04 +00:00
github-actions[bot]andMervin Praison cb043da19c feat: Add Gemini internal tools examples
- Add Google Search tool example (gemini-google-search.py)
- Add URL Context tool example (gemini-url-context.py)
- Add Code Execution tool example (gemini-code-execution.py)
- Add combined tools example (gemini-internal-tools-combined.py)
- Add comprehensive documentation (README_GEMINI_INTERNAL_TOOLS.md)

These examples demonstrate how to use Gemini''s built-in internal tools
through PraisonAI''s existing tool system without any code changes.

Co-authored-by: Mervin Praison <[email protected]>
2025-07-14 20:17:41 +00:00
Mervin Praison c5c57dff26 Merge pull request #891 from MervinPraison/claude/issue-870-20250714_062116
feat: add support for Gemini embedding models
2025-07-14 15:40:47 +01:00
Mervin Praison 573b9efcc1 Rename docs/gemini-embeddings.md to examples/python/memory/gemini-embeddings.md 2025-07-14 15:40:21 +01:00
Mervin Praison 8a6c4eec7f Rename examples/python/tools/searxng-search.py to examples/python/tools/searxng/searxng-search.py 2025-07-14 15:31:47 +01:00
Mervin Praison 4e77a6a019 Rename examples/python/tools/trafilatura_example.py to examples/python/tools/trafilatura/trafilatura_example.py 2025-07-14 15:31:03 +01:00
Mervin Praison 41e33c09e0 Rename examples/python/tools/custom_trafilatura_tools.py to examples/python/tools/trafilatura/custom_trafilatura_tools.py 2025-07-14 15:30:54 +01:00
Mervin Praison 96f00e2172 Merge pull request #881 from MervinPraison/claude/issue-869-20250713_205041
feat: integrate Trafilatura for high-quality URL content extraction
2025-07-14 15:29:39 +01:00
github-actions[bot]andMervin Praison d60021cb40 refactor: move Trafilatura from core to custom tool example
- Remove Trafilatura from core praisonaiagents package
- Create custom tool implementation in examples/python/tools/
- Update example to demonstrate custom tool usage with agents
- Remove dependencies from pyproject.toml
- Remove from tools __init__.py and README.md
- Keep all functionality as standalone custom tool

This change follows the request to not integrate into core package
but provide as custom tool example instead.

Co-authored-by: Mervin Praison <[email protected]>
2025-07-14 11:55:10 +00:00
Mervin Praison e1c90bf569 Merge pull request #880 from MervinPraison/claude/issue-866-20250713_204435
feat: Add multi-provider/multi-model support with intelligent routing
2025-07-14 11:07:02 +01:00
github-actions[bot]andMervin Praison d79443868f refactor: Rename MultiModelAgent to RouterAgent for better clarity
- Renamed MultiModelAgent class to RouterAgent throughout codebase
- Updated multi_model_agent.py -> router_agent.py
- Updated all imports, exports, and references in:
  - src/praisonai-agents/praisonaiagents/agent/__init__.py
  - examples/python/agents/multi-provider-agent.py
  - examples/python/agents/MULTI_PROVIDER_README.md
  - src/praisonai-agents/test_multi_provider.py
- RouterAgent better reflects the primary purpose of intelligent model routing
- Maintains all existing functionality and backward compatibility

Co-authored-by: Mervin Praison <[email protected]>
2025-07-14 08:50:14 +00:00
Mervin Praison 26376a77af Merge pull request #890 from Dhivya-Bharathy/grok4-agents-batch-upload
feat: Add 10 Grok4 Intelligent Agent Examples
2025-07-14 07:31:17 +01:00
claude[bot]andMervin Praison 76032be618 feat: add support for Gemini embedding models
- Extract embedding model from embedder configuration in Memory class
- Replace hardcoded "text-embedding-3-small" with configurable model
- Support any embedding model available through LiteLLM
- Maintain backward compatibility (defaults to OpenAI model)
- Add documentation and examples for Gemini embeddings
- Update memory_example.py to show configuration options

Fixes #870

Co-authored-by: Mervin Praison <[email protected]>
2025-07-14 06:27:18 +00:00
claude[bot]andMervin Praison 80f5ba940b fix: address code review issues for Trafilatura integration
- Fix asyncio blocking by using asyncio.to_thread() for all synchronous calls in async functions
- Remove dead code: module-level __call__ function that would never be invoked
- Replace global variable with module-level trafilatura import for cleaner code
- Remove unused json import in test file
- Improve error detection from fragile string check to robust pattern
- Add clarifying comments about safe circular imports due to lazy loading

Co-authored-by: Mervin Praison <[email protected]>
2025-07-14 06:26:49 +00:00
devops-vestradata 65791781e2 Add 10 grok4 intelligent agent files 2025-07-14 11:56:23 +05:30
claude[bot]andMervin Praison fbd0a736f0 fix: Fix critical issues in multi-provider implementation
- Changed TaskComplexity from string Enum to IntEnum for proper ordering comparisons
- Fixed manual routing logic to use llm_model property correctly
- Removed private attribute access by storing api_key and base_url locally
- Improved context size estimation from char count to token approximation
- Removed unused imports (Callable, TaskComplexity, ModelProfile)
- Fixed unnecessary f-string in error message
- Added TODO for token tracking implementation
- Fixed inconsistent model names in documentation

Co-authored-by: Mervin Praison <[email protected]>
2025-07-14 01:16:18 +00:00
claude[bot]andMervin Praison 16598104ab feat: integrate Trafilatura for high-quality URL content extraction
- Add trafilatura_tools.py with extract_content, extract_metadata, extract_text_only, and compare_extraction functions
- Register Trafilatura tools in __init__.py for easy imports
- Add trafilatura and newspaper3k as optional [web] dependencies
- Include comprehensive URL validation to prevent SSRF attacks
- Update tools README with Trafilatura documentation
- Add detailed example file showing various usage patterns
- Create test script for verification
- Maintain backward compatibility with existing URL extraction tools

Resolves #869

Co-authored-by: Mervin Praison <[email protected]>
2025-07-13 21:05:30 +00:00
claude[bot]andMervin Praison 4622bcda43 feat: Add multi-provider/multi-model support with intelligent routing
- Add ModelRouter for intelligent model selection based on task complexity
- Create MultiModelAgent class supporting multiple models per agent
- Implement routing strategies: auto, cost-optimized, performance-optimized
- Add pre-configured profiles for 8+ popular models
- Include usage tracking and cost estimation
- Maintain full backward compatibility
- Add comprehensive examples and documentation

Fixes #866

Co-authored-by: Mervin Praison <[email protected]>
2025-07-13 20:53:06 +00:00
claude[bot]andMervin Praison 0dce4de4a4 fix: add return_dict=True to fix TypeError in prompt_chaining tests
The workflow.start() method returns a string by default (for backward compatibility),
but the test files were expecting a dictionary. Fixed by adding return_dict=True
parameter to get the expected dictionary format with task_results and task_status keys.

Fixes #841

Co-authored-by: Mervin Praison <[email protected]>
2025-07-12 08:23:56 +00:00
Mervin Praison e2512b38c0 Merge pull request #814 from Dhivya-Bharathy/grok4-10-new-agents
Add 10 New Grok4 Intelligent Agents Covering Diverse Domains
2025-07-11 11:46:42 +01:00
claude[bot]andMervin Praison 17f3aab1e1 refactor: complete moving HostedMCPServer to examples folder
- Add hosted_server.py to examples/python/custom_tools/
- Update documentation to clarify this is an example implementation
- Keep starlette dependency as it's still used by Agent.launch() for MCP

This makes HostedMCPServer an example implementation rather than
a core package component.

Co-authored-by: Mervin Praison <[email protected]>
2025-07-11 07:41:27 +00:00
devops-vestradata 1efdaac18f Add 10 new Grok4 intelligent agents 2025-07-11 12:29:26 +05:30
Mervin Praison 4abe80a563 Merge pull request #786 from Dhivya-Bharathy/grok4-intelligent-agents-examples
Add grok4_intelligent_agents Folder to Exa Tool with 5 Agent scripts
2025-07-10 21:00:03 +01:00
devops-vestradata f49b5c368c Add grok4_intelligent_agents with 5 agent scripts 2025-07-10 14:53:31 +05:30
devops-vestradata 7f6e300a9e Add 5 domain-specific AI agent folders (Finance, Health, Programming, Research, Social Media) to exa-tool 2025-07-09 18:51:38 +05:30
claude[bot]andMervin Praison eafc33976c feat: Add examples for documented features
Add comprehensive examples for:
- Chat with PDF functionality
- Code Agent with self-reflection and tools
- Math Agent for calculations and problem solving
- Routing patterns (conditional, loops, decision trees)
- Self-reflection details and configuration
- Reasoning extraction (Chain of Thought, patterns)

These examples demonstrate the features documented in https://docs.praison.ai/

Co-authored-by: Mervin Praison <[email protected]>
2025-07-07 17:56:14 +00:00
claude[bot]andMervin Praison 894a95cfc2 feat: Add minimal latency tracking as custom tool for MCP servers
- Create standalone latency tracking tool without core file modifications
- Add multiple integration methods: tool, decorator, context manager, wrapper
- Provide comprehensive examples for different use cases
- Track planning, tool usage, and LLM generation phases
- Thread-safe implementation supporting concurrent requests

Closes #733

Co-authored-by: Mervin Praison <[email protected]>
2025-07-05 07:30:32 +00:00
Mervin Praison 90cb5c57db Refactor: reorganise handoff example scripts into structured directories
- Moved handoff example scripts to a new directory structure for better organisation.
- Updated paths to reflect the new locations of the files.

This change aims to enhance the clarity and maintainability of the codebase.
2025-06-30 07:22:43 +01:00
Mervin Praison 4137d7dd45 Merge branch 'main' into claude/issue-491-20250628_070020 2025-06-30 07:16:37 +01:00
Mervin Praison f641110bd1 Rename examples/handoff_customer_service.py to examples/python/handoff/handoff_customer_service.py 2025-06-30 07:13:00 +01:00
Mervin Praison de02eb7054 Rename examples/handoff_basic.py to examples/python/handoff/handoff_basic.py 2025-06-30 07:12:42 +01:00
Mervin Praison d579412eed Rename examples/handoff_advanced.py to examples/python/handoff/handoff_advanced.py 2025-06-30 07:12:24 +01:00
Mervin Praison dce8becb5d Merge pull request #713 from MervinPraison/claude/issue-66-20250628_222152
feat: add input variable value examples
2025-06-28 23:28:19 +01:00
claude[bot]andMervin Praison 9f7993ac40 feat: add input variable value examples
- simple_input.py: Basic user input example
- medium_complexity_input.py: Multiple inputs with tools and context
- advanced_dynamic_input.py: Class-based system with conditional logic
- environment_variable_input.py: Combining env vars with user input
- streamlit_ui_input.py: Web-based UI for dynamic input

These examples demonstrate various approaches to handling dynamic user input in PraisonAI agents.

Closes #66

Co-authored-by: Mervin Praison <[email protected]>
2025-06-28 22:25:24 +00:00
claude[bot]andMervin Praison 11909566e9 feat: Add comprehensive state management examples
- 01_basic_state_management.py: Demonstrates fundamental state operations
- 02_state_in_tool_functions.py: Shows state usage within tool functions
- 03_conditional_task_execution.py: Illustrates conditional task flow based on state
- 04_session_state_persistence.py: Shows how to save/restore workflow state
- 05_loop_control_with_state.py: Demonstrates state-controlled loops and iterations
- 06_advanced_state_operations.py: Covers complex state scenarios and patterns

Each example is fully working with detailed documentation and real-world use cases.

Co-authored-by: Mervin Praison <[email protected]>
2025-06-28 22:12:15 +00:00
claude[bot]andMervin Praison 4f7b6ed9f8 fix: Add base_url and api_key parameters to Agent class for Ollama support
This allows users to connect to remote Ollama instances without relying on environment variables.

Usage:
```python
agent = Agent(
    llm="ollama/llama3.2",
    base_url="http://remote-host:11434"
)
```

Fixes #482

Co-authored-by: Mervin Praison <[email protected]>
2025-06-28 07:06:54 +00:00
Mervin Praison 41157e1f31 Merge pull request #684 from Dhivya-Bharathy/add-github-repo-analyzer-agent
Add GitHub repo analyzer agent
2025-06-24 07:17:08 +01:00
Mervin Praison 31078c38a0 Merge pull request #685 from Dhivya-Bharathy/add-Flow_Intelligent_Agent_PraisonAI
Add Flow_Intelligent_Agent_PraisonAI
2025-06-24 07:15:17 +01:00
devops-vestradata a48a0aca22 Move Flow_Intelligent_Agent_PraisonAI.py to examples/python/tools/exa-tool/ 2025-06-24 11:45:07 +05:30
devops-vestradata 7e2f17e047 Add GitHub Repo Analyzer Agent example 2025-06-23 16:41:57 +05:30
devops-vestradata a01f55cdd2 Add AI-Powered Learning Assistant example using praisonaiagents 2025-06-23 14:49:39 +05:30
devops-vestradata f4df72dfc4 Add learning assistant example 2025-06-23 14:46:48 +05:30
MervinPraison 17e620d9e0 refactor: migrate workflow process to sequential and enhance result handling with debug logging 2025-06-21 07:19:34 +01:00
claude[bot]andMervinPraison 4fc35d1b10 feat: add remote agent connectivity with Google ADK-like API
- Enhanced Session class to support remote agent URLs
- Added agent_url parameter for direct agent connectivity  
- Implemented HTTP client for remote agent communication
- Added connection testing and validation
- Provided send_message() alias for Google ADK compatibility
- Created comprehensive examples and documentation
- Maintained full backward compatibility
- Added proper error handling for remote operations

Fixes #630

Co-authored-by: MervinPraison <[email protected]>
2025-06-09 15:02:42 +00:00
claude[bot]andMervinPraison 79c4ef1de3 fix: enhance stateful agents with SQLite compatibility and improved API
- Fix SQLite query compatibility in session state restoration
- Add type safety to increment_state and improve append_to_state
- Change API from session.create_agent() to session.Agent() (backward compatible)
- Clean up code style: remove unused imports, trailing whitespace, fix f-strings
- Fix missing limit parameter in search_knowledge method
- Update examples to use new API

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: MervinPraison <[email protected]>
2025-06-04 03:52:09 +00:00
claude[bot]andClaude 0b4739a6f9 feat: enhance stateful agents with Session class and convenience methods
Add minimal enhancements to PraisonAI's existing stateful capabilities:

- Add Session helper class for unified session management
- Add 9 convenience methods to PraisonAIAgents for enhanced state management
- Add comprehensive stateful agents documentation with examples
- Add 3 practical examples demonstrating session, workflow, and memory capabilities
- Maintain backward compatibility - all existing code continues to work

The implementation leverages existing robust infrastructure (Memory, Agent, Process classes)
rather than duplicating functionality, providing better developer experience through
improved APIs and documentation.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-06-03 16:11:07 +00:00
claude[bot]andMervinPraison d8375cb50b feat: Add domain context solution using existing PraisonAI features
Fixes #289 - Multi-agent context issue

This solution demonstrates how to solve the domain context problem where tools 
default to "example.com" instead of user-specified domains. Uses 4 existing 
PraisonAI features:

1. Custom tool wrappers with domain injection
2. Agent instructions with domain context
3. Task context parameter for domain info
4. Shared memory for context persistence

Key benefits:
- No core SDK changes required
- Uses only existing framework features  
- Multi-layer context reliability
- 100% backward compatible
- Works for hierarchical and other processes

Co-authored-by: MervinPraison <[email protected]>
2025-06-03 06:22:53 +00:00
Mervin Praison f7ce10b92e Merge pull request #566 from MervinPraison/claude/issue-12-20250601_032826
feat: Add human-in-the-loop approval system for dangerous tool operations
2025-06-02 09:42:59 +01:00