From cbec4e05a154d7c5b9b96cb4ba6615ba2d8baf8b Mon Sep 17 00:00:00 2001 From: Amrit Krishnan Date: Sat, 31 Jan 2026 11:31:28 -0500 Subject: [PATCH] Move grounding tool to reusable parent tools dir --- .../aieng/agent_evals/display.py | 2 +- .../agent_evals/knowledge_agent/__init__.py | 12 +++++------ .../agent_evals/knowledge_agent/agent.py | 11 +++++----- .../aieng/agent_evals/tools/__init__.py | 21 +++++++++++++++++++ .../grounding_tool.py => tools/search.py} | 6 ++---- .../agent_evals/knowledge_agent/test_agent.py | 2 +- .../tests/aieng/agent_evals/tools/__init__.py | 1 + .../test_search.py} | 6 +++--- 8 files changed, 40 insertions(+), 21 deletions(-) create mode 100644 aieng-eval-agents/aieng/agent_evals/tools/__init__.py rename aieng-eval-agents/aieng/agent_evals/{knowledge_agent/grounding_tool.py => tools/search.py} (93%) create mode 100644 aieng-eval-agents/tests/aieng/agent_evals/tools/__init__.py rename aieng-eval-agents/tests/aieng/agent_evals/{knowledge_agent/test_grounding_tool.py => tools/test_search.py} (96%) diff --git a/aieng-eval-agents/aieng/agent_evals/display.py b/aieng-eval-agents/aieng/agent_evals/display.py index 10d3cae2..07d933eb 100644 --- a/aieng-eval-agents/aieng/agent_evals/display.py +++ b/aieng-eval-agents/aieng/agent_evals/display.py @@ -15,7 +15,7 @@ if TYPE_CHECKING: - from .knowledge_agent.grounding_tool import GroundedResponse + from .tools import GroundedResponse # Custom theme for consistent styling diff --git a/aieng-eval-agents/aieng/agent_evals/knowledge_agent/__init__.py b/aieng-eval-agents/aieng/agent_evals/knowledge_agent/__init__.py index f837aed7..7ee55718 100644 --- a/aieng-eval-agents/aieng/agent_evals/knowledge_agent/__init__.py +++ b/aieng-eval-agents/aieng/agent_evals/knowledge_agent/__init__.py @@ -16,6 +16,12 @@ """ from aieng.agent_evals.configs import Configs +from aieng.agent_evals.tools import ( + GroundedResponse, + GroundingChunk, + create_google_search_tool, + format_response_with_citations, +) from .agent import KnowledgeAgentManager, KnowledgeGroundedAgent from .evaluation import ( @@ -24,12 +30,6 @@ DSQAExample, EvaluationResult, ) -from .grounding_tool import ( - GroundedResponse, - GroundingChunk, - create_google_search_tool, - format_response_with_citations, -) from .tracing import flush_traces, init_tracing, is_tracing_enabled diff --git a/aieng-eval-agents/aieng/agent_evals/knowledge_agent/agent.py b/aieng-eval-agents/aieng/agent_evals/knowledge_agent/agent.py index f14a8984..9de982c8 100644 --- a/aieng-eval-agents/aieng/agent_evals/knowledge_agent/agent.py +++ b/aieng-eval-agents/aieng/agent_evals/knowledge_agent/agent.py @@ -10,16 +10,15 @@ from typing import Any from aieng.agent_evals.configs import Configs -from google.adk.agents import Agent -from google.adk.runners import Runner -from google.adk.sessions import InMemorySessionService -from google.genai import types - -from .grounding_tool import ( +from aieng.agent_evals.tools import ( GroundedResponse, GroundingChunk, create_google_search_tool, ) +from google.adk.agents import Agent +from google.adk.runners import Runner +from google.adk.sessions import InMemorySessionService +from google.genai import types logger = logging.getLogger(__name__) diff --git a/aieng-eval-agents/aieng/agent_evals/tools/__init__.py b/aieng-eval-agents/aieng/agent_evals/tools/__init__.py new file mode 100644 index 00000000..8968cef9 --- /dev/null +++ b/aieng-eval-agents/aieng/agent_evals/tools/__init__.py @@ -0,0 +1,21 @@ +"""Reusable tools for ADK agents. + +This package provides modular tools for: +- Google Search (search.py) +""" + +from .search import ( + GroundedResponse, + GroundingChunk, + create_google_search_tool, + format_response_with_citations, +) + + +__all__ = [ + # Search tools + "create_google_search_tool", + "format_response_with_citations", + "GroundedResponse", + "GroundingChunk", +] diff --git a/aieng-eval-agents/aieng/agent_evals/knowledge_agent/grounding_tool.py b/aieng-eval-agents/aieng/agent_evals/tools/search.py similarity index 93% rename from aieng-eval-agents/aieng/agent_evals/knowledge_agent/grounding_tool.py rename to aieng-eval-agents/aieng/agent_evals/tools/search.py index ddd2ac02..90493de3 100644 --- a/aieng-eval-agents/aieng/agent_evals/knowledge_agent/grounding_tool.py +++ b/aieng-eval-agents/aieng/agent_evals/tools/search.py @@ -1,4 +1,4 @@ -"""Google Search grounding tool for knowledge-grounded QA using ADK. +"""Google Search tool for knowledge-grounded QA using ADK. This module provides the GoogleSearchTool configuration for use with Google ADK agents, enabling explicit and traceable web search capabilities. @@ -70,9 +70,7 @@ def create_google_search_tool() -> GoogleSearchTool: Examples -------- - >>> from aieng.agent_evals.knowledge_agent.grounding_tool import ( - ... create_google_search_tool, - ... ) + >>> from aieng.agent_evals.tools import create_google_search_tool >>> search_tool = create_google_search_tool() >>> # Use with an ADK agent >>> agent = Agent(tools=[search_tool]) diff --git a/aieng-eval-agents/tests/aieng/agent_evals/knowledge_agent/test_agent.py b/aieng-eval-agents/tests/aieng/agent_evals/knowledge_agent/test_agent.py index c4afd1fb..02ee1dd2 100644 --- a/aieng-eval-agents/tests/aieng/agent_evals/knowledge_agent/test_agent.py +++ b/aieng-eval-agents/tests/aieng/agent_evals/knowledge_agent/test_agent.py @@ -8,7 +8,7 @@ KnowledgeAgentManager, KnowledgeGroundedAgent, ) -from aieng.agent_evals.knowledge_agent.grounding_tool import GroundedResponse +from aieng.agent_evals.tools import GroundedResponse class TestKnowledgeGroundedAgent: diff --git a/aieng-eval-agents/tests/aieng/agent_evals/tools/__init__.py b/aieng-eval-agents/tests/aieng/agent_evals/tools/__init__.py new file mode 100644 index 00000000..3acf2faa --- /dev/null +++ b/aieng-eval-agents/tests/aieng/agent_evals/tools/__init__.py @@ -0,0 +1 @@ +"""Tests for tools package.""" diff --git a/aieng-eval-agents/tests/aieng/agent_evals/knowledge_agent/test_grounding_tool.py b/aieng-eval-agents/tests/aieng/agent_evals/tools/test_search.py similarity index 96% rename from aieng-eval-agents/tests/aieng/agent_evals/knowledge_agent/test_grounding_tool.py rename to aieng-eval-agents/tests/aieng/agent_evals/tools/test_search.py index 0095b5ee..72f031a6 100644 --- a/aieng-eval-agents/tests/aieng/agent_evals/knowledge_agent/test_grounding_tool.py +++ b/aieng-eval-agents/tests/aieng/agent_evals/tools/test_search.py @@ -1,9 +1,9 @@ -"""Tests for Google Search grounding tool.""" +"""Tests for Google Search tool.""" from unittest.mock import MagicMock, patch import pytest -from aieng.agent_evals.knowledge_agent.grounding_tool import ( +from aieng.agent_evals.tools import ( GroundedResponse, GroundingChunk, create_google_search_tool, @@ -81,7 +81,7 @@ def test_format_with_citations_no_sources(self): class TestCreateGoogleSearchTool: """Tests for the create_google_search_tool function.""" - @patch("aieng.agent_evals.knowledge_agent.grounding_tool.GoogleSearchTool") + @patch("aieng.agent_evals.tools.search.GoogleSearchTool") def test_creates_tool_with_bypass_flag(self, mock_tool_class): """Test that the tool is created with bypass_multi_tools_limit=True.""" mock_tool = MagicMock()