aip-agents-binary 0.6.4__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.
Potentially problematic release.
This version of aip-agents-binary might be problematic. Click here for more details.
- aip_agents/__init__.py +65 -0
- aip_agents/__init__.pyi +19 -0
- aip_agents/a2a/__init__.py +19 -0
- aip_agents/a2a/__init__.pyi +3 -0
- aip_agents/a2a/server/__init__.py +10 -0
- aip_agents/a2a/server/__init__.pyi +4 -0
- aip_agents/a2a/server/base_executor.py +1086 -0
- aip_agents/a2a/server/base_executor.pyi +73 -0
- aip_agents/a2a/server/google_adk_executor.py +198 -0
- aip_agents/a2a/server/google_adk_executor.pyi +51 -0
- aip_agents/a2a/server/langflow_executor.py +180 -0
- aip_agents/a2a/server/langflow_executor.pyi +43 -0
- aip_agents/a2a/server/langgraph_executor.py +270 -0
- aip_agents/a2a/server/langgraph_executor.pyi +47 -0
- aip_agents/a2a/types.py +232 -0
- aip_agents/a2a/types.pyi +132 -0
- aip_agents/agent/__init__.py +27 -0
- aip_agents/agent/__init__.pyi +9 -0
- aip_agents/agent/base_agent.py +970 -0
- aip_agents/agent/base_agent.pyi +221 -0
- aip_agents/agent/base_langgraph_agent.py +3037 -0
- aip_agents/agent/base_langgraph_agent.pyi +233 -0
- aip_agents/agent/google_adk_agent.py +926 -0
- aip_agents/agent/google_adk_agent.pyi +141 -0
- aip_agents/agent/google_adk_constants.py +6 -0
- aip_agents/agent/google_adk_constants.pyi +3 -0
- aip_agents/agent/hitl/__init__.py +24 -0
- aip_agents/agent/hitl/__init__.pyi +6 -0
- aip_agents/agent/hitl/config.py +28 -0
- aip_agents/agent/hitl/config.pyi +15 -0
- aip_agents/agent/hitl/langgraph_hitl_mixin.py +515 -0
- aip_agents/agent/hitl/langgraph_hitl_mixin.pyi +42 -0
- aip_agents/agent/hitl/manager.py +532 -0
- aip_agents/agent/hitl/manager.pyi +200 -0
- aip_agents/agent/hitl/models.py +18 -0
- aip_agents/agent/hitl/models.pyi +3 -0
- aip_agents/agent/hitl/prompt/__init__.py +9 -0
- aip_agents/agent/hitl/prompt/__init__.pyi +4 -0
- aip_agents/agent/hitl/prompt/base.py +42 -0
- aip_agents/agent/hitl/prompt/base.pyi +24 -0
- aip_agents/agent/hitl/prompt/deferred.py +73 -0
- aip_agents/agent/hitl/prompt/deferred.pyi +30 -0
- aip_agents/agent/hitl/registry.py +149 -0
- aip_agents/agent/hitl/registry.pyi +101 -0
- aip_agents/agent/interface.py +138 -0
- aip_agents/agent/interface.pyi +81 -0
- aip_agents/agent/interfaces.py +65 -0
- aip_agents/agent/interfaces.pyi +44 -0
- aip_agents/agent/langflow_agent.py +464 -0
- aip_agents/agent/langflow_agent.pyi +133 -0
- aip_agents/agent/langgraph_memory_enhancer_agent.py +767 -0
- aip_agents/agent/langgraph_memory_enhancer_agent.pyi +50 -0
- aip_agents/agent/langgraph_react_agent.py +2856 -0
- aip_agents/agent/langgraph_react_agent.pyi +170 -0
- aip_agents/agent/system_instruction_context.py +34 -0
- aip_agents/agent/system_instruction_context.pyi +13 -0
- aip_agents/clients/__init__.py +10 -0
- aip_agents/clients/__init__.pyi +4 -0
- aip_agents/clients/langflow/__init__.py +10 -0
- aip_agents/clients/langflow/__init__.pyi +4 -0
- aip_agents/clients/langflow/client.py +477 -0
- aip_agents/clients/langflow/client.pyi +140 -0
- aip_agents/clients/langflow/types.py +18 -0
- aip_agents/clients/langflow/types.pyi +7 -0
- aip_agents/constants.py +23 -0
- aip_agents/constants.pyi +7 -0
- aip_agents/credentials/manager.py +132 -0
- aip_agents/examples/__init__.py +5 -0
- aip_agents/examples/__init__.pyi +0 -0
- aip_agents/examples/compare_streaming_client.py +783 -0
- aip_agents/examples/compare_streaming_client.pyi +48 -0
- aip_agents/examples/compare_streaming_server.py +142 -0
- aip_agents/examples/compare_streaming_server.pyi +18 -0
- aip_agents/examples/hello_world_a2a_google_adk_client.py +49 -0
- aip_agents/examples/hello_world_a2a_google_adk_client.pyi +9 -0
- aip_agents/examples/hello_world_a2a_google_adk_client_agent.py +48 -0
- aip_agents/examples/hello_world_a2a_google_adk_client_agent.pyi +9 -0
- aip_agents/examples/hello_world_a2a_google_adk_client_streaming.py +60 -0
- aip_agents/examples/hello_world_a2a_google_adk_client_streaming.pyi +9 -0
- aip_agents/examples/hello_world_a2a_google_adk_server.py +79 -0
- aip_agents/examples/hello_world_a2a_google_adk_server.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langchain_client.py +39 -0
- aip_agents/examples/hello_world_a2a_langchain_client.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_client_agent.py +39 -0
- aip_agents/examples/hello_world_a2a_langchain_client_agent.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_client_lm_invoker.py +37 -0
- aip_agents/examples/hello_world_a2a_langchain_client_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_client_streaming.py +41 -0
- aip_agents/examples/hello_world_a2a_langchain_client_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_reference_client_streaming.py +60 -0
- aip_agents/examples/hello_world_a2a_langchain_reference_client_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_reference_server.py +105 -0
- aip_agents/examples/hello_world_a2a_langchain_reference_server.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langchain_server.py +79 -0
- aip_agents/examples/hello_world_a2a_langchain_server.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langchain_server_lm_invoker.py +78 -0
- aip_agents/examples/hello_world_a2a_langchain_server_lm_invoker.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langflow_client.py +83 -0
- aip_agents/examples/hello_world_a2a_langflow_client.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langflow_server.py +82 -0
- aip_agents/examples/hello_world_a2a_langflow_server.pyi +14 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client.py +73 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client_streaming.py +76 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_server.py +92 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_server.pyi +16 -0
- aip_agents/examples/hello_world_a2a_langgraph_client.py +54 -0
- aip_agents/examples/hello_world_a2a_langgraph_client.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_agent.py +54 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_agent.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_agent_lm_invoker.py +32 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_agent_lm_invoker.pyi +2 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming.py +50 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming_lm_invoker.py +44 -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.py +92 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming_tool_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_server.py +84 -0
- aip_agents/examples/hello_world_a2a_langgraph_server.pyi +14 -0
- aip_agents/examples/hello_world_a2a_langgraph_server_lm_invoker.py +79 -0
- aip_agents/examples/hello_world_a2a_langgraph_server_lm_invoker.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langgraph_server_tool_streaming.py +132 -0
- aip_agents/examples/hello_world_a2a_langgraph_server_tool_streaming.pyi +15 -0
- aip_agents/examples/hello_world_a2a_mcp_langgraph.py +196 -0
- aip_agents/examples/hello_world_a2a_mcp_langgraph.pyi +48 -0
- aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_client.py +244 -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.py +251 -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.py +57 -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.py +80 -0
- aip_agents/examples/hello_world_a2a_with_metadata_langchain_server_lm_invoker.pyi +15 -0
- aip_agents/examples/hello_world_google_adk.py +41 -0
- aip_agents/examples/hello_world_google_adk.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_http.py +34 -0
- aip_agents/examples/hello_world_google_adk_mcp_http.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_http_stream.py +40 -0
- aip_agents/examples/hello_world_google_adk_mcp_http_stream.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_sse.py +44 -0
- aip_agents/examples/hello_world_google_adk_mcp_sse.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_sse_stream.py +48 -0
- aip_agents/examples/hello_world_google_adk_mcp_sse_stream.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_stdio.py +44 -0
- aip_agents/examples/hello_world_google_adk_mcp_stdio.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_stdio_stream.py +48 -0
- aip_agents/examples/hello_world_google_adk_mcp_stdio_stream.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_stream.py +44 -0
- aip_agents/examples/hello_world_google_adk_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain.py +28 -0
- aip_agents/examples/hello_world_langchain.pyi +5 -0
- aip_agents/examples/hello_world_langchain_lm_invoker.py +15 -0
- aip_agents/examples/hello_world_langchain_lm_invoker.pyi +2 -0
- aip_agents/examples/hello_world_langchain_mcp_http.py +34 -0
- aip_agents/examples/hello_world_langchain_mcp_http.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_http_interactive.py +130 -0
- aip_agents/examples/hello_world_langchain_mcp_http_interactive.pyi +16 -0
- aip_agents/examples/hello_world_langchain_mcp_http_stream.py +42 -0
- aip_agents/examples/hello_world_langchain_mcp_http_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_multi_server.py +155 -0
- aip_agents/examples/hello_world_langchain_mcp_multi_server.pyi +18 -0
- aip_agents/examples/hello_world_langchain_mcp_sse.py +34 -0
- aip_agents/examples/hello_world_langchain_mcp_sse.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_sse_stream.py +40 -0
- aip_agents/examples/hello_world_langchain_mcp_sse_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_stdio.py +30 -0
- aip_agents/examples/hello_world_langchain_mcp_stdio.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_stdio_stream.py +41 -0
- aip_agents/examples/hello_world_langchain_mcp_stdio_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_stream.py +36 -0
- aip_agents/examples/hello_world_langchain_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_stream_lm_invoker.py +39 -0
- aip_agents/examples/hello_world_langchain_stream_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_langflow_agent.py +163 -0
- aip_agents/examples/hello_world_langflow_agent.pyi +35 -0
- aip_agents/examples/hello_world_langgraph.py +39 -0
- aip_agents/examples/hello_world_langgraph.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_gl_connector_twitter.py +44 -0
- aip_agents/examples/hello_world_langgraph_gl_connector_twitter.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_http.py +31 -0
- aip_agents/examples/hello_world_langgraph_mcp_http.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_http_stream.py +34 -0
- aip_agents/examples/hello_world_langgraph_mcp_http_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_sse.py +35 -0
- aip_agents/examples/hello_world_langgraph_mcp_sse.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_sse_stream.py +50 -0
- aip_agents/examples/hello_world_langgraph_mcp_sse_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_stdio.py +35 -0
- aip_agents/examples/hello_world_langgraph_mcp_stdio.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_stdio_stream.py +50 -0
- aip_agents/examples/hello_world_langgraph_mcp_stdio_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_stream.py +43 -0
- aip_agents/examples/hello_world_langgraph_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_stream_lm_invoker.py +37 -0
- aip_agents/examples/hello_world_langgraph_stream_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_model_switch_cli.py +210 -0
- aip_agents/examples/hello_world_model_switch_cli.pyi +30 -0
- aip_agents/examples/hello_world_multi_agent_adk.py +75 -0
- aip_agents/examples/hello_world_multi_agent_adk.pyi +6 -0
- aip_agents/examples/hello_world_multi_agent_langchain.py +54 -0
- aip_agents/examples/hello_world_multi_agent_langchain.pyi +5 -0
- aip_agents/examples/hello_world_multi_agent_langgraph.py +66 -0
- aip_agents/examples/hello_world_multi_agent_langgraph.pyi +5 -0
- aip_agents/examples/hello_world_multi_agent_langgraph_lm_invoker.py +69 -0
- aip_agents/examples/hello_world_multi_agent_langgraph_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_pii_logger.py +21 -0
- aip_agents/examples/hello_world_pii_logger.pyi +5 -0
- aip_agents/examples/hello_world_ptc.py +49 -0
- aip_agents/examples/hello_world_ptc.pyi +5 -0
- aip_agents/examples/hello_world_sentry.py +133 -0
- aip_agents/examples/hello_world_sentry.pyi +21 -0
- aip_agents/examples/hello_world_step_limits.py +273 -0
- aip_agents/examples/hello_world_step_limits.pyi +17 -0
- aip_agents/examples/hello_world_stock_a2a_server.py +103 -0
- aip_agents/examples/hello_world_stock_a2a_server.pyi +17 -0
- aip_agents/examples/hello_world_tool_output_client.py +55 -0
- aip_agents/examples/hello_world_tool_output_client.pyi +5 -0
- aip_agents/examples/hello_world_tool_output_server.py +114 -0
- aip_agents/examples/hello_world_tool_output_server.pyi +19 -0
- aip_agents/examples/hitl_demo.py +724 -0
- aip_agents/examples/hitl_demo.pyi +67 -0
- aip_agents/examples/mcp_configs/configs.py +63 -0
- aip_agents/examples/mcp_servers/common.py +76 -0
- aip_agents/examples/mcp_servers/mcp_name.py +29 -0
- aip_agents/examples/mcp_servers/mcp_server_http.py +19 -0
- aip_agents/examples/mcp_servers/mcp_server_sse.py +19 -0
- aip_agents/examples/mcp_servers/mcp_server_stdio.py +19 -0
- aip_agents/examples/mcp_servers/mcp_time.py +10 -0
- aip_agents/examples/pii_demo_langgraph_client.py +69 -0
- aip_agents/examples/pii_demo_langgraph_client.pyi +5 -0
- aip_agents/examples/pii_demo_langgraph_server.py +126 -0
- aip_agents/examples/pii_demo_langgraph_server.pyi +20 -0
- aip_agents/examples/pii_demo_multi_agent_client.py +80 -0
- aip_agents/examples/pii_demo_multi_agent_client.pyi +5 -0
- aip_agents/examples/pii_demo_multi_agent_server.py +247 -0
- aip_agents/examples/pii_demo_multi_agent_server.pyi +40 -0
- aip_agents/examples/todolist_planning_a2a_langchain_client.py +70 -0
- aip_agents/examples/todolist_planning_a2a_langchain_client.pyi +5 -0
- aip_agents/examples/todolist_planning_a2a_langgraph_server.py +88 -0
- aip_agents/examples/todolist_planning_a2a_langgraph_server.pyi +19 -0
- aip_agents/examples/tools/__init__.py +27 -0
- aip_agents/examples/tools/__init__.pyi +9 -0
- aip_agents/examples/tools/adk_arithmetic_tools.py +36 -0
- aip_agents/examples/tools/adk_arithmetic_tools.pyi +24 -0
- aip_agents/examples/tools/adk_weather_tool.py +60 -0
- aip_agents/examples/tools/adk_weather_tool.pyi +18 -0
- aip_agents/examples/tools/data_generator_tool.py +103 -0
- aip_agents/examples/tools/data_generator_tool.pyi +15 -0
- aip_agents/examples/tools/data_visualization_tool.py +312 -0
- aip_agents/examples/tools/data_visualization_tool.pyi +19 -0
- aip_agents/examples/tools/image_artifact_tool.py +136 -0
- aip_agents/examples/tools/image_artifact_tool.pyi +26 -0
- aip_agents/examples/tools/langchain_arithmetic_tools.py +26 -0
- aip_agents/examples/tools/langchain_arithmetic_tools.pyi +17 -0
- aip_agents/examples/tools/langchain_currency_exchange_tool.py +88 -0
- aip_agents/examples/tools/langchain_currency_exchange_tool.pyi +20 -0
- aip_agents/examples/tools/langchain_graph_artifact_tool.py +172 -0
- aip_agents/examples/tools/langchain_graph_artifact_tool.pyi +25 -0
- aip_agents/examples/tools/langchain_weather_tool.py +48 -0
- aip_agents/examples/tools/langchain_weather_tool.pyi +19 -0
- aip_agents/examples/tools/langgraph_streaming_tool.py +130 -0
- aip_agents/examples/tools/langgraph_streaming_tool.pyi +43 -0
- aip_agents/examples/tools/mock_retrieval_tool.py +56 -0
- aip_agents/examples/tools/mock_retrieval_tool.pyi +13 -0
- aip_agents/examples/tools/pii_demo_tools.py +189 -0
- aip_agents/examples/tools/pii_demo_tools.pyi +54 -0
- aip_agents/examples/tools/random_chart_tool.py +142 -0
- aip_agents/examples/tools/random_chart_tool.pyi +20 -0
- aip_agents/examples/tools/serper_tool.py +202 -0
- aip_agents/examples/tools/serper_tool.pyi +16 -0
- aip_agents/examples/tools/stock_tools.py +82 -0
- aip_agents/examples/tools/stock_tools.pyi +36 -0
- aip_agents/examples/tools/table_generator_tool.py +167 -0
- aip_agents/examples/tools/table_generator_tool.pyi +22 -0
- aip_agents/examples/tools/time_tool.py +82 -0
- aip_agents/examples/tools/time_tool.pyi +15 -0
- aip_agents/examples/tools/weather_forecast_tool.py +38 -0
- aip_agents/examples/tools/weather_forecast_tool.pyi +14 -0
- aip_agents/executor/agent_executor.py +473 -0
- aip_agents/executor/base.py +48 -0
- aip_agents/guardrails/__init__.py +83 -0
- aip_agents/guardrails/__init__.pyi +6 -0
- aip_agents/guardrails/engines/__init__.py +69 -0
- aip_agents/guardrails/engines/__init__.pyi +4 -0
- aip_agents/guardrails/engines/base.py +90 -0
- aip_agents/guardrails/engines/base.pyi +61 -0
- aip_agents/guardrails/engines/nemo.py +101 -0
- aip_agents/guardrails/engines/nemo.pyi +46 -0
- aip_agents/guardrails/engines/phrase_matcher.py +113 -0
- aip_agents/guardrails/engines/phrase_matcher.pyi +48 -0
- aip_agents/guardrails/exceptions.py +39 -0
- aip_agents/guardrails/exceptions.pyi +23 -0
- aip_agents/guardrails/manager.py +163 -0
- aip_agents/guardrails/manager.pyi +42 -0
- aip_agents/guardrails/middleware.py +199 -0
- aip_agents/guardrails/middleware.pyi +87 -0
- aip_agents/guardrails/schemas.py +63 -0
- aip_agents/guardrails/schemas.pyi +43 -0
- aip_agents/guardrails/utils.py +45 -0
- aip_agents/guardrails/utils.pyi +19 -0
- aip_agents/mcp/__init__.py +1 -0
- aip_agents/mcp/__init__.pyi +0 -0
- aip_agents/mcp/client/__init__.py +14 -0
- aip_agents/mcp/client/__init__.pyi +5 -0
- aip_agents/mcp/client/base_mcp_client.py +369 -0
- aip_agents/mcp/client/base_mcp_client.pyi +148 -0
- aip_agents/mcp/client/connection_manager.py +228 -0
- aip_agents/mcp/client/connection_manager.pyi +51 -0
- aip_agents/mcp/client/google_adk/__init__.py +11 -0
- aip_agents/mcp/client/google_adk/__init__.pyi +3 -0
- aip_agents/mcp/client/google_adk/client.py +381 -0
- aip_agents/mcp/client/google_adk/client.pyi +75 -0
- aip_agents/mcp/client/langchain/__init__.py +11 -0
- aip_agents/mcp/client/langchain/__init__.pyi +3 -0
- aip_agents/mcp/client/langchain/client.py +265 -0
- aip_agents/mcp/client/langchain/client.pyi +48 -0
- aip_agents/mcp/client/persistent_session.py +612 -0
- aip_agents/mcp/client/persistent_session.pyi +122 -0
- aip_agents/mcp/client/session_pool.py +351 -0
- aip_agents/mcp/client/session_pool.pyi +101 -0
- aip_agents/mcp/client/transports.py +263 -0
- aip_agents/mcp/client/transports.pyi +132 -0
- aip_agents/mcp/utils/__init__.py +7 -0
- aip_agents/mcp/utils/__init__.pyi +0 -0
- aip_agents/mcp/utils/config_validator.py +139 -0
- aip_agents/mcp/utils/config_validator.pyi +82 -0
- aip_agents/memory/__init__.py +14 -0
- aip_agents/memory/__init__.pyi +5 -0
- aip_agents/memory/adapters/__init__.py +10 -0
- aip_agents/memory/adapters/__init__.pyi +4 -0
- aip_agents/memory/adapters/base_adapter.py +811 -0
- aip_agents/memory/adapters/base_adapter.pyi +176 -0
- aip_agents/memory/adapters/mem0.py +84 -0
- aip_agents/memory/adapters/mem0.pyi +22 -0
- aip_agents/memory/base.py +84 -0
- aip_agents/memory/base.pyi +60 -0
- aip_agents/memory/constants.py +49 -0
- aip_agents/memory/constants.pyi +25 -0
- aip_agents/memory/factory.py +86 -0
- aip_agents/memory/factory.pyi +24 -0
- aip_agents/memory/guidance.py +20 -0
- aip_agents/memory/guidance.pyi +3 -0
- aip_agents/memory/simple_memory.py +47 -0
- aip_agents/memory/simple_memory.pyi +23 -0
- aip_agents/middleware/__init__.py +17 -0
- aip_agents/middleware/__init__.pyi +5 -0
- aip_agents/middleware/base.py +96 -0
- aip_agents/middleware/base.pyi +75 -0
- aip_agents/middleware/manager.py +150 -0
- aip_agents/middleware/manager.pyi +84 -0
- aip_agents/middleware/todolist.py +274 -0
- aip_agents/middleware/todolist.pyi +125 -0
- aip_agents/ptc/__init__.py +48 -0
- aip_agents/ptc/__init__.pyi +10 -0
- aip_agents/ptc/doc_gen.py +122 -0
- aip_agents/ptc/doc_gen.pyi +40 -0
- aip_agents/ptc/exceptions.py +39 -0
- aip_agents/ptc/exceptions.pyi +22 -0
- aip_agents/ptc/executor.py +143 -0
- aip_agents/ptc/executor.pyi +73 -0
- aip_agents/ptc/mcp/__init__.py +45 -0
- aip_agents/ptc/mcp/__init__.pyi +7 -0
- aip_agents/ptc/mcp/sandbox_bridge.py +668 -0
- aip_agents/ptc/mcp/sandbox_bridge.pyi +47 -0
- aip_agents/ptc/mcp/templates/__init__.py +1 -0
- aip_agents/ptc/mcp/templates/__init__.pyi +0 -0
- aip_agents/ptc/mcp/templates/mcp_client.py.template +239 -0
- aip_agents/ptc/naming.py +184 -0
- aip_agents/ptc/naming.pyi +76 -0
- aip_agents/ptc/payload.py +26 -0
- aip_agents/ptc/payload.pyi +15 -0
- aip_agents/ptc/prompt_builder.py +571 -0
- aip_agents/ptc/prompt_builder.pyi +55 -0
- aip_agents/ptc/ptc_helper.py +16 -0
- aip_agents/ptc/ptc_helper.pyi +1 -0
- aip_agents/ptc/sandbox_bridge.py +58 -0
- aip_agents/ptc/sandbox_bridge.pyi +25 -0
- aip_agents/ptc/template_utils.py +33 -0
- aip_agents/ptc/template_utils.pyi +13 -0
- aip_agents/ptc/templates/__init__.py +1 -0
- aip_agents/ptc/templates/__init__.pyi +0 -0
- aip_agents/ptc/templates/ptc_helper.py.template +134 -0
- aip_agents/sandbox/__init__.py +43 -0
- aip_agents/sandbox/__init__.pyi +5 -0
- aip_agents/sandbox/defaults.py +9 -0
- aip_agents/sandbox/defaults.pyi +2 -0
- aip_agents/sandbox/e2b_runtime.py +267 -0
- aip_agents/sandbox/e2b_runtime.pyi +51 -0
- aip_agents/sandbox/template_builder.py +131 -0
- aip_agents/sandbox/template_builder.pyi +36 -0
- aip_agents/sandbox/types.py +24 -0
- aip_agents/sandbox/types.pyi +14 -0
- aip_agents/sandbox/validation.py +50 -0
- aip_agents/sandbox/validation.pyi +20 -0
- aip_agents/schema/__init__.py +69 -0
- aip_agents/schema/__init__.pyi +9 -0
- aip_agents/schema/a2a.py +56 -0
- aip_agents/schema/a2a.pyi +40 -0
- aip_agents/schema/agent.py +111 -0
- aip_agents/schema/agent.pyi +65 -0
- aip_agents/schema/hitl.py +157 -0
- aip_agents/schema/hitl.pyi +89 -0
- aip_agents/schema/langgraph.py +37 -0
- aip_agents/schema/langgraph.pyi +28 -0
- aip_agents/schema/model_id.py +97 -0
- aip_agents/schema/model_id.pyi +54 -0
- aip_agents/schema/step_limit.py +108 -0
- aip_agents/schema/step_limit.pyi +63 -0
- aip_agents/schema/storage.py +40 -0
- aip_agents/schema/storage.pyi +21 -0
- aip_agents/sentry/__init__.py +11 -0
- aip_agents/sentry/__init__.pyi +3 -0
- aip_agents/sentry/sentry.py +151 -0
- aip_agents/sentry/sentry.pyi +48 -0
- aip_agents/storage/__init__.py +41 -0
- aip_agents/storage/__init__.pyi +8 -0
- aip_agents/storage/base.py +85 -0
- aip_agents/storage/base.pyi +58 -0
- aip_agents/storage/clients/__init__.py +12 -0
- aip_agents/storage/clients/__init__.pyi +3 -0
- aip_agents/storage/clients/minio_client.py +318 -0
- aip_agents/storage/clients/minio_client.pyi +137 -0
- aip_agents/storage/config.py +62 -0
- aip_agents/storage/config.pyi +29 -0
- aip_agents/storage/providers/__init__.py +15 -0
- aip_agents/storage/providers/__init__.pyi +5 -0
- aip_agents/storage/providers/base.py +106 -0
- aip_agents/storage/providers/base.pyi +88 -0
- aip_agents/storage/providers/memory.py +114 -0
- aip_agents/storage/providers/memory.pyi +79 -0
- aip_agents/storage/providers/object_storage.py +214 -0
- aip_agents/storage/providers/object_storage.pyi +98 -0
- aip_agents/tools/__init__.py +64 -0
- aip_agents/tools/__init__.pyi +11 -0
- aip_agents/tools/browser_use/__init__.py +82 -0
- aip_agents/tools/browser_use/__init__.pyi +14 -0
- aip_agents/tools/browser_use/action_parser.py +103 -0
- aip_agents/tools/browser_use/action_parser.pyi +18 -0
- aip_agents/tools/browser_use/browser_use_tool.py +1120 -0
- aip_agents/tools/browser_use/browser_use_tool.pyi +50 -0
- aip_agents/tools/browser_use/llm_config.py +120 -0
- aip_agents/tools/browser_use/llm_config.pyi +52 -0
- aip_agents/tools/browser_use/minio_storage.py +198 -0
- aip_agents/tools/browser_use/minio_storage.pyi +109 -0
- aip_agents/tools/browser_use/schemas.py +119 -0
- aip_agents/tools/browser_use/schemas.pyi +32 -0
- aip_agents/tools/browser_use/session.py +76 -0
- aip_agents/tools/browser_use/session.pyi +4 -0
- aip_agents/tools/browser_use/session_errors.py +132 -0
- aip_agents/tools/browser_use/session_errors.pyi +53 -0
- aip_agents/tools/browser_use/steel_session_recording.py +317 -0
- aip_agents/tools/browser_use/steel_session_recording.pyi +63 -0
- aip_agents/tools/browser_use/streaming.py +815 -0
- aip_agents/tools/browser_use/streaming.pyi +81 -0
- aip_agents/tools/browser_use/structured_data_parser.py +257 -0
- aip_agents/tools/browser_use/structured_data_parser.pyi +86 -0
- aip_agents/tools/browser_use/structured_data_recovery.py +204 -0
- aip_agents/tools/browser_use/structured_data_recovery.pyi +43 -0
- aip_agents/tools/browser_use/types.py +78 -0
- aip_agents/tools/browser_use/types.pyi +45 -0
- aip_agents/tools/code_sandbox/__init__.py +26 -0
- aip_agents/tools/code_sandbox/__init__.pyi +3 -0
- aip_agents/tools/code_sandbox/constant.py +13 -0
- aip_agents/tools/code_sandbox/constant.pyi +4 -0
- aip_agents/tools/code_sandbox/e2b_cloud_sandbox_extended.py +306 -0
- aip_agents/tools/code_sandbox/e2b_cloud_sandbox_extended.pyi +102 -0
- aip_agents/tools/code_sandbox/e2b_sandbox_tool.py +411 -0
- aip_agents/tools/code_sandbox/e2b_sandbox_tool.pyi +29 -0
- aip_agents/tools/constants.py +177 -0
- aip_agents/tools/constants.pyi +138 -0
- aip_agents/tools/date_range_tool.py +554 -0
- aip_agents/tools/date_range_tool.pyi +21 -0
- aip_agents/tools/document_loader/__init__.py +44 -0
- aip_agents/tools/document_loader/__init__.pyi +7 -0
- aip_agents/tools/document_loader/base_reader.py +302 -0
- aip_agents/tools/document_loader/base_reader.pyi +75 -0
- aip_agents/tools/document_loader/docx_reader_tool.py +68 -0
- aip_agents/tools/document_loader/docx_reader_tool.pyi +10 -0
- aip_agents/tools/document_loader/excel_reader_tool.py +171 -0
- aip_agents/tools/document_loader/excel_reader_tool.pyi +26 -0
- aip_agents/tools/document_loader/pdf_reader_tool.py +79 -0
- aip_agents/tools/document_loader/pdf_reader_tool.pyi +11 -0
- aip_agents/tools/document_loader/pdf_splitter.py +169 -0
- aip_agents/tools/document_loader/pdf_splitter.pyi +18 -0
- aip_agents/tools/execute_ptc_code.py +308 -0
- aip_agents/tools/execute_ptc_code.pyi +90 -0
- aip_agents/tools/gl_connector/__init__.py +5 -0
- aip_agents/tools/gl_connector/__init__.pyi +3 -0
- aip_agents/tools/gl_connector/tool.py +383 -0
- aip_agents/tools/gl_connector/tool.pyi +74 -0
- aip_agents/tools/gl_connector_tools.py +119 -0
- aip_agents/tools/gl_connector_tools.pyi +39 -0
- aip_agents/tools/memory_search/__init__.py +29 -0
- aip_agents/tools/memory_search/__init__.pyi +5 -0
- aip_agents/tools/memory_search/base.py +200 -0
- aip_agents/tools/memory_search/base.pyi +69 -0
- aip_agents/tools/memory_search/mem0.py +365 -0
- aip_agents/tools/memory_search/mem0.pyi +29 -0
- aip_agents/tools/memory_search/schema.py +81 -0
- aip_agents/tools/memory_search/schema.pyi +25 -0
- aip_agents/tools/memory_search_tool.py +34 -0
- aip_agents/tools/memory_search_tool.pyi +3 -0
- aip_agents/tools/time_tool.py +117 -0
- aip_agents/tools/time_tool.pyi +16 -0
- aip_agents/tools/tool_config_injector.py +300 -0
- aip_agents/tools/tool_config_injector.pyi +26 -0
- aip_agents/tools/web_search/__init__.py +15 -0
- aip_agents/tools/web_search/__init__.pyi +3 -0
- aip_agents/tools/web_search/serper_tool.py +187 -0
- aip_agents/tools/web_search/serper_tool.pyi +19 -0
- aip_agents/types/__init__.py +70 -0
- aip_agents/types/__init__.pyi +36 -0
- aip_agents/types/a2a_events.py +13 -0
- aip_agents/types/a2a_events.pyi +3 -0
- aip_agents/utils/__init__.py +79 -0
- aip_agents/utils/__init__.pyi +11 -0
- aip_agents/utils/a2a_connector.py +1757 -0
- aip_agents/utils/a2a_connector.pyi +146 -0
- aip_agents/utils/artifact_helpers.py +502 -0
- aip_agents/utils/artifact_helpers.pyi +203 -0
- aip_agents/utils/constants.py +22 -0
- aip_agents/utils/constants.pyi +10 -0
- aip_agents/utils/datetime/__init__.py +34 -0
- aip_agents/utils/datetime/__init__.pyi +4 -0
- aip_agents/utils/datetime/normalization.py +231 -0
- aip_agents/utils/datetime/normalization.pyi +95 -0
- aip_agents/utils/datetime/timezone.py +206 -0
- aip_agents/utils/datetime/timezone.pyi +48 -0
- aip_agents/utils/env_loader.py +27 -0
- aip_agents/utils/env_loader.pyi +10 -0
- aip_agents/utils/event_handler_registry.py +58 -0
- aip_agents/utils/event_handler_registry.pyi +23 -0
- aip_agents/utils/file_prompt_utils.py +176 -0
- aip_agents/utils/file_prompt_utils.pyi +21 -0
- aip_agents/utils/final_response_builder.py +211 -0
- aip_agents/utils/final_response_builder.pyi +34 -0
- aip_agents/utils/formatter_llm_client.py +231 -0
- aip_agents/utils/formatter_llm_client.pyi +71 -0
- aip_agents/utils/langgraph/__init__.py +19 -0
- aip_agents/utils/langgraph/__init__.pyi +3 -0
- aip_agents/utils/langgraph/converter.py +128 -0
- aip_agents/utils/langgraph/converter.pyi +49 -0
- aip_agents/utils/langgraph/tool_managers/__init__.py +15 -0
- aip_agents/utils/langgraph/tool_managers/__init__.pyi +5 -0
- aip_agents/utils/langgraph/tool_managers/a2a_tool_manager.py +99 -0
- aip_agents/utils/langgraph/tool_managers/a2a_tool_manager.pyi +35 -0
- aip_agents/utils/langgraph/tool_managers/base_tool_manager.py +66 -0
- aip_agents/utils/langgraph/tool_managers/base_tool_manager.pyi +48 -0
- aip_agents/utils/langgraph/tool_managers/delegation_tool_manager.py +1096 -0
- aip_agents/utils/langgraph/tool_managers/delegation_tool_manager.pyi +56 -0
- aip_agents/utils/langgraph/tool_output_management.py +1047 -0
- aip_agents/utils/langgraph/tool_output_management.pyi +329 -0
- aip_agents/utils/logger.py +195 -0
- aip_agents/utils/logger.pyi +60 -0
- aip_agents/utils/metadata/__init__.py +27 -0
- aip_agents/utils/metadata/__init__.pyi +5 -0
- aip_agents/utils/metadata/activity_metadata_helper.py +407 -0
- aip_agents/utils/metadata/activity_metadata_helper.pyi +25 -0
- aip_agents/utils/metadata/activity_narrative/__init__.py +35 -0
- aip_agents/utils/metadata/activity_narrative/__init__.pyi +7 -0
- aip_agents/utils/metadata/activity_narrative/builder.py +817 -0
- aip_agents/utils/metadata/activity_narrative/builder.pyi +35 -0
- aip_agents/utils/metadata/activity_narrative/constants.py +51 -0
- aip_agents/utils/metadata/activity_narrative/constants.pyi +10 -0
- aip_agents/utils/metadata/activity_narrative/context.py +49 -0
- aip_agents/utils/metadata/activity_narrative/context.pyi +32 -0
- aip_agents/utils/metadata/activity_narrative/formatters.py +230 -0
- aip_agents/utils/metadata/activity_narrative/formatters.pyi +48 -0
- aip_agents/utils/metadata/activity_narrative/utils.py +35 -0
- aip_agents/utils/metadata/activity_narrative/utils.pyi +12 -0
- aip_agents/utils/metadata/schemas/__init__.py +16 -0
- aip_agents/utils/metadata/schemas/__init__.pyi +4 -0
- aip_agents/utils/metadata/schemas/activity_schema.py +29 -0
- aip_agents/utils/metadata/schemas/activity_schema.pyi +18 -0
- aip_agents/utils/metadata/schemas/thinking_schema.py +31 -0
- aip_agents/utils/metadata/schemas/thinking_schema.pyi +20 -0
- aip_agents/utils/metadata/thinking_metadata_helper.py +38 -0
- aip_agents/utils/metadata/thinking_metadata_helper.pyi +4 -0
- aip_agents/utils/metadata_helper.py +358 -0
- aip_agents/utils/metadata_helper.pyi +117 -0
- aip_agents/utils/name_preprocessor/__init__.py +17 -0
- aip_agents/utils/name_preprocessor/__init__.pyi +6 -0
- aip_agents/utils/name_preprocessor/base_name_preprocessor.py +73 -0
- aip_agents/utils/name_preprocessor/base_name_preprocessor.pyi +52 -0
- aip_agents/utils/name_preprocessor/google_name_preprocessor.py +100 -0
- aip_agents/utils/name_preprocessor/google_name_preprocessor.pyi +38 -0
- aip_agents/utils/name_preprocessor/name_preprocessor.py +87 -0
- aip_agents/utils/name_preprocessor/name_preprocessor.pyi +41 -0
- aip_agents/utils/name_preprocessor/openai_name_preprocessor.py +48 -0
- aip_agents/utils/name_preprocessor/openai_name_preprocessor.pyi +34 -0
- aip_agents/utils/pii/__init__.py +25 -0
- aip_agents/utils/pii/__init__.pyi +5 -0
- aip_agents/utils/pii/pii_handler.py +397 -0
- aip_agents/utils/pii/pii_handler.pyi +96 -0
- aip_agents/utils/pii/pii_helper.py +207 -0
- aip_agents/utils/pii/pii_helper.pyi +78 -0
- aip_agents/utils/pii/uuid_deanonymizer_mapping.py +195 -0
- aip_agents/utils/pii/uuid_deanonymizer_mapping.pyi +73 -0
- aip_agents/utils/reference_helper.py +273 -0
- aip_agents/utils/reference_helper.pyi +81 -0
- aip_agents/utils/sse_chunk_transformer.py +831 -0
- aip_agents/utils/sse_chunk_transformer.pyi +166 -0
- aip_agents/utils/step_limit_manager.py +265 -0
- aip_agents/utils/step_limit_manager.pyi +112 -0
- aip_agents/utils/token_usage_helper.py +156 -0
- aip_agents/utils/token_usage_helper.pyi +60 -0
- aip_agents_binary-0.6.4.dist-info/METADATA +673 -0
- aip_agents_binary-0.6.4.dist-info/RECORD +612 -0
- aip_agents_binary-0.6.4.dist-info/WHEEL +5 -0
- aip_agents_binary-0.6.4.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"""Example A2A server for a LangChainAgent Weather Service.
|
|
2
|
+
|
|
3
|
+
This server instantiates a LangChainAgent with weather lookup capabilities and serves it
|
|
4
|
+
via the A2A protocol using the to_a2a convenience method.
|
|
5
|
+
|
|
6
|
+
To run this server:
|
|
7
|
+
python examples/a2a/langchain_server_example.py
|
|
8
|
+
|
|
9
|
+
It will listen on http://localhost:8001 by default.
|
|
10
|
+
|
|
11
|
+
Authors:
|
|
12
|
+
Putu Ravindra Wiguna (putu.r.wiguna@gdplabs.id)
|
|
13
|
+
Christian Trisno Sen Long Chen (christian.t.s.l.chen@gdplabs.id)
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
import click
|
|
17
|
+
import uvicorn
|
|
18
|
+
from a2a.types import AgentCapabilities, AgentCard, AgentSkill
|
|
19
|
+
from dotenv import load_dotenv
|
|
20
|
+
|
|
21
|
+
from aip_agents.agent import LangGraphReactAgent
|
|
22
|
+
from aip_agents.examples.hello_world_a2a_langchain_server import SERVER_AGENT_NAME
|
|
23
|
+
from aip_agents.examples.tools.langchain_currency_exchange_tool import CurrencyExchangeTool
|
|
24
|
+
from aip_agents.utils.logger import get_logger
|
|
25
|
+
|
|
26
|
+
load_dotenv()
|
|
27
|
+
|
|
28
|
+
logger = get_logger(__name__)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@click.command()
|
|
32
|
+
@click.option("--host", "host", default="localhost", help="Host to bind the server to.")
|
|
33
|
+
@click.option("--port", "port", default=8885, help="Port to bind the server to.")
|
|
34
|
+
def main(host: str, port: int):
|
|
35
|
+
"""Runs the LangChain Currency Exchange A2A server.
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
host (str): Host to bind the server to.
|
|
39
|
+
port (int): Port to bind the server to.
|
|
40
|
+
"""
|
|
41
|
+
logger.info(f"Starting {SERVER_AGENT_NAME} on http://{host}:{port}")
|
|
42
|
+
|
|
43
|
+
agent_card = AgentCard(
|
|
44
|
+
name=SERVER_AGENT_NAME,
|
|
45
|
+
description="A weather agent that provides weather information for cities",
|
|
46
|
+
url=f"http://{host}:{port}",
|
|
47
|
+
version="1.0.0",
|
|
48
|
+
defaultInputModes=["text"],
|
|
49
|
+
defaultOutputModes=["text"],
|
|
50
|
+
capabilities=AgentCapabilities(streaming=True),
|
|
51
|
+
skills=[
|
|
52
|
+
AgentSkill(
|
|
53
|
+
id="currency_exchange",
|
|
54
|
+
name="Currency Exchange",
|
|
55
|
+
description="Provides current currency exchange information for cities.",
|
|
56
|
+
examples=["What's the currency exchange in Tokyo?", "Get currency exchange for London"],
|
|
57
|
+
tags=["currency_exchange"],
|
|
58
|
+
)
|
|
59
|
+
],
|
|
60
|
+
tags=["currency_exchange"],
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
agent = LangGraphReactAgent(
|
|
64
|
+
name="CurrencyAgent",
|
|
65
|
+
instruction="You are a currency exchange agent. Use the currency_exchange tool for conversions.",
|
|
66
|
+
model="openai/gpt-4o-mini",
|
|
67
|
+
tools=[CurrencyExchangeTool()],
|
|
68
|
+
tool_configs={"currency_exchange": {"tenant_id": "premium_corp", "auth_key": "premium_key_123"}},
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
app = agent.to_a2a(
|
|
72
|
+
agent_card=agent_card,
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
uvicorn.run(app, host=host, port=port)
|
|
76
|
+
logger.info("A2A application configured. Starting Uvicorn server...")
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
if __name__ == "__main__":
|
|
80
|
+
main()
|
|
@@ -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,41 @@
|
|
|
1
|
+
"""Minimal example demonstrating the GoogleADKAgent with tool usage and async operation.
|
|
2
|
+
|
|
3
|
+
This example shows how to create a simple calculator agent using Google's ADK
|
|
4
|
+
which automatically handles tool calling and conversation flow.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import asyncio
|
|
8
|
+
|
|
9
|
+
from aip_agents.agent.google_adk_agent import GoogleADKAgent
|
|
10
|
+
from aip_agents.examples.tools.adk_arithmetic_tools import sum_numbers
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
async def google_adk_example():
|
|
14
|
+
"""Demonstrates the GoogleADKAgent's arun method."""
|
|
15
|
+
agent_name = "GoogleADKCalculator"
|
|
16
|
+
|
|
17
|
+
# Create the agent with simplified instructions and our tool
|
|
18
|
+
agent = GoogleADKAgent(
|
|
19
|
+
name=agent_name,
|
|
20
|
+
instruction="""You are a calculator assistant. When asked math problems,
|
|
21
|
+
extract numbers and call sum_numbers tool to add them.
|
|
22
|
+
For multi-step problems, use multiple tool calls.""",
|
|
23
|
+
model="gemini-2.0-flash",
|
|
24
|
+
tools=[sum_numbers],
|
|
25
|
+
max_iterations=5, # Allow multiple tool calls if needed
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
# Use the same query as in LangGraph example for consistency
|
|
29
|
+
query = "What is the sum of 23 and 47? And then add 10 to that, then add 5 more."
|
|
30
|
+
print(f"--- Agent: {agent_name} ---")
|
|
31
|
+
print(f"Query: {query}")
|
|
32
|
+
|
|
33
|
+
print("\nRunning arun...")
|
|
34
|
+
response = await agent.arun(query=query)
|
|
35
|
+
print(f"[arun] Final Response: {response.get('output')}")
|
|
36
|
+
print("--- End of Google ADK Example ---")
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
if __name__ == "__main__":
|
|
40
|
+
# GOOGLE_API_KEY should be set in the environment.
|
|
41
|
+
asyncio.run(google_adk_example())
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"""Example showing Google ADK agent with MCP tools integration using Streamable HTTP transport.
|
|
2
|
+
|
|
3
|
+
This example demonstrates how to create a Google ADK agent that can use tools
|
|
4
|
+
from MCP servers via Streamable HTTP transport.
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Fachriza Dian Adhiatma (fachriza.d.adhiatma@gdplabs.id)
|
|
8
|
+
Putu Ravindra Wiguna (putu.r.wiguna@gdplabs.id)
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import asyncio
|
|
12
|
+
|
|
13
|
+
from aip_agents.agent.google_adk_agent import GoogleADKAgent
|
|
14
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_http
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
async def main():
|
|
18
|
+
"""Demonstrates the GoogleADKAgent with MCP tools via Streamable HTTP transport."""
|
|
19
|
+
agent = GoogleADKAgent(
|
|
20
|
+
name="GoogleADKMCPHTTP",
|
|
21
|
+
instruction="""You are a helpful assistant that can use playwright tools to browse the web.
|
|
22
|
+
If a user ask something, you try to answer it by browsing the web via playwright tools
|
|
23
|
+
Do not ask for clarification, just answer to the best of your ability using playwright tools.""",
|
|
24
|
+
model="gemini-2.0-flash",
|
|
25
|
+
max_iterations=5,
|
|
26
|
+
)
|
|
27
|
+
agent.add_mcp_server(mcp_config_http)
|
|
28
|
+
|
|
29
|
+
response = await agent.arun(query="Who is the Winner of La Liga in 2024/2025 Season? Browse it.")
|
|
30
|
+
print(f"Response: {response.get('output')}")
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
if __name__ == "__main__":
|
|
34
|
+
asyncio.run(main())
|
|
@@ -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,40 @@
|
|
|
1
|
+
"""Example showing Google ADK agent with MCP tools integration.
|
|
2
|
+
|
|
3
|
+
Transport: Streamable HTTP
|
|
4
|
+
Streaming: Yes
|
|
5
|
+
|
|
6
|
+
This example demonstrates how to create a Google ADK agent that can use tools
|
|
7
|
+
from MCP servers via Streamable HTTP transport while streaming the response
|
|
8
|
+
in real-time.
|
|
9
|
+
|
|
10
|
+
Authors:
|
|
11
|
+
Fachriza Dian Adhiatma (fachriza.d.adhiatma@gdplabs.id)
|
|
12
|
+
Putu Ravindra Wiguna (putu.r.wiguna@gdplabs.id)
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
import asyncio
|
|
16
|
+
|
|
17
|
+
from aip_agents.agent.google_adk_agent import GoogleADKAgent
|
|
18
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_http
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
async def main():
|
|
22
|
+
"""Demonstrates the GoogleADKAgent with MCP tools via Streamable HTTP transport and streaming."""
|
|
23
|
+
agent = GoogleADKAgent(
|
|
24
|
+
name="GoogleADKMCPHTTPStream",
|
|
25
|
+
instruction="""You are a helpful assistant that can use playwright tools to browse the web.
|
|
26
|
+
If a user ask something, you try to answer it by browsing the web via playwright tools
|
|
27
|
+
Do not ask for clarification, just answer to the best of your ability using playwright tools.""",
|
|
28
|
+
model="gemini-2.0-flash",
|
|
29
|
+
max_iterations=5,
|
|
30
|
+
)
|
|
31
|
+
agent.add_mcp_server(mcp_config_http)
|
|
32
|
+
query = (
|
|
33
|
+
"Go to huggingface.co, and then browse to the number 1 trending model page to find the abstract of the model"
|
|
34
|
+
)
|
|
35
|
+
async for chunk in agent.arun_stream(query=query):
|
|
36
|
+
print(chunk, end="", flush=True)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
if __name__ == "__main__":
|
|
40
|
+
asyncio.run(main())
|
|
@@ -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,44 @@
|
|
|
1
|
+
"""Example showing Google ADK agent with MCP tools integration using SSE transport.
|
|
2
|
+
|
|
3
|
+
This example demonstrates how to create a Google ADK agent that can use tools
|
|
4
|
+
from MCP servers via Server-Sent Events (SSE) transport.
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Fachriza Dian Adhiatma (fachriza.d.adhiatma@gdplabs.id)
|
|
8
|
+
Putu Ravindra Wiguna (putu.r.wiguna@gdplabs.id)
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import asyncio
|
|
12
|
+
|
|
13
|
+
from aip_agents.agent.google_adk_agent import GoogleADKAgent
|
|
14
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_sse
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
async def main():
|
|
18
|
+
"""Demonstrates the GoogleADKAgent with MCP tools via SSE transport."""
|
|
19
|
+
agent_name = "GoogleADKMCPSSE"
|
|
20
|
+
|
|
21
|
+
agent = GoogleADKAgent(
|
|
22
|
+
name=agent_name,
|
|
23
|
+
instruction="""You are a helpful assistant that can use playwright tools to browse the web.
|
|
24
|
+
If a user ask something, you try to answer it by browsing the web via playwright tools
|
|
25
|
+
Do not ask for clarification, just answer to the best of your ability using playwright tools.""",
|
|
26
|
+
model="gemini-2.0-flash",
|
|
27
|
+
tools=[],
|
|
28
|
+
max_iterations=5,
|
|
29
|
+
)
|
|
30
|
+
agent.add_mcp_server(mcp_config_sse)
|
|
31
|
+
|
|
32
|
+
query = "How many trophies did FC Barcelona win in 2024/2025 season?"
|
|
33
|
+
|
|
34
|
+
print(f"--- Agent: {agent_name} ---")
|
|
35
|
+
print(f"Query: {query}")
|
|
36
|
+
|
|
37
|
+
print("\nRunning arun with MCP SSE tools...")
|
|
38
|
+
response = await agent.arun(query=query)
|
|
39
|
+
print(f"[arun] Final Response: {response.get('output')}")
|
|
40
|
+
print("--- End of Google ADK MCP SSE Example ---")
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
if __name__ == "__main__":
|
|
44
|
+
asyncio.run(main())
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"""Example showing Google ADK agent with MCP tools integration using SSE transport and streaming capabilities.
|
|
2
|
+
|
|
3
|
+
This example demonstrates how to create a Google ADK agent that can use tools
|
|
4
|
+
from MCP servers via Server-Sent Events (SSE) transport while streaming the response
|
|
5
|
+
in real-time.
|
|
6
|
+
|
|
7
|
+
Authors:
|
|
8
|
+
Fachriza Dian Adhiatma (fachriza.d.adhiatma@gdplabs.id)
|
|
9
|
+
Putu Ravindra Wiguna (putu.r.wiguna@gdplabs.id)
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import asyncio
|
|
13
|
+
|
|
14
|
+
from aip_agents.agent.google_adk_agent import GoogleADKAgent
|
|
15
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_sse
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
async def main():
|
|
19
|
+
"""Demonstrates the GoogleADKAgent with MCP tools via SSE transport and streaming."""
|
|
20
|
+
agent_name = "GoogleADKMCPSSEStream"
|
|
21
|
+
|
|
22
|
+
agent = GoogleADKAgent(
|
|
23
|
+
name=agent_name,
|
|
24
|
+
instruction="""You are a helpful assistant that can use playwright tools to browse the web.
|
|
25
|
+
If a user ask something, you try to answer it by browsing the web via playwright tools
|
|
26
|
+
Do not ask for clarification, just answer to the best of your ability using playwright tools.""",
|
|
27
|
+
model="gemini-2.0-flash",
|
|
28
|
+
tools=[],
|
|
29
|
+
max_iterations=5,
|
|
30
|
+
)
|
|
31
|
+
agent.add_mcp_server(mcp_config_sse)
|
|
32
|
+
|
|
33
|
+
query = "How many trophies did FC Barcelona win in 2024/2025 season?"
|
|
34
|
+
|
|
35
|
+
print(f"--- Agent: {agent_name} ---")
|
|
36
|
+
print(f"Query: {query}")
|
|
37
|
+
|
|
38
|
+
print("\nRunning arun_stream with MCP SSE tools...")
|
|
39
|
+
print("Streaming response:")
|
|
40
|
+
|
|
41
|
+
async for chunk in agent.arun_stream(query=query):
|
|
42
|
+
print(chunk, end="", flush=True)
|
|
43
|
+
|
|
44
|
+
print("\n--- End of Google ADK MCP SSE Streaming Example ---")
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
if __name__ == "__main__":
|
|
48
|
+
asyncio.run(main())
|
|
@@ -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,44 @@
|
|
|
1
|
+
"""Example showing Google ADK agent with MCP tools integration using stdio transport.
|
|
2
|
+
|
|
3
|
+
This example demonstrates how to create a Google ADK agent that can use tools
|
|
4
|
+
from MCP servers via stdio (standard input/output) transport, which runs the
|
|
5
|
+
MCP server as a subprocess.
|
|
6
|
+
|
|
7
|
+
Authors:
|
|
8
|
+
Fachriza Dian Adhiatma (fachriza.d.adhiatma@gdplabs.id)
|
|
9
|
+
Putu Ravindra Wiguna (putu.r.wiguna@gdplabs.id)
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import asyncio
|
|
13
|
+
|
|
14
|
+
from aip_agents.agent.google_adk_agent import GoogleADKAgent
|
|
15
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_stdio
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
async def main():
|
|
19
|
+
"""Demonstrates the GoogleADKAgent with MCP tools via stdio transport."""
|
|
20
|
+
agent_name = "GoogleADKMCPStdio"
|
|
21
|
+
|
|
22
|
+
agent = GoogleADKAgent(
|
|
23
|
+
name=agent_name,
|
|
24
|
+
instruction="""You are a helpful assistant that can provide weather forecasts.
|
|
25
|
+
For weather, specify the day in lowercase (e.g., 'monday').""",
|
|
26
|
+
model="gemini-2.0-flash",
|
|
27
|
+
tools=[],
|
|
28
|
+
max_iterations=5,
|
|
29
|
+
)
|
|
30
|
+
agent.add_mcp_server(mcp_config_stdio)
|
|
31
|
+
|
|
32
|
+
query = "What's the weather forecast for monday?" # Uses MCP weather tool
|
|
33
|
+
|
|
34
|
+
print(f"--- Agent: {agent_name} ---")
|
|
35
|
+
print(f"Query: {query}")
|
|
36
|
+
|
|
37
|
+
print("\nRunning arun with MCP stdio tools...")
|
|
38
|
+
response = await agent.arun(query=query)
|
|
39
|
+
print(f"[arun] Final Response: {response.get('output')}")
|
|
40
|
+
print("--- End of Google ADK MCP Stdio Example ---")
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
if __name__ == "__main__":
|
|
44
|
+
asyncio.run(main())
|
|
@@ -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,48 @@
|
|
|
1
|
+
"""Example showing Google ADK agent with MCP tools integration using stdio transport and streaming capabilities.
|
|
2
|
+
|
|
3
|
+
This example demonstrates how to create a Google ADK agent that can use tools
|
|
4
|
+
from MCP servers via stdio (standard input/output) transport while streaming the response
|
|
5
|
+
in real-time. The MCP server runs as a subprocess.
|
|
6
|
+
|
|
7
|
+
Authors:
|
|
8
|
+
Fachriza Dian Adhiatma (fachriza.d.adhiatma@gdplabs.id)
|
|
9
|
+
Putu Ravindra Wiguna (putu.r.wiguna@gdplabs.id)
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import asyncio
|
|
13
|
+
|
|
14
|
+
from aip_agents.agent.google_adk_agent import GoogleADKAgent
|
|
15
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_stdio
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
async def main():
|
|
19
|
+
"""Demonstrates the GoogleADKAgent with MCP tools via stdio transport and streaming."""
|
|
20
|
+
agent_name = "GoogleADKMCPStdioStream"
|
|
21
|
+
|
|
22
|
+
agent = GoogleADKAgent(
|
|
23
|
+
name=agent_name,
|
|
24
|
+
instruction="""You are a helpful assistant that can provide weather forecasts.
|
|
25
|
+
For weather, specify the day in lowercase (e.g., 'monday').
|
|
26
|
+
Explain your steps clearly for streaming demonstration.""",
|
|
27
|
+
model="gemini-2.0-flash",
|
|
28
|
+
tools=[],
|
|
29
|
+
max_iterations=5,
|
|
30
|
+
)
|
|
31
|
+
agent.add_mcp_server(mcp_config_stdio)
|
|
32
|
+
|
|
33
|
+
query = "What's the weather forecast for monday?" # Uses MCP weather tool
|
|
34
|
+
|
|
35
|
+
print(f"--- Agent: {agent_name} ---")
|
|
36
|
+
print(f"Query: {query}")
|
|
37
|
+
|
|
38
|
+
print("\nRunning arun_stream with MCP stdio tools...")
|
|
39
|
+
print("Streaming response:")
|
|
40
|
+
|
|
41
|
+
async for chunk in agent.arun_stream(query=query):
|
|
42
|
+
print(chunk, end="", flush=True)
|
|
43
|
+
|
|
44
|
+
print("\n--- End of Google ADK MCP Stdio Streaming Example ---")
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
if __name__ == "__main__":
|
|
48
|
+
asyncio.run(main())
|
|
@@ -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,44 @@
|
|
|
1
|
+
"""Minimal example demonstrating the GoogleADKAgent's streaming capabilities with async execution.
|
|
2
|
+
|
|
3
|
+
This example shows how to use the arun_stream method to process responses in real-time
|
|
4
|
+
with Google's Agent Development Kit (ADK).
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import asyncio
|
|
8
|
+
|
|
9
|
+
from aip_agents.agent.google_adk_agent import GoogleADKAgent
|
|
10
|
+
from aip_agents.examples.tools.adk_arithmetic_tools import add_numbers
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
async def google_adk_example_stream():
|
|
14
|
+
"""Demonstrates the GoogleADKAgent's arun_stream method."""
|
|
15
|
+
agent_name = "GoogleADKStreamingCalculator"
|
|
16
|
+
|
|
17
|
+
# Create the agent with simplified instructions for streaming
|
|
18
|
+
agent = GoogleADKAgent(
|
|
19
|
+
name=agent_name,
|
|
20
|
+
instruction="""You are a calculator assistant. When asked math problems,
|
|
21
|
+
extract numbers and call add_numbers tool to add them.
|
|
22
|
+
Explain your steps clearly for streaming demonstration.""",
|
|
23
|
+
model="gemini-2.0-flash",
|
|
24
|
+
tools=[add_numbers],
|
|
25
|
+
max_iterations=5, # Allow multiple tool calls if needed
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
# Use the same query as in LangGraph example for consistency
|
|
29
|
+
query = "What is the sum of 23 and 47? And then add 10 to that, then add 5 more."
|
|
30
|
+
print(f"--- Agent: {agent_name} ---")
|
|
31
|
+
print(f"Query: {query}")
|
|
32
|
+
|
|
33
|
+
print("\nRunning arun_stream...")
|
|
34
|
+
print("Streaming response:")
|
|
35
|
+
|
|
36
|
+
# Stream the response chunks
|
|
37
|
+
async for chunk in agent.arun_stream(query=query):
|
|
38
|
+
print(chunk, end="", flush=True)
|
|
39
|
+
|
|
40
|
+
print("\n--- End of Google ADK Streaming Example ---")
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
if __name__ == "__main__":
|
|
44
|
+
asyncio.run(google_adk_example_stream())
|
|
@@ -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,28 @@
|
|
|
1
|
+
"""Minimal LangChain agent example demonstrating asynchronous run."""
|
|
2
|
+
|
|
3
|
+
import asyncio
|
|
4
|
+
|
|
5
|
+
from langchain_openai import ChatOpenAI
|
|
6
|
+
|
|
7
|
+
from aip_agents.agent import LangChainAgent
|
|
8
|
+
from aip_agents.examples.tools.langchain_arithmetic_tools import add_numbers
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
async def langchain_example():
|
|
12
|
+
"""Demonstrates the LangChainAgent's arun method."""
|
|
13
|
+
langchain_agent = LangChainAgent(
|
|
14
|
+
name="LangChainArithmeticAgent",
|
|
15
|
+
instruction="You are a helpful assistant that can add two numbers using the add_numbers tool.",
|
|
16
|
+
model=ChatOpenAI(model="gpt-4.1", temperature=0),
|
|
17
|
+
tools=[add_numbers],
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
response = await langchain_agent.arun(
|
|
21
|
+
query="What is the sum of 23 and 47? And then add 10 to that, then add 5 more."
|
|
22
|
+
)
|
|
23
|
+
print(response["output"])
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
if __name__ == "__main__":
|
|
27
|
+
# OPENAI_API_KEY should be set in the environment.
|
|
28
|
+
asyncio.run(langchain_example())
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"""Minimal LangChain agent example demonstrating asynchronous run."""
|
|
2
|
+
|
|
3
|
+
from aip_agents.agent import LangChainAgent
|
|
4
|
+
from aip_agents.examples.tools.langchain_weather_tool import weather_tool
|
|
5
|
+
|
|
6
|
+
if __name__ == "__main__":
|
|
7
|
+
langchain_agent = LangChainAgent(
|
|
8
|
+
name="LangChainWeatherAgent",
|
|
9
|
+
instruction="You are a helpful assistant that can get the weather in a given city using the get_weather tool.",
|
|
10
|
+
model="openai/gpt-4o",
|
|
11
|
+
tools=[weather_tool],
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
response = langchain_agent.run(query="What is the weather in Tokyo?")
|
|
15
|
+
print(response["output"])
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"""Example showing LangChain agent with MCP tools integration using Streamable HTTP transport.
|
|
2
|
+
|
|
3
|
+
Authors:
|
|
4
|
+
Putu Ravindra Wiguna (putu.r.wiguna@gdplabs.id)
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import asyncio
|
|
8
|
+
|
|
9
|
+
from langchain_openai import ChatOpenAI
|
|
10
|
+
|
|
11
|
+
from aip_agents.agent import LangChainAgent
|
|
12
|
+
from aip_agents.examples.mcp_configs.configs import mcp_config_http
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
async def main():
|
|
16
|
+
"""Demonstrates the LangChainAgent with MCP tools via Streamable HTTP transport."""
|
|
17
|
+
langchain_agent = LangChainAgent(
|
|
18
|
+
name="langchain_mcp_example",
|
|
19
|
+
instruction=(
|
|
20
|
+
"You are a helpful assistant that can browse the web. If you are blocked by captcha, try another website."
|
|
21
|
+
),
|
|
22
|
+
model=ChatOpenAI(model="gpt-4.1", temperature=0),
|
|
23
|
+
)
|
|
24
|
+
langchain_agent.add_mcp_server(mcp_config_http)
|
|
25
|
+
|
|
26
|
+
response = await langchain_agent.arun(query="What's the best restaurant in San Francisco, search it")
|
|
27
|
+
print(response["output"])
|
|
28
|
+
print("-" * 50)
|
|
29
|
+
response = await langchain_agent.arun(query="What's the best restaurant in New York, search it")
|
|
30
|
+
print(response["output"])
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
if __name__ == "__main__":
|
|
34
|
+
asyncio.run(main())
|