aip-agents-binary 0.5.20__py3-none-any.whl → 0.5.22__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- aip_agents/__init__.pyi +19 -0
- aip_agents/a2a/__init__.pyi +3 -0
- aip_agents/a2a/server/__init__.pyi +4 -0
- aip_agents/a2a/server/base_executor.pyi +73 -0
- aip_agents/a2a/server/google_adk_executor.pyi +51 -0
- aip_agents/a2a/server/langflow_executor.pyi +43 -0
- aip_agents/a2a/server/langgraph_executor.pyi +47 -0
- aip_agents/a2a/types.pyi +132 -0
- aip_agents/agent/__init__.pyi +9 -0
- aip_agents/agent/base_agent.pyi +221 -0
- aip_agents/agent/base_langgraph_agent.pyi +232 -0
- aip_agents/agent/google_adk_agent.pyi +141 -0
- aip_agents/agent/google_adk_constants.pyi +3 -0
- aip_agents/agent/hitl/__init__.pyi +6 -0
- aip_agents/agent/hitl/config.pyi +15 -0
- aip_agents/agent/hitl/langgraph_hitl_mixin.pyi +42 -0
- aip_agents/agent/hitl/manager.pyi +200 -0
- aip_agents/agent/hitl/models.pyi +3 -0
- aip_agents/agent/hitl/prompt/__init__.pyi +4 -0
- aip_agents/agent/hitl/prompt/base.pyi +24 -0
- aip_agents/agent/hitl/prompt/deferred.pyi +30 -0
- aip_agents/agent/hitl/registry.pyi +101 -0
- aip_agents/agent/interface.pyi +81 -0
- aip_agents/agent/interfaces.pyi +44 -0
- aip_agents/agent/langflow_agent.pyi +133 -0
- aip_agents/agent/langgraph_memory_enhancer_agent.pyi +49 -0
- aip_agents/agent/langgraph_react_agent.pyi +126 -0
- aip_agents/agent/system_instruction_context.pyi +13 -0
- aip_agents/clients/__init__.pyi +4 -0
- aip_agents/clients/langflow/__init__.pyi +4 -0
- aip_agents/clients/langflow/client.pyi +140 -0
- aip_agents/clients/langflow/types.pyi +7 -0
- aip_agents/constants.pyi +7 -0
- aip_agents/examples/__init__.pyi +0 -0
- aip_agents/examples/compare_streaming_client.pyi +48 -0
- aip_agents/examples/compare_streaming_server.pyi +18 -0
- aip_agents/examples/demo_memory_recall.pyi +58 -0
- aip_agents/examples/hello_world_a2a_google_adk_client.pyi +9 -0
- aip_agents/examples/hello_world_a2a_google_adk_client_agent.pyi +9 -0
- aip_agents/examples/hello_world_a2a_google_adk_client_streaming.pyi +9 -0
- aip_agents/examples/hello_world_a2a_google_adk_server.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langchain_client.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_client_agent.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_client_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_client_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_reference_client_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_reference_server.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langchain_server.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langchain_server_lm_invoker.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langflow_client.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langflow_server.pyi +14 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_server.pyi +16 -0
- aip_agents/examples/hello_world_a2a_langgraph_client.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_agent.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_agent_lm_invoker.pyi +2 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming_tool_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_server.pyi +14 -0
- aip_agents/examples/hello_world_a2a_langgraph_server_lm_invoker.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langgraph_server_tool_streaming.pyi +15 -0
- aip_agents/examples/hello_world_a2a_mcp_langgraph.pyi +48 -0
- aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_client.pyi +48 -0
- aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_server.pyi +45 -0
- aip_agents/examples/hello_world_a2a_with_metadata_langchain_client.pyi +5 -0
- aip_agents/examples/hello_world_a2a_with_metadata_langchain_server_lm_invoker.pyi +15 -0
- aip_agents/examples/hello_world_google_adk.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_http.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_http_stream.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_sse.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_sse_stream.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_stdio.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_stdio_stream.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain.pyi +5 -0
- aip_agents/examples/hello_world_langchain_lm_invoker.pyi +2 -0
- aip_agents/examples/hello_world_langchain_mcp_http.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_http_interactive.pyi +16 -0
- aip_agents/examples/hello_world_langchain_mcp_http_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_multi_server.pyi +18 -0
- aip_agents/examples/hello_world_langchain_mcp_sse.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_sse_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_stdio.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_stdio_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_stream_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_langflow_agent.pyi +35 -0
- aip_agents/examples/hello_world_langgraph.pyi +5 -0
- aip_agents/examples/{hello_world_langgraph_bosa_twitter.py → hello_world_langgraph_gl_connector_twitter.py} +10 -8
- aip_agents/examples/hello_world_langgraph_gl_connector_twitter.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_http.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_http_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_sse.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_sse_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_stdio.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_stdio_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_stream_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_model_switch_cli.pyi +30 -0
- aip_agents/examples/hello_world_multi_agent_adk.pyi +6 -0
- aip_agents/examples/hello_world_multi_agent_langchain.pyi +5 -0
- aip_agents/examples/hello_world_multi_agent_langgraph.pyi +5 -0
- aip_agents/examples/hello_world_multi_agent_langgraph_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_pii_logger.pyi +5 -0
- aip_agents/examples/hello_world_sentry.py +8 -7
- aip_agents/examples/hello_world_sentry.pyi +21 -0
- aip_agents/examples/hello_world_step_limits.pyi +17 -0
- aip_agents/examples/hello_world_stock_a2a_server.pyi +17 -0
- aip_agents/examples/hello_world_tool_output_client.pyi +5 -0
- aip_agents/examples/hello_world_tool_output_server.pyi +19 -0
- aip_agents/examples/hitl_demo.pyi +67 -0
- aip_agents/examples/pii_demo_langgraph_client.pyi +5 -0
- aip_agents/examples/pii_demo_langgraph_server.pyi +20 -0
- aip_agents/examples/pii_demo_multi_agent_client.pyi +5 -0
- aip_agents/examples/pii_demo_multi_agent_server.pyi +40 -0
- aip_agents/examples/todolist_planning_a2a_langchain_client.pyi +5 -0
- aip_agents/examples/todolist_planning_a2a_langgraph_server.pyi +19 -0
- aip_agents/examples/tools/__init__.pyi +9 -0
- aip_agents/examples/tools/adk_arithmetic_tools.pyi +24 -0
- aip_agents/examples/tools/adk_weather_tool.pyi +18 -0
- aip_agents/examples/tools/data_generator_tool.pyi +15 -0
- aip_agents/examples/tools/data_visualization_tool.pyi +19 -0
- aip_agents/examples/tools/image_artifact_tool.pyi +26 -0
- aip_agents/examples/tools/langchain_arithmetic_tools.pyi +17 -0
- aip_agents/examples/tools/langchain_currency_exchange_tool.pyi +20 -0
- aip_agents/examples/tools/langchain_graph_artifact_tool.pyi +25 -0
- aip_agents/examples/tools/langchain_weather_tool.pyi +19 -0
- aip_agents/examples/tools/langgraph_streaming_tool.pyi +43 -0
- aip_agents/examples/tools/mock_retrieval_tool.pyi +13 -0
- aip_agents/examples/tools/pii_demo_tools.pyi +54 -0
- aip_agents/examples/tools/random_chart_tool.pyi +20 -0
- aip_agents/examples/tools/serper_tool.pyi +16 -0
- aip_agents/examples/tools/stock_tools.pyi +36 -0
- aip_agents/examples/tools/table_generator_tool.pyi +22 -0
- aip_agents/examples/tools/time_tool.pyi +15 -0
- aip_agents/examples/tools/weather_forecast_tool.pyi +14 -0
- aip_agents/mcp/__init__.pyi +0 -0
- aip_agents/mcp/client/__init__.pyi +5 -0
- aip_agents/mcp/client/base_mcp_client.pyi +148 -0
- aip_agents/mcp/client/connection_manager.pyi +48 -0
- aip_agents/mcp/client/google_adk/__init__.pyi +3 -0
- aip_agents/mcp/client/google_adk/client.pyi +75 -0
- aip_agents/mcp/client/langchain/__init__.pyi +3 -0
- aip_agents/mcp/client/langchain/client.pyi +48 -0
- aip_agents/mcp/client/persistent_session.pyi +113 -0
- aip_agents/mcp/client/session_pool.pyi +101 -0
- aip_agents/mcp/client/transports.pyi +123 -0
- aip_agents/mcp/utils/__init__.pyi +0 -0
- aip_agents/mcp/utils/config_validator.pyi +82 -0
- aip_agents/memory/__init__.pyi +5 -0
- aip_agents/memory/adapters/__init__.pyi +4 -0
- aip_agents/memory/adapters/base_adapter.pyi +150 -0
- aip_agents/memory/adapters/mem0.pyi +22 -0
- aip_agents/memory/base.pyi +60 -0
- aip_agents/memory/constants.pyi +25 -0
- aip_agents/memory/factory.pyi +24 -0
- aip_agents/memory/guidance.pyi +3 -0
- aip_agents/memory/simple_memory.pyi +23 -0
- aip_agents/middleware/__init__.pyi +5 -0
- aip_agents/middleware/base.pyi +71 -0
- aip_agents/middleware/manager.pyi +80 -0
- aip_agents/middleware/todolist.pyi +125 -0
- aip_agents/schema/__init__.pyi +9 -0
- aip_agents/schema/a2a.pyi +40 -0
- aip_agents/schema/agent.pyi +65 -0
- aip_agents/schema/hitl.pyi +89 -0
- aip_agents/schema/langgraph.pyi +28 -0
- aip_agents/schema/model_id.pyi +54 -0
- aip_agents/schema/step_limit.pyi +63 -0
- aip_agents/schema/storage.pyi +21 -0
- aip_agents/sentry/__init__.py +1 -1
- aip_agents/sentry/__init__.pyi +3 -0
- aip_agents/sentry/sentry.py +17 -10
- aip_agents/sentry/sentry.pyi +48 -0
- aip_agents/storage/__init__.pyi +8 -0
- aip_agents/storage/base.pyi +58 -0
- aip_agents/storage/clients/__init__.pyi +3 -0
- aip_agents/storage/clients/minio_client.pyi +137 -0
- aip_agents/storage/config.pyi +29 -0
- aip_agents/storage/providers/__init__.pyi +5 -0
- aip_agents/storage/providers/base.pyi +88 -0
- aip_agents/storage/providers/memory.pyi +79 -0
- aip_agents/storage/providers/object_storage.pyi +98 -0
- aip_agents/tools/__init__.py +26 -6
- aip_agents/tools/__init__.pyi +9 -0
- aip_agents/tools/browser_use/__init__.pyi +14 -0
- aip_agents/tools/browser_use/action_parser.pyi +18 -0
- aip_agents/tools/browser_use/browser_use_tool.pyi +50 -0
- aip_agents/tools/browser_use/llm_config.pyi +52 -0
- aip_agents/tools/browser_use/minio_storage.pyi +109 -0
- aip_agents/tools/browser_use/schemas.pyi +32 -0
- aip_agents/tools/browser_use/session.pyi +4 -0
- aip_agents/tools/browser_use/session_errors.pyi +53 -0
- aip_agents/tools/browser_use/steel_session_recording.pyi +63 -0
- aip_agents/tools/browser_use/streaming.pyi +81 -0
- aip_agents/tools/browser_use/structured_data_parser.pyi +86 -0
- aip_agents/tools/browser_use/structured_data_recovery.pyi +43 -0
- aip_agents/tools/browser_use/types.pyi +45 -0
- aip_agents/tools/code_sandbox/__init__.pyi +3 -0
- aip_agents/tools/code_sandbox/constant.pyi +4 -0
- aip_agents/tools/code_sandbox/e2b_cloud_sandbox_extended.pyi +86 -0
- aip_agents/tools/code_sandbox/e2b_sandbox_tool.pyi +29 -0
- aip_agents/tools/constants.py +26 -12
- aip_agents/tools/constants.pyi +138 -0
- aip_agents/tools/document_loader/__init__.pyi +7 -0
- aip_agents/tools/document_loader/base_reader.pyi +75 -0
- aip_agents/tools/document_loader/docx_reader_tool.pyi +10 -0
- aip_agents/tools/document_loader/excel_reader_tool.pyi +26 -0
- aip_agents/tools/document_loader/pdf_reader_tool.pyi +11 -0
- aip_agents/tools/document_loader/pdf_splitter.pyi +18 -0
- aip_agents/tools/gl_connector/__init__.py +1 -1
- aip_agents/tools/gl_connector/__init__.pyi +3 -0
- aip_agents/tools/gl_connector/tool.py +104 -45
- aip_agents/tools/gl_connector/tool.pyi +74 -0
- aip_agents/tools/gl_connector_tools.py +122 -0
- aip_agents/tools/gl_connector_tools.pyi +39 -0
- aip_agents/tools/memory_search/__init__.pyi +5 -0
- aip_agents/tools/memory_search/base.pyi +69 -0
- aip_agents/tools/memory_search/mem0.pyi +19 -0
- aip_agents/tools/memory_search/schema.pyi +15 -0
- aip_agents/tools/memory_search_tool.pyi +3 -0
- aip_agents/tools/time_tool.pyi +16 -0
- aip_agents/tools/tool_config_injector.pyi +26 -0
- aip_agents/tools/web_search/__init__.pyi +3 -0
- aip_agents/tools/web_search/serper_tool.pyi +19 -0
- aip_agents/types/__init__.pyi +36 -0
- aip_agents/types/a2a_events.pyi +3 -0
- aip_agents/utils/__init__.pyi +11 -0
- aip_agents/utils/a2a_connector.pyi +146 -0
- aip_agents/utils/artifact_helpers.pyi +203 -0
- aip_agents/utils/constants.pyi +10 -0
- aip_agents/utils/datetime/__init__.pyi +4 -0
- aip_agents/utils/datetime/normalization.pyi +95 -0
- aip_agents/utils/datetime/timezone.pyi +48 -0
- aip_agents/utils/env_loader.pyi +10 -0
- aip_agents/utils/event_handler_registry.pyi +23 -0
- aip_agents/utils/file_prompt_utils.pyi +21 -0
- aip_agents/utils/final_response_builder.pyi +34 -0
- aip_agents/utils/formatter_llm_client.pyi +71 -0
- aip_agents/utils/langgraph/__init__.pyi +3 -0
- aip_agents/utils/langgraph/converter.pyi +49 -0
- aip_agents/utils/langgraph/tool_managers/__init__.pyi +5 -0
- aip_agents/utils/langgraph/tool_managers/a2a_tool_manager.pyi +35 -0
- aip_agents/utils/langgraph/tool_managers/base_tool_manager.pyi +48 -0
- aip_agents/utils/langgraph/tool_managers/delegation_tool_manager.pyi +56 -0
- aip_agents/utils/langgraph/tool_output_management.pyi +292 -0
- aip_agents/utils/logger.pyi +60 -0
- aip_agents/utils/metadata/__init__.pyi +5 -0
- aip_agents/utils/metadata/activity_metadata_helper.pyi +25 -0
- aip_agents/utils/metadata/activity_narrative/__init__.pyi +7 -0
- aip_agents/utils/metadata/activity_narrative/builder.pyi +35 -0
- aip_agents/utils/metadata/activity_narrative/constants.pyi +10 -0
- aip_agents/utils/metadata/activity_narrative/context.pyi +32 -0
- aip_agents/utils/metadata/activity_narrative/formatters.pyi +48 -0
- aip_agents/utils/metadata/activity_narrative/utils.pyi +12 -0
- aip_agents/utils/metadata/schemas/__init__.pyi +4 -0
- aip_agents/utils/metadata/schemas/activity_schema.pyi +18 -0
- aip_agents/utils/metadata/schemas/thinking_schema.pyi +20 -0
- aip_agents/utils/metadata/thinking_metadata_helper.pyi +4 -0
- aip_agents/utils/metadata_helper.pyi +117 -0
- aip_agents/utils/name_preprocessor/__init__.pyi +6 -0
- aip_agents/utils/name_preprocessor/base_name_preprocessor.pyi +52 -0
- aip_agents/utils/name_preprocessor/google_name_preprocessor.pyi +38 -0
- aip_agents/utils/name_preprocessor/name_preprocessor.pyi +41 -0
- aip_agents/utils/name_preprocessor/openai_name_preprocessor.pyi +34 -0
- aip_agents/utils/pii/__init__.pyi +5 -0
- aip_agents/utils/pii/pii_handler.pyi +96 -0
- aip_agents/utils/pii/pii_helper.pyi +78 -0
- aip_agents/utils/pii/uuid_deanonymizer_mapping.pyi +73 -0
- aip_agents/utils/reference_helper.pyi +81 -0
- aip_agents/utils/sse_chunk_transformer.pyi +166 -0
- aip_agents/utils/step_limit_manager.pyi +112 -0
- aip_agents/utils/token_usage_helper.pyi +60 -0
- {aip_agents_binary-0.5.20.dist-info → aip_agents_binary-0.5.22.dist-info}/METADATA +3 -3
- aip_agents_binary-0.5.22.dist-info/RECORD +546 -0
- aip_agents/tools/bosa_tools.py +0 -105
- aip_agents_binary-0.5.20.dist-info/RECORD +0 -280
- {aip_agents_binary-0.5.20.dist-info → aip_agents_binary-0.5.22.dist-info}/WHEEL +0 -0
- {aip_agents_binary-0.5.20.dist-info → aip_agents_binary-0.5.22.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
from aip_agents.agent import LangGraphAgent as LangGraphAgent
|
|
2
|
+
from aip_agents.schema.agent import A2AClientConfig as A2AClientConfig
|
|
3
|
+
|
|
4
|
+
async def main() -> None:
|
|
5
|
+
"""Main function demonstrating the Three-Level Agent Hierarchy client."""
|
|
6
|
+
async def test_research_task(client_agent, coordinator_card) -> None:
|
|
7
|
+
"""Test a research-only task that flows through research specialists and workers.
|
|
8
|
+
|
|
9
|
+
Args:
|
|
10
|
+
client_agent: The client agent to send the query with.
|
|
11
|
+
coordinator_card: The agent card of the hierarchical coordinator.
|
|
12
|
+
"""
|
|
13
|
+
async def test_content_task(client_agent, coordinator_card) -> None:
|
|
14
|
+
"""Test a content-only task that flows through content specialists and workers.
|
|
15
|
+
|
|
16
|
+
Args:
|
|
17
|
+
client_agent: The client agent to send the query with.
|
|
18
|
+
coordinator_card: The agent card of the hierarchical coordinator.
|
|
19
|
+
"""
|
|
20
|
+
async def test_complex_task(client_agent, coordinator_card) -> None:
|
|
21
|
+
"""Test a complex task requiring both research and content specialists.
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
client_agent: The client agent to send the query with.
|
|
25
|
+
coordinator_card: The agent card of the hierarchical coordinator.
|
|
26
|
+
"""
|
|
27
|
+
async def test_artifact_generation(client_agent, coordinator_card) -> None:
|
|
28
|
+
"""Test artifact generation across the hierarchy.
|
|
29
|
+
|
|
30
|
+
Args:
|
|
31
|
+
client_agent: The client agent to send the query with.
|
|
32
|
+
coordinator_card: The agent card of the hierarchical coordinator.
|
|
33
|
+
"""
|
|
34
|
+
def handle_artifacts(result, test_name) -> None:
|
|
35
|
+
"""Handle and display information about artifacts from the result.
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
result: The result from the agent containing artifacts.
|
|
39
|
+
test_name: The name of the test for display purposes.
|
|
40
|
+
"""
|
|
41
|
+
def print_artifact_info(artifact: dict) -> None:
|
|
42
|
+
"""Print information about an artifact.
|
|
43
|
+
|
|
44
|
+
Args:
|
|
45
|
+
artifact: Dictionary containing artifact information.
|
|
46
|
+
"""
|
|
47
|
+
def print_hierarchy_info() -> None:
|
|
48
|
+
"""Print information about the 3-level hierarchy being tested."""
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.agent import LangGraphAgent as LangGraphAgent
|
|
3
|
+
from aip_agents.examples.tools.image_artifact_tool import ImageArtifactTool as ImageArtifactTool
|
|
4
|
+
from aip_agents.examples.tools.table_generator_tool import TableGeneratorTool as TableGeneratorTool
|
|
5
|
+
from aip_agents.utils.logger import get_logger as get_logger
|
|
6
|
+
|
|
7
|
+
logger: Incomplete
|
|
8
|
+
SERVER_AGENT_NAME: str
|
|
9
|
+
|
|
10
|
+
def create_worker_agents(llm) -> tuple[LangGraphAgent, LangGraphAgent, LangGraphAgent, LangGraphAgent]:
|
|
11
|
+
"""Create Level 3 worker agents that perform atomic operations.
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
llm: The language model to use for the worker agents.
|
|
15
|
+
|
|
16
|
+
Returns:
|
|
17
|
+
tuple[LangGraphAgent, LangGraphAgent, LangGraphAgent, LangGraphAgent]: Tuple of (web_search_worker, data_analysis_worker, writing_worker, formatting_worker).
|
|
18
|
+
"""
|
|
19
|
+
def create_specialist_agents(llm, worker_agents) -> tuple[LangGraphAgent, LangGraphAgent]:
|
|
20
|
+
"""Create Level 2 specialist agents that coordinate worker agents.
|
|
21
|
+
|
|
22
|
+
Args:
|
|
23
|
+
llm: The language model to use for the specialist agents.
|
|
24
|
+
worker_agents: Tuple of worker agents from create_worker_agents function.
|
|
25
|
+
|
|
26
|
+
Returns:
|
|
27
|
+
tuple[LangGraphAgent, LangGraphAgent]: Tuple of (research_specialist, content_specialist).
|
|
28
|
+
"""
|
|
29
|
+
def create_coordinator_agent(llm, specialist_agents) -> LangGraphAgent:
|
|
30
|
+
"""Create Level 1 coordinator agent that orchestrates everything.
|
|
31
|
+
|
|
32
|
+
Args:
|
|
33
|
+
llm: The language model to use for the coordinator agent.
|
|
34
|
+
specialist_agents: Tuple of specialist agents from create_specialist_agents function.
|
|
35
|
+
|
|
36
|
+
Returns:
|
|
37
|
+
LangGraphAgent: The configured coordinator agent.
|
|
38
|
+
"""
|
|
39
|
+
def main(host: str, port: int):
|
|
40
|
+
"""Runs the Three-Level Agent Hierarchy A2A server.
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
host (str): Host to bind the server to.
|
|
44
|
+
port (int): Port to bind the server to.
|
|
45
|
+
"""
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.agent import LangGraphReactAgent as LangGraphReactAgent
|
|
3
|
+
from aip_agents.examples.hello_world_a2a_langchain_server import SERVER_AGENT_NAME as SERVER_AGENT_NAME
|
|
4
|
+
from aip_agents.examples.tools.langchain_currency_exchange_tool import CurrencyExchangeTool as CurrencyExchangeTool
|
|
5
|
+
from aip_agents.utils.logger import get_logger as get_logger
|
|
6
|
+
|
|
7
|
+
logger: Incomplete
|
|
8
|
+
|
|
9
|
+
def main(host: str, port: int):
|
|
10
|
+
"""Runs the LangChain Currency Exchange A2A server.
|
|
11
|
+
|
|
12
|
+
Args:
|
|
13
|
+
host (str): Host to bind the server to.
|
|
14
|
+
port (int): Port to bind the server to.
|
|
15
|
+
"""
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from aip_agents.agent.google_adk_agent import GoogleADKAgent as GoogleADKAgent
|
|
2
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_http as mcp_config_http
|
|
3
|
+
|
|
4
|
+
async def main() -> None:
|
|
5
|
+
"""Demonstrates the GoogleADKAgent with MCP tools via Streamable HTTP transport."""
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from aip_agents.agent.google_adk_agent import GoogleADKAgent as GoogleADKAgent
|
|
2
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_http as mcp_config_http
|
|
3
|
+
|
|
4
|
+
async def main() -> None:
|
|
5
|
+
"""Demonstrates the GoogleADKAgent with MCP tools via Streamable HTTP transport and streaming."""
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from aip_agents.agent.google_adk_agent import GoogleADKAgent as GoogleADKAgent
|
|
2
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_sse as mcp_config_sse
|
|
3
|
+
|
|
4
|
+
async def main() -> None:
|
|
5
|
+
"""Demonstrates the GoogleADKAgent with MCP tools via SSE transport and streaming."""
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from aip_agents.agent.google_adk_agent import GoogleADKAgent as GoogleADKAgent
|
|
2
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_stdio as mcp_config_stdio
|
|
3
|
+
|
|
4
|
+
async def main() -> None:
|
|
5
|
+
"""Demonstrates the GoogleADKAgent with MCP tools via stdio transport."""
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from aip_agents.agent.google_adk_agent import GoogleADKAgent as GoogleADKAgent
|
|
2
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_stdio as mcp_config_stdio
|
|
3
|
+
|
|
4
|
+
async def main() -> None:
|
|
5
|
+
"""Demonstrates the GoogleADKAgent with MCP tools via stdio transport and streaming."""
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from aip_agents.agent.google_adk_agent import GoogleADKAgent as GoogleADKAgent
|
|
2
|
+
from aip_agents.examples.tools.adk_arithmetic_tools import add_numbers as add_numbers
|
|
3
|
+
|
|
4
|
+
async def google_adk_example_stream() -> None:
|
|
5
|
+
"""Demonstrates the GoogleADKAgent's arun_stream method."""
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from aip_agents.agent import LangChainAgent as LangChainAgent
|
|
2
|
+
from aip_agents.utils.env_loader import load_local_env as load_local_env
|
|
3
|
+
|
|
4
|
+
def print_help() -> None:
|
|
5
|
+
"""Prints available commands and their descriptions."""
|
|
6
|
+
def build_mcp_config_from_env() -> dict:
|
|
7
|
+
"""Construct MCP configuration from environment variables.
|
|
8
|
+
|
|
9
|
+
Returns:
|
|
10
|
+
dict: MCP configuration dictionary.
|
|
11
|
+
|
|
12
|
+
Raises:
|
|
13
|
+
RuntimeError: If required environment variables are missing.
|
|
14
|
+
"""
|
|
15
|
+
async def main() -> None:
|
|
16
|
+
"""Runs the interactive LangChainAgent with MCP tools via Streamable HTTP transport."""
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from aip_agents.agent import LangChainAgent as LangChainAgent
|
|
2
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_http as mcp_config_http
|
|
3
|
+
|
|
4
|
+
async def main() -> None:
|
|
5
|
+
"""Demonstrates the LangChainAgent with MCP tools via Streamable HTTP transport and streaming capabilities."""
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from aip_agents.agent import LangChainAgent as LangChainAgent
|
|
2
|
+
from aip_agents.examples.mcp_configs.configs import mcp_tool_whitelisting_demo as mcp_tool_whitelisting_demo
|
|
3
|
+
from aip_agents.schema.a2a import A2AStreamEventType as A2AStreamEventType
|
|
4
|
+
from aip_agents.utils.logger import logger_manager as logger_manager
|
|
5
|
+
|
|
6
|
+
async def process_query(agent, query: str, is_allowed: bool = True) -> bool:
|
|
7
|
+
"""Process a single query and report if tools were called.
|
|
8
|
+
|
|
9
|
+
Args:
|
|
10
|
+
agent: The LangChain agent to run.
|
|
11
|
+
query: The query to process.
|
|
12
|
+
is_allowed: Whether this query should use allowed tools.
|
|
13
|
+
|
|
14
|
+
Returns:
|
|
15
|
+
True if at least one tool was called while processing the query, False otherwise.
|
|
16
|
+
"""
|
|
17
|
+
async def main() -> None:
|
|
18
|
+
"""Demo allowed_tools filtering with 3 MCP servers (STDIO, SSE, HTTP)."""
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from aip_agents.agent import LangChainAgent as LangChainAgent
|
|
2
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_sse as mcp_config_sse
|
|
3
|
+
|
|
4
|
+
async def main() -> None:
|
|
5
|
+
"""Demonstrates the LangChainAgent with MCP tools via SSE transport and streaming capabilities."""
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from aip_agents.agent import LangChainAgent as LangChainAgent
|
|
2
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_stdio as mcp_config_stdio
|
|
3
|
+
|
|
4
|
+
async def main() -> None:
|
|
5
|
+
"""Demonstrates the LangChainAgent with MCP tools via stdio transport and streaming capabilities."""
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from aip_agents.agent import LangChainAgent as LangChainAgent
|
|
2
|
+
from aip_agents.examples.tools.langchain_arithmetic_tools import add_numbers as add_numbers
|
|
3
|
+
|
|
4
|
+
async def langchain_stream_example() -> None:
|
|
5
|
+
"""Demonstrates the LangChainAgent's arun_stream method with async execution."""
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from aip_agents.agent import LangChainAgent as LangChainAgent
|
|
2
|
+
from aip_agents.examples.tools.langchain_arithmetic_tools import add_numbers as add_numbers
|
|
3
|
+
|
|
4
|
+
async def langchain_stream_example() -> None:
|
|
5
|
+
"""Demonstrates the LangChainAgent's arun_stream method with async execution."""
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
from aip_agents.agent.langflow_agent import LangflowAgent as LangflowAgent
|
|
2
|
+
from aip_agents.clients.langflow import LangflowApiClient as LangflowApiClient
|
|
3
|
+
|
|
4
|
+
async def fetch_flow_id() -> tuple[str, str]:
|
|
5
|
+
"""Fetch available flows and return the first flow ID and name."""
|
|
6
|
+
async def create_agent(flow_id: str, flow_name: str) -> LangflowAgent:
|
|
7
|
+
"""Create and configure the Langflow agent.
|
|
8
|
+
|
|
9
|
+
Args:
|
|
10
|
+
flow_id (str): The flow ID to use for the agent.
|
|
11
|
+
flow_name (str): The name of the flow.
|
|
12
|
+
|
|
13
|
+
Returns:
|
|
14
|
+
LangflowAgent: The configured Langflow agent.
|
|
15
|
+
"""
|
|
16
|
+
async def demonstrate_regular_execution(agent: LangflowAgent) -> None:
|
|
17
|
+
"""Demonstrate regular execution.
|
|
18
|
+
|
|
19
|
+
Args:
|
|
20
|
+
agent (LangflowAgent): The Langflow agent to demonstrate with.
|
|
21
|
+
"""
|
|
22
|
+
async def demonstrate_streaming(agent: LangflowAgent) -> None:
|
|
23
|
+
"""Demonstrate streaming execution.
|
|
24
|
+
|
|
25
|
+
Args:
|
|
26
|
+
agent (LangflowAgent): The Langflow agent to demonstrate with.
|
|
27
|
+
"""
|
|
28
|
+
async def demonstrate_session_management(agent: LangflowAgent) -> None:
|
|
29
|
+
"""Demonstrate session management.
|
|
30
|
+
|
|
31
|
+
Args:
|
|
32
|
+
agent (LangflowAgent): The Langflow agent to demonstrate with.
|
|
33
|
+
"""
|
|
34
|
+
async def main() -> None:
|
|
35
|
+
"""Demonstrate basic Langflow agent usage."""
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Minimal LangGraph agent with
|
|
1
|
+
"""Minimal LangGraph agent with GL Connectors support example demonstrating asynchronous run.
|
|
2
2
|
|
|
3
3
|
Authors:
|
|
4
4
|
Saul Sayers (saul.sayers@gdplabs.id)
|
|
@@ -6,22 +6,24 @@ Authors:
|
|
|
6
6
|
|
|
7
7
|
import asyncio
|
|
8
8
|
|
|
9
|
+
from aip_agents.agent import LangGraphAgent
|
|
10
|
+
from aip_agents.tools import GL_CONNECTORS_AUTOMATED_TOOLS
|
|
11
|
+
from dotenv import load_dotenv
|
|
9
12
|
from langchain_openai import ChatOpenAI
|
|
10
13
|
|
|
11
|
-
|
|
12
|
-
from aip_agents.tools import BOSA_AUTOMATED_TOOLS
|
|
14
|
+
load_dotenv(override=True)
|
|
13
15
|
|
|
14
16
|
|
|
15
|
-
async def
|
|
17
|
+
async def langgraph_gl_connector_example():
|
|
16
18
|
"""Demonstrates the LangGraphAgent's arun method."""
|
|
17
19
|
model = ChatOpenAI(model="gpt-4.1", temperature=0)
|
|
18
|
-
agent_name = "
|
|
20
|
+
agent_name = "GLConnectorTwitterAgent"
|
|
19
21
|
|
|
20
22
|
langgraph_agent = LangGraphAgent(
|
|
21
23
|
name=agent_name,
|
|
22
|
-
instruction="You are a helpful assistant that
|
|
24
|
+
instruction="You are a helpful assistant that uses GL Connectors to connect with the Twitter API.",
|
|
23
25
|
model=model,
|
|
24
|
-
tools=
|
|
26
|
+
tools=GL_CONNECTORS_AUTOMATED_TOOLS["twitter"],
|
|
25
27
|
)
|
|
26
28
|
|
|
27
29
|
query = "Get 3 tweets about the latest Air India Incident"
|
|
@@ -38,4 +40,4 @@ async def langgraph_bosa_example():
|
|
|
38
40
|
|
|
39
41
|
|
|
40
42
|
if __name__ == "__main__":
|
|
41
|
-
asyncio.run(
|
|
43
|
+
asyncio.run(langgraph_gl_connector_example())
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from aip_agents.agent import LangGraphAgent as LangGraphAgent
|
|
2
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_http as mcp_config_http
|
|
3
|
+
|
|
4
|
+
async def main() -> None:
|
|
5
|
+
"""Demonstrates the LangGraphAgent with MCP tools via Streamable HTTP transport and streaming capabilities."""
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from aip_agents.agent import LangGraphAgent as LangGraphAgent
|
|
2
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_sse as mcp_config_sse
|
|
3
|
+
|
|
4
|
+
async def main() -> None:
|
|
5
|
+
"""Demonstrates the LangGraphAgent with MCP tools via SSE transport and streaming capabilities."""
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from aip_agents.agent import LangGraphAgent as LangGraphAgent
|
|
2
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_stdio as mcp_config_stdio
|
|
3
|
+
|
|
4
|
+
async def main() -> None:
|
|
5
|
+
"""Demonstrates the LangGraphAgent with MCP tools via stdio transport and streaming."""
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.agent import LangChainAgent as LangChainAgent
|
|
3
|
+
from aip_agents.schema.agent import AgentConfig as AgentConfig
|
|
4
|
+
|
|
5
|
+
DEEPINFRA_URL: str
|
|
6
|
+
MODEL_IDS: Incomplete
|
|
7
|
+
MODEL_CONFIGS: Incomplete
|
|
8
|
+
|
|
9
|
+
def make_agent(model_id):
|
|
10
|
+
"""Makes an agent with the given model id.
|
|
11
|
+
|
|
12
|
+
Args:
|
|
13
|
+
model_id: The model identifier to use for the agent.
|
|
14
|
+
|
|
15
|
+
Returns:
|
|
16
|
+
LangChainAgent: The configured agent instance.
|
|
17
|
+
"""
|
|
18
|
+
def print_help() -> None:
|
|
19
|
+
"""Prints available commands and their descriptions."""
|
|
20
|
+
def handle_switch_model(current_model):
|
|
21
|
+
"""Handles model switching. Returns (new_model, new_agent).
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
current_model: The currently active model identifier.
|
|
25
|
+
|
|
26
|
+
Returns:
|
|
27
|
+
tuple: (new_model, new_agent) where new_model is the selected model ID and new_agent is the configured agent instance.
|
|
28
|
+
"""
|
|
29
|
+
def main() -> None:
|
|
30
|
+
"""Runs the Hello World Model Switch CLI."""
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
from aip_agents.agent.google_adk_agent import GoogleADKAgent as GoogleADKAgent
|
|
2
|
+
from aip_agents.examples.tools.adk_arithmetic_tools import sum_numbers as sum_numbers
|
|
3
|
+
from aip_agents.examples.tools.adk_weather_tool import get_weather as get_weather
|
|
4
|
+
|
|
5
|
+
async def multi_agent_example() -> None:
|
|
6
|
+
"""Demonstrates multi-agent coordination with GoogleADKAgent."""
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""This is a simple FastAPI app to test Sentry with Open Telemetry from
|
|
1
|
+
"""This is a simple FastAPI app to test Sentry with Open Telemetry from GL Connectors SDK.
|
|
2
2
|
|
|
3
3
|
To run this example, make sure to set the following environment variables:
|
|
4
4
|
SENTRY_DSN
|
|
@@ -20,13 +20,12 @@ import threading
|
|
|
20
20
|
import time
|
|
21
21
|
|
|
22
22
|
import uvicorn
|
|
23
|
-
from fastapi import FastAPI
|
|
24
|
-
from fastapi.responses import JSONResponse
|
|
25
|
-
from fastapi.staticfiles import StaticFiles
|
|
26
|
-
|
|
27
23
|
from aip_agents.examples.hello_world_langgraph import langgraph_example
|
|
28
24
|
from aip_agents.sentry import setup_telemetry
|
|
29
25
|
from aip_agents.utils.logger import get_logger
|
|
26
|
+
from fastapi import FastAPI
|
|
27
|
+
from fastapi.responses import JSONResponse
|
|
28
|
+
from fastapi.staticfiles import StaticFiles
|
|
30
29
|
|
|
31
30
|
logger = get_logger(__name__)
|
|
32
31
|
|
|
@@ -50,7 +49,9 @@ def fetch_endpoints():
|
|
|
50
49
|
# Because using request.get() will trigger sentry, but the ep name is not saved.
|
|
51
50
|
# Instead of GET /langgraph-hello-world, sentry will save it as GET
|
|
52
51
|
url = f"http://127.0.0.1:8585{ep}"
|
|
53
|
-
result = subprocess.run(
|
|
52
|
+
result = subprocess.run(
|
|
53
|
+
["curl", "-i", url], capture_output=True, text=True, check=False
|
|
54
|
+
)
|
|
54
55
|
logger.info(result.stdout)
|
|
55
56
|
except Exception as e:
|
|
56
57
|
logger.error(f"Error fetching {ep}: {e}")
|
|
@@ -63,7 +64,7 @@ def create_app() -> FastAPI:
|
|
|
63
64
|
FastAPI: The configured FastAPI application.
|
|
64
65
|
"""
|
|
65
66
|
app = FastAPI(
|
|
66
|
-
title="
|
|
67
|
+
title="GL Connectors SDK - Sentry with Open Telemetry",
|
|
67
68
|
description="This is a simple FastAPI app to test Sentry with Open Telemetry.",
|
|
68
69
|
version="0.0.1",
|
|
69
70
|
docs_url=None,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.examples.hello_world_langgraph import langgraph_example as langgraph_example
|
|
3
|
+
from aip_agents.sentry import setup_telemetry as setup_telemetry
|
|
4
|
+
from aip_agents.utils.logger import get_logger as get_logger
|
|
5
|
+
from fastapi import FastAPI
|
|
6
|
+
|
|
7
|
+
logger: Incomplete
|
|
8
|
+
BASE_URL: str
|
|
9
|
+
SENTRY_ENVIRONMENT: Incomplete
|
|
10
|
+
USE_OPENTELEMETRY: Incomplete
|
|
11
|
+
|
|
12
|
+
def fetch_endpoints() -> None:
|
|
13
|
+
"""Fetch all endpoints from the server."""
|
|
14
|
+
def create_app() -> FastAPI:
|
|
15
|
+
"""Create and configure the FastAPI application.
|
|
16
|
+
|
|
17
|
+
Returns:
|
|
18
|
+
FastAPI: The configured FastAPI application.
|
|
19
|
+
"""
|
|
20
|
+
def run_server() -> None:
|
|
21
|
+
"""Run the FastAPI server."""
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from aip_agents.agent import LangGraphReactAgent as LangGraphReactAgent
|
|
2
|
+
from aip_agents.examples.tools.langchain_arithmetic_tools import add_numbers as add_numbers
|
|
3
|
+
from aip_agents.schema.step_limit import MaxStepsExceededError as MaxStepsExceededError, StepLimitConfig as StepLimitConfig
|
|
4
|
+
from aip_agents.utils.step_limit_manager import StepLimitManager as StepLimitManager
|
|
5
|
+
|
|
6
|
+
def print_config_validation(config: StepLimitConfig | None, context: str):
|
|
7
|
+
"""Print step limit configuration validation."""
|
|
8
|
+
async def test_case_1_success_no_limits() -> None:
|
|
9
|
+
"""Test Case 1: Success - High limits, no warnings."""
|
|
10
|
+
async def test_case_2_parallel_tool_batch_accounting() -> None:
|
|
11
|
+
"""Test Case 2: Demonstrate that parallel tool batches consume multiple steps."""
|
|
12
|
+
async def test_case_3_step_limit_exceeded() -> None:
|
|
13
|
+
"""Test Case 3: Step Limit Exceeded - Only 2 steps allowed."""
|
|
14
|
+
async def test_case_4_delegation_depth_exceeded() -> None:
|
|
15
|
+
"""Test Case 4: Delegation Depth Exceeded - Zero depth."""
|
|
16
|
+
async def main() -> None:
|
|
17
|
+
"""Run all test cases."""
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.agent import LangGraphAgent as LangGraphAgent
|
|
3
|
+
from aip_agents.examples.tools.stock_tools import StockNewsInput as StockNewsInput, StockPriceInput as StockPriceInput, get_stock_news as get_stock_news, get_stock_price as get_stock_price
|
|
4
|
+
from aip_agents.utils.logger import get_logger as get_logger
|
|
5
|
+
from langchain_core.tools import BaseTool as BaseTool
|
|
6
|
+
|
|
7
|
+
logger: Incomplete
|
|
8
|
+
SERVER_AGENT_NAME: str
|
|
9
|
+
stock_tools: list[BaseTool]
|
|
10
|
+
|
|
11
|
+
def main(host: str, port: int):
|
|
12
|
+
"""Runs the StockAgent A2A server.
|
|
13
|
+
|
|
14
|
+
Args:
|
|
15
|
+
host (str): Host to bind the server to.
|
|
16
|
+
port (int): Port to bind the server to.
|
|
17
|
+
"""
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.agent import LangGraphReactAgent as LangGraphReactAgent
|
|
3
|
+
from aip_agents.examples.tools.data_generator_tool import DataGeneratorTool as DataGeneratorTool
|
|
4
|
+
from aip_agents.examples.tools.data_visualization_tool import DataVisualizerTool as DataVisualizerTool
|
|
5
|
+
from aip_agents.storage.clients.minio_client import MinioConfig as MinioConfig, MinioObjectStorage as MinioObjectStorage
|
|
6
|
+
from aip_agents.storage.providers.object_storage import ObjectStorageProvider as ObjectStorageProvider
|
|
7
|
+
from aip_agents.utils.langgraph.tool_output_management import ToolOutputConfig as ToolOutputConfig, ToolOutputManager as ToolOutputManager
|
|
8
|
+
from aip_agents.utils.logger import get_logger as get_logger
|
|
9
|
+
|
|
10
|
+
logger: Incomplete
|
|
11
|
+
SERVER_AGENT_NAME: str
|
|
12
|
+
|
|
13
|
+
def main(host: str, port: int):
|
|
14
|
+
"""Run the Data Visualization A2A server.
|
|
15
|
+
|
|
16
|
+
Args:
|
|
17
|
+
host (str): Host to bind the server to.
|
|
18
|
+
port (int): Port to bind the server to.
|
|
19
|
+
"""
|