Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
14 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions config.yaml.example
Original file line number Diff line number Diff line change
Expand Up @@ -57,15 +57,16 @@ tools:
base_class: path.to.my.tools.CustomTool
my_other_tool:
base_class: "name_of_tool_class_in_registry"
# Search tools: configure Tavily API key and search limits per tool
# Search tools: configure search provider and API keys per tool
# (can be overridden per-agent in tools list)
web_search_tool:
tavily_api_key: "your-tavily-api-key-here" # Tavily API key (get at tavily.com)
tavily_api_base_url: "https://api.tavily.com" # Tavily API URL
engine: "tavily" # Search engine: "tavily" (default), "brave", or "perplexity"
api_key: "your-search-api-key-here" # API key for the selected engine
# api_base_url: "https://custom-url" # Optional, uses engine default
max_results: 12
max_searches: 6
extract_page_content_tool:
Comment thread
nikmd1306 marked this conversation as resolved.
tavily_api_key: "your-tavily-api-key-here" # Same Tavily API key
tavily_api_key: "your-tavily-api-key-here" # Tavily API key (Tavily-only feature)
tavily_api_base_url: "https://api.tavily.com"
content_limit: 2000

Expand Down
7 changes: 3 additions & 4 deletions examples/sgr_deep_research/config.yaml.example
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,12 @@ tools:
# Core tools (base_class defaults to sgr_agent_core.tools.*)
# Search tools: configure Tavily API key and search limits per tool
web_search_tool:
tavily_api_key: "your-tavily-api-key-here" # Tavily API key (get at tavily.com)
tavily_api_base_url: "https://api.tavily.com" # Tavily API URL
engine: "tavily" # Search engine: "tavily" (default), "brave", or "perplexity"
api_key: "your-tavily-api-key-here" # API key for the selected engine
max_searches: 4 # Max search operations
max_results: 10 # Max results in search query
extract_page_content_tool:
tavily_api_key: "your-tavily-api-key-here" # Same Tavily API key
tavily_api_base_url: "https://api.tavily.com"
tavily_api_key: "your-tavily-api-key-here" # Tavily API key (Tavily extract only)
content_limit: 1500 # Content char limit per source
create_report_tool:
# base_class defaults to sgr_agent_core.tools.CreateReportTool
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,12 @@ tools:
# Core tools (base_class defaults to sgr_agent_core.tools.*)
# Search tools: configure Tavily API key and search limits per tool
web_search_tool:
tavily_api_key: "your-tavily-api-key-here" # Tavily API key (get at tavily.com)
tavily_api_base_url: "https://api.tavily.com" # Tavily API URL
engine: "tavily" # Search engine: "tavily" (default), "brave", or "perplexity"
api_key: "your-tavily-api-key-here" # API key for the selected engine
max_searches: 4 # Max search operations
max_results: 10 # Max results in search query
extract_page_content_tool:
tavily_api_key: "your-tavily-api-key-here" # Same Tavily API key
tavily_api_base_url: "https://api.tavily.com"
tavily_api_key: "your-tavily-api-key-here" # Tavily API key (Tavily extract only)
content_limit: 1500 # Content char limit per source
final_answer_tool:
# base_class defaults to sgr_agent_core.tools.FinalAnswerTool
Expand Down
18 changes: 8 additions & 10 deletions sgr_agent_core/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
ExecutionConfig,
LLMConfig,
PromptsConfig,
SearchConfig,
)
from sgr_agent_core.agent_factory import AgentFactory
from sgr_agent_core.agents import * # noqa: F403
Expand All @@ -30,7 +29,12 @@
SourceData,
)
from sgr_agent_core.next_step_tool import NextStepToolsBuilder, NextStepToolStub
from sgr_agent_core.services import AgentRegistry, MCP2ToolConverter, PromptLoader, ToolRegistry
from sgr_agent_core.services import (
AgentRegistry,
MCP2ToolConverter,
PromptLoader,
ToolRegistry,
)
from sgr_agent_core.tools import * # noqa: F403

__all__ = [
Expand All @@ -50,25 +54,19 @@
"SourceData",
# Services
"AgentRegistry",
"ToolRegistry",
"PromptLoader",
"MCP2ToolConverter",
"PromptLoader",
"ToolRegistry",
# Configuration
"AgentConfig",
"AgentDefinition",
"LLMConfig",
"PromptsConfig",
"SearchConfig",
"ExecutionConfig",
"GlobalConfig",
# Next step tools
"NextStepToolStub",
"NextStepToolsBuilder",
# Models
"AgentStatesEnum",
"AgentContext",
"SearchResult",
"SourceData",
# Factory
"AgentFactory",
]
9 changes: 0 additions & 9 deletions sgr_agent_core/agent_definition.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,15 +62,6 @@ def to_openai_client_kwargs(self) -> dict[str, Any]:
return self.model_dump(exclude={"api_key", "base_url", "proxy"})


class SearchConfig(BaseModel, extra="allow"):
tavily_api_key: str | None = Field(default=None, description="Tavily API key")
tavily_api_base_url: str = Field(default="https://api.tavily.com", description="Tavily API base URL")

max_searches: int = Field(default=4, ge=0, description="Maximum number of searches")
max_results: int = Field(default=10, ge=1, description="Maximum number of search results")
content_limit: int = Field(default=3500, gt=0, description="Content character limit per source")


class PromptsConfig(BaseModel, extra="allow"):
system_prompt_file: FilePath | None = Field(
default=os.path.join(os.path.dirname(__file__), "prompts/system_prompt.txt"),
Expand Down
8 changes: 5 additions & 3 deletions sgr_agent_core/services/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@

from sgr_agent_core.services.mcp_service import MCP2ToolConverter
from sgr_agent_core.services.prompt_loader import PromptLoader
from sgr_agent_core.services.registry import AgentRegistry, StreamingGeneratorRegistry, ToolRegistry
from sgr_agent_core.services.tavily_search import TavilySearchService
from sgr_agent_core.services.registry import (
AgentRegistry,
StreamingGeneratorRegistry,
ToolRegistry,
)
from sgr_agent_core.services.tool_instantiator import ToolInstantiator

__all__ = [
"TavilySearchService",
"MCP2ToolConverter",
"ToolRegistry",
"StreamingGeneratorRegistry",
Expand Down
107 changes: 0 additions & 107 deletions sgr_agent_core/services/tavily_search.py

This file was deleted.

19 changes: 9 additions & 10 deletions sgr_agent_core/tools/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
from sgr_agent_core.tools.answer_tool import AnswerTool
from sgr_agent_core.tools.clarification_tool import ClarificationTool
from sgr_agent_core.tools.create_report_tool import CreateReportTool
from sgr_agent_core.tools.extract_page_content_tool import ExtractPageContentTool
from sgr_agent_core.tools.extract_page_content_tool import ExtractPageContentConfig, ExtractPageContentTool
from sgr_agent_core.tools.final_answer_tool import FinalAnswerTool
from sgr_agent_core.tools.generate_plan_tool import GeneratePlanTool
from sgr_agent_core.tools.reasoning_tool import ReasoningTool
from sgr_agent_core.tools.web_search_tool import WebSearchTool
from sgr_agent_core.tools.web_search_tool import WebSearchConfig, WebSearchTool

__all__ = [
# Base classes
Expand All @@ -24,16 +24,15 @@
"ToolNameSelectorStub",
"NextStepToolsBuilder",
# Individual tools
"ClarificationTool",
"GeneratePlanTool",
"WebSearchTool",
"ExtractPageContentTool",
"AdaptPlanTool",
"CreateReportTool",
"AnswerTool",
"ClarificationTool",
"CreateReportTool",
"ExtractPageContentConfig",
"ExtractPageContentTool",
"FinalAnswerTool",
"GeneratePlanTool",
"ReasoningTool",
# Tool lists
"NextStepToolStub",
"NextStepToolsBuilder",
"WebSearchConfig",
"WebSearchTool",
]
Loading
Loading