aip-agents-binary 0.5.25b1__py3-none-macosx_13_0_arm64.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__.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 +2948 -0
- aip_agents/agent/base_langgraph_agent.pyi +232 -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 +433 -0
- aip_agents/agent/langgraph_memory_enhancer_agent.pyi +49 -0
- aip_agents/agent/langgraph_react_agent.py +2596 -0
- aip_agents/agent/langgraph_react_agent.pyi +131 -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/demo_memory_recall.py +401 -0
- aip_agents/examples/demo_memory_recall.pyi +58 -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_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 +46 -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 +193 -0
- aip_agents/mcp/client/connection_manager.pyi +48 -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 +362 -0
- aip_agents/mcp/client/persistent_session.pyi +113 -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 +228 -0
- aip_agents/mcp/client/transports.pyi +123 -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 +717 -0
- aip_agents/memory/adapters/base_adapter.pyi +150 -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/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 +53 -0
- aip_agents/tools/__init__.pyi +9 -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 +1112 -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 +813 -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/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/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 +22 -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 +258 -0
- aip_agents/tools/memory_search/mem0.pyi +19 -0
- aip_agents/tools/memory_search/schema.py +48 -0
- aip_agents/tools/memory_search/schema.pyi +15 -0
- aip_agents/tools/memory_search_tool.py +26 -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 +1071 -0
- aip_agents/utils/langgraph/tool_managers/delegation_tool_manager.pyi +56 -0
- aip_agents/utils/langgraph/tool_output_management.py +967 -0
- aip_agents/utils/langgraph/tool_output_management.pyi +292 -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.5.25b1.dist-info/METADATA +681 -0
- aip_agents_binary-0.5.25b1.dist-info/RECORD +566 -0
- aip_agents_binary-0.5.25b1.dist-info/WHEEL +5 -0
- aip_agents_binary-0.5.25b1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,79 @@
|
|
|
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/hello_world_a2a_langchain_server.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
|
+
"""
|
|
14
|
+
|
|
15
|
+
import click
|
|
16
|
+
import uvicorn
|
|
17
|
+
from a2a.types import AgentCapabilities, AgentCard, AgentSkill
|
|
18
|
+
from langchain_openai import ChatOpenAI
|
|
19
|
+
|
|
20
|
+
from aip_agents.agent import LangChainAgent
|
|
21
|
+
from aip_agents.examples.tools.langchain_weather_tool import weather_tool
|
|
22
|
+
from aip_agents.utils.logger import get_logger
|
|
23
|
+
|
|
24
|
+
logger = get_logger(__name__)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
SERVER_AGENT_NAME = "Weather Agent LangChain"
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
@click.command()
|
|
31
|
+
@click.option("--host", "host", default="localhost", help="Host to bind the server to.")
|
|
32
|
+
@click.option("--port", "port", default=8001, help="Port to bind the server to.")
|
|
33
|
+
def main(host: str, port: int):
|
|
34
|
+
"""Runs the LangChain Weather A2A server.
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
host (str): Host to bind the server to.
|
|
38
|
+
port (int): Port to bind the server to.
|
|
39
|
+
"""
|
|
40
|
+
logger.info(f"Starting {SERVER_AGENT_NAME} on http://{host}:{port}")
|
|
41
|
+
|
|
42
|
+
agent_card = AgentCard(
|
|
43
|
+
name=SERVER_AGENT_NAME,
|
|
44
|
+
description="A weather agent that provides weather information for cities",
|
|
45
|
+
url=f"http://{host}:{port}",
|
|
46
|
+
version="1.0.0",
|
|
47
|
+
defaultInputModes=["text"],
|
|
48
|
+
defaultOutputModes=["text"],
|
|
49
|
+
capabilities=AgentCapabilities(streaming=True),
|
|
50
|
+
skills=[
|
|
51
|
+
AgentSkill(
|
|
52
|
+
id="weather",
|
|
53
|
+
name="Weather Lookup",
|
|
54
|
+
description="Provides current weather information for cities.",
|
|
55
|
+
examples=["What's the weather in Tokyo?", "Get weather for London"],
|
|
56
|
+
tags=["weather"],
|
|
57
|
+
)
|
|
58
|
+
],
|
|
59
|
+
tags=["weather"],
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
langchain_agent = LangChainAgent(
|
|
63
|
+
name=SERVER_AGENT_NAME,
|
|
64
|
+
instruction="""You are a weather agent that provides weather information for cities.
|
|
65
|
+
Always use the weather_tool for looking up weather data. Format your responses clearly and professionally.""",
|
|
66
|
+
model=ChatOpenAI(model="gpt-4.1", temperature=0),
|
|
67
|
+
tools=[weather_tool],
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
app = langchain_agent.to_a2a(
|
|
71
|
+
agent_card=agent_card,
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
uvicorn.run(app, host=host, port=port)
|
|
75
|
+
logger.info("A2A application configured. Starting Uvicorn server...")
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
if __name__ == "__main__":
|
|
79
|
+
main()
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.agent import LangChainAgent as LangChainAgent
|
|
3
|
+
from aip_agents.examples.tools.langchain_weather_tool import weather_tool as weather_tool
|
|
4
|
+
from aip_agents.utils.logger import get_logger as get_logger
|
|
5
|
+
|
|
6
|
+
logger: Incomplete
|
|
7
|
+
SERVER_AGENT_NAME: str
|
|
8
|
+
|
|
9
|
+
def main(host: str, port: int):
|
|
10
|
+
"""Runs the LangChain Weather 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,78 @@
|
|
|
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
|
+
"""
|
|
14
|
+
|
|
15
|
+
import click
|
|
16
|
+
import uvicorn
|
|
17
|
+
from a2a.types import AgentCapabilities, AgentCard, AgentSkill
|
|
18
|
+
|
|
19
|
+
from aip_agents.agent import LangChainAgent
|
|
20
|
+
from aip_agents.examples.tools.langchain_weather_tool import weather_tool
|
|
21
|
+
from aip_agents.utils.logger import get_logger
|
|
22
|
+
|
|
23
|
+
logger = get_logger(__name__)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
SERVER_AGENT_NAME = "WeatherAgentLangChain"
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@click.command()
|
|
30
|
+
@click.option("--host", "host", default="localhost", help="Host to bind the server to.")
|
|
31
|
+
@click.option("--port", "port", default=8001, help="Port to bind the server to.")
|
|
32
|
+
def main(host: str, port: int):
|
|
33
|
+
"""Runs the LangChain Weather A2A server.
|
|
34
|
+
|
|
35
|
+
Args:
|
|
36
|
+
host (str): Host to bind the server to.
|
|
37
|
+
port (int): Port to bind the server to.
|
|
38
|
+
"""
|
|
39
|
+
logger.info(f"Starting {SERVER_AGENT_NAME} on http://{host}:{port}")
|
|
40
|
+
|
|
41
|
+
agent_card = AgentCard(
|
|
42
|
+
name=SERVER_AGENT_NAME,
|
|
43
|
+
description="A weather agent that provides weather information for cities",
|
|
44
|
+
url=f"http://{host}:{port}",
|
|
45
|
+
version="1.0.0",
|
|
46
|
+
defaultInputModes=["text"],
|
|
47
|
+
defaultOutputModes=["text"],
|
|
48
|
+
capabilities=AgentCapabilities(streaming=True),
|
|
49
|
+
skills=[
|
|
50
|
+
AgentSkill(
|
|
51
|
+
id="weather",
|
|
52
|
+
name="Weather Lookup",
|
|
53
|
+
description="Provides current weather information for cities.",
|
|
54
|
+
examples=["What's the weather in Tokyo?", "Get weather for London"],
|
|
55
|
+
tags=["weather"],
|
|
56
|
+
)
|
|
57
|
+
],
|
|
58
|
+
tags=["weather"],
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
langchain_agent = LangChainAgent(
|
|
62
|
+
name=SERVER_AGENT_NAME,
|
|
63
|
+
instruction="""You are a weather agent that provides weather information for cities.
|
|
64
|
+
Always use the weather_tool for looking up weather data. Format your responses clearly and professionally.""",
|
|
65
|
+
model="openai/gpt-4o",
|
|
66
|
+
tools=[weather_tool],
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
app = langchain_agent.to_a2a(
|
|
70
|
+
agent_card=agent_card,
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
uvicorn.run(app, host=host, port=port)
|
|
74
|
+
logger.info("A2A application configured. Starting Uvicorn server...")
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
if __name__ == "__main__":
|
|
78
|
+
main()
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.agent import LangChainAgent as LangChainAgent
|
|
3
|
+
from aip_agents.examples.tools.langchain_weather_tool import weather_tool as weather_tool
|
|
4
|
+
from aip_agents.utils.logger import get_logger as get_logger
|
|
5
|
+
|
|
6
|
+
logger: Incomplete
|
|
7
|
+
SERVER_AGENT_NAME: str
|
|
8
|
+
|
|
9
|
+
def main(host: str, port: int):
|
|
10
|
+
"""Runs the LangChain Weather 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,83 @@
|
|
|
1
|
+
"""Example of a LangflowAgent client that can interact with A2A servers via streaming.
|
|
2
|
+
|
|
3
|
+
This example demonstrates:
|
|
4
|
+
1. Configuring A2A settings for a client agent.
|
|
5
|
+
2. Discovering and communicating with Langflow agents via A2A.
|
|
6
|
+
3. Using streaming A2A communication for real-time responses.
|
|
7
|
+
4. Handling streaming responses and providing relevant interactions.
|
|
8
|
+
|
|
9
|
+
Authors:
|
|
10
|
+
Christian Trisno Sen Long Chen (christian.t.s.l.chen@gdplabs.id)
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
import asyncio
|
|
14
|
+
|
|
15
|
+
from dotenv import load_dotenv
|
|
16
|
+
|
|
17
|
+
from aip_agents.agent.langflow_agent import LangflowAgent
|
|
18
|
+
from aip_agents.schema.agent import A2AClientConfig
|
|
19
|
+
from aip_agents.utils.logger import get_logger
|
|
20
|
+
|
|
21
|
+
logger = get_logger(__name__)
|
|
22
|
+
load_dotenv()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
async def main():
|
|
26
|
+
"""Main function demonstrating the Langflow client with streaming A2A capabilities."""
|
|
27
|
+
# Create the LangflowAgent client
|
|
28
|
+
client_agent = LangflowAgent(
|
|
29
|
+
name="LangflowA2AClient",
|
|
30
|
+
flow_id="dummy-flow-id", # Not used for client operations
|
|
31
|
+
description="Client agent for A2A streaming testing",
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
# Discover agents
|
|
35
|
+
client_a2a_config = A2AClientConfig(
|
|
36
|
+
discovery_urls=["http://localhost:8787"],
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
print("🔍 Discovering A2A agents...")
|
|
40
|
+
agent_cards = client_agent.discover_agents(client_a2a_config)
|
|
41
|
+
|
|
42
|
+
if not agent_cards:
|
|
43
|
+
logger.error("❌ No agents discovered!")
|
|
44
|
+
print("💡 Make sure the A2A server is running:")
|
|
45
|
+
print(" python aip_agents/examples/hello_world_a2a_langflow_server.py")
|
|
46
|
+
return
|
|
47
|
+
|
|
48
|
+
print(f"✅ Discovered {len(agent_cards)} agent(s):")
|
|
49
|
+
for i, agent_card in enumerate(agent_cards, 1):
|
|
50
|
+
print(f" {i}. {agent_card.name} - {agent_card.description}")
|
|
51
|
+
|
|
52
|
+
# Use streaming A2A communication
|
|
53
|
+
query = "Tell me a short story about a robot learning to paint"
|
|
54
|
+
print(f"\n📡 Streaming Query: {query}")
|
|
55
|
+
print("🎯 Response (streaming):")
|
|
56
|
+
print("-" * 50)
|
|
57
|
+
|
|
58
|
+
try:
|
|
59
|
+
chunk_count = 0
|
|
60
|
+
|
|
61
|
+
async for chunk in client_agent.astream_to_agent(agent_card=agent_cards[0], message=query):
|
|
62
|
+
chunk_count += 1
|
|
63
|
+
content = chunk.get("content", "")
|
|
64
|
+
status = chunk.get("status", "unknown")
|
|
65
|
+
is_final = chunk.get("final", False)
|
|
66
|
+
|
|
67
|
+
if content:
|
|
68
|
+
if status == "success":
|
|
69
|
+
print(content)
|
|
70
|
+
else:
|
|
71
|
+
print(f"\n[{status}] {content}")
|
|
72
|
+
|
|
73
|
+
# Log completion but don't break - let stream finish naturally
|
|
74
|
+
if is_final:
|
|
75
|
+
print(f"\n\n✅ Stream completed! ({chunk_count} chunks received)")
|
|
76
|
+
|
|
77
|
+
except Exception as e:
|
|
78
|
+
logger.error(f"❌ Streaming error: {e}")
|
|
79
|
+
print(f"Error during A2A streaming: {e}")
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
if __name__ == "__main__":
|
|
83
|
+
asyncio.run(main())
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.agent.langflow_agent import LangflowAgent as LangflowAgent
|
|
3
|
+
from aip_agents.schema.agent import A2AClientConfig as A2AClientConfig
|
|
4
|
+
from aip_agents.utils.logger import get_logger as get_logger
|
|
5
|
+
|
|
6
|
+
logger: Incomplete
|
|
7
|
+
|
|
8
|
+
async def main() -> None:
|
|
9
|
+
"""Main function demonstrating the Langflow client with streaming A2A capabilities."""
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"""Example A2A server for a LangflowAgent.
|
|
2
|
+
|
|
3
|
+
This server instantiates a LangflowAgent and serves it via the A2A protocol
|
|
4
|
+
using the proper A2A server setup.
|
|
5
|
+
|
|
6
|
+
To run this server:
|
|
7
|
+
python examples/hello_world_a2a_langflow_server.py
|
|
8
|
+
|
|
9
|
+
It will listen on http://localhost:8787 by default.
|
|
10
|
+
|
|
11
|
+
Authors:
|
|
12
|
+
Christian Trisno Sen Long Chen (christian.t.s.l.chen@gdplabs.id)
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
import click
|
|
16
|
+
import uvicorn
|
|
17
|
+
from a2a.types import AgentCapabilities, AgentCard, AgentSkill
|
|
18
|
+
from dotenv import load_dotenv
|
|
19
|
+
|
|
20
|
+
from aip_agents.agent.langflow_agent import LangflowAgent
|
|
21
|
+
from aip_agents.utils.logger import get_logger
|
|
22
|
+
|
|
23
|
+
logger = get_logger(__name__)
|
|
24
|
+
|
|
25
|
+
SERVER_AGENT_NAME = "LangflowA2AServer"
|
|
26
|
+
load_dotenv()
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@click.command()
|
|
30
|
+
@click.option("--host", "host", default="localhost", help="Host to bind the server to.")
|
|
31
|
+
@click.option("--port", "port", default=8787, help="Port to bind the server to.")
|
|
32
|
+
def main(host: str, port: int):
|
|
33
|
+
"""Runs the Langflow A2A server.
|
|
34
|
+
|
|
35
|
+
Args:
|
|
36
|
+
host (str): Host to bind the server to.
|
|
37
|
+
port (int): Port to bind the server to.
|
|
38
|
+
"""
|
|
39
|
+
logger.info(f"Starting {SERVER_AGENT_NAME} on http://{host}:{port}")
|
|
40
|
+
|
|
41
|
+
agent_card = AgentCard(
|
|
42
|
+
name=SERVER_AGENT_NAME,
|
|
43
|
+
description="A Langflow agent that provides AI assistance through A2A protocol",
|
|
44
|
+
url=f"http://{host}:{port}",
|
|
45
|
+
version="1.0.0",
|
|
46
|
+
author="AIP Agents SDK",
|
|
47
|
+
defaultInputModes=["text"],
|
|
48
|
+
defaultOutputModes=["text"],
|
|
49
|
+
capabilities=AgentCapabilities(streaming=True),
|
|
50
|
+
skills=[
|
|
51
|
+
AgentSkill(
|
|
52
|
+
id="general_assistance",
|
|
53
|
+
name="General Assistance",
|
|
54
|
+
description="Provides general AI assistance through Langflow",
|
|
55
|
+
examples=[
|
|
56
|
+
"Answer questions about any topic",
|
|
57
|
+
"Help with writing and editing",
|
|
58
|
+
"Provide explanations and analysis",
|
|
59
|
+
"Creative content generation",
|
|
60
|
+
],
|
|
61
|
+
tags=["ai", "assistant", "langflow", "chat"],
|
|
62
|
+
)
|
|
63
|
+
],
|
|
64
|
+
tags=["langflow", "ai", "assistant"],
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
# Create the Langflow agent
|
|
68
|
+
langflow_agent = LangflowAgent(
|
|
69
|
+
name=SERVER_AGENT_NAME,
|
|
70
|
+
flow_id="6dd45ac0-5c05-44c1-9825-66c6c6e516f7",
|
|
71
|
+
description="A Langflow agent that provides AI assistance through A2A protocol",
|
|
72
|
+
base_url="https://langflow.obrol.id",
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
app = langflow_agent.to_a2a(agent_card=agent_card)
|
|
76
|
+
|
|
77
|
+
logger.info("A2A application configured. Starting Uvicorn server...")
|
|
78
|
+
uvicorn.run(app, host=host, port=port)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
if __name__ == "__main__":
|
|
82
|
+
main()
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.agent.langflow_agent import LangflowAgent as LangflowAgent
|
|
3
|
+
from aip_agents.utils.logger import get_logger as get_logger
|
|
4
|
+
|
|
5
|
+
logger: Incomplete
|
|
6
|
+
SERVER_AGENT_NAME: str
|
|
7
|
+
|
|
8
|
+
def main(host: str, port: int):
|
|
9
|
+
"""Runs the Langflow A2A server.
|
|
10
|
+
|
|
11
|
+
Args:
|
|
12
|
+
host (str): Host to bind the server to.
|
|
13
|
+
port (int): Port to bind the server to.
|
|
14
|
+
"""
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"""Example of a General Assistant LangGraphAgent that can delegate tasks to specialized agents.
|
|
2
|
+
|
|
3
|
+
This example demonstrates:
|
|
4
|
+
1. Configuring A2A settings for a client agent.
|
|
5
|
+
2. Creating a general assistant agent that can help with various queries.
|
|
6
|
+
3. Delegating specific tasks to specialized agents via A2A.
|
|
7
|
+
4. Handling artifacts in the response.
|
|
8
|
+
|
|
9
|
+
Authors:
|
|
10
|
+
Christian Trisno Sen Long Chen (christian.t.s.l.chen@gdplabs.id)
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
import asyncio
|
|
14
|
+
import base64
|
|
15
|
+
|
|
16
|
+
from langchain_openai import ChatOpenAI
|
|
17
|
+
|
|
18
|
+
from aip_agents.agent import LangGraphAgent
|
|
19
|
+
from aip_agents.schema.agent import A2AClientConfig
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
async def main():
|
|
23
|
+
"""Main function demonstrating the General Assistant agent with A2A capabilities."""
|
|
24
|
+
llm = ChatOpenAI(model="gpt-4.1", streaming=True)
|
|
25
|
+
assistant_agent = LangGraphAgent(
|
|
26
|
+
name="AssistantAgent",
|
|
27
|
+
instruction="""You are a helpful assistant that can help with various tasks
|
|
28
|
+
by delegating to specialized agents.""",
|
|
29
|
+
model=llm,
|
|
30
|
+
tools=[],
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
# Discover agents
|
|
34
|
+
client_a2a_config = A2AClientConfig(
|
|
35
|
+
discovery_urls=["http://localhost:8999"],
|
|
36
|
+
)
|
|
37
|
+
agent_cards = assistant_agent.discover_agents(client_a2a_config)
|
|
38
|
+
|
|
39
|
+
# Test query
|
|
40
|
+
query = "Generate a data table with 5 rows and 3 columns showing Name, Age, and City and Create a simple image."
|
|
41
|
+
result = assistant_agent.send_to_agent(agent_card=agent_cards[0], message=query)
|
|
42
|
+
print(f"Result: {result}")
|
|
43
|
+
|
|
44
|
+
# Handle artifacts from result
|
|
45
|
+
artifacts = result.get("artifacts", [])
|
|
46
|
+
if artifacts:
|
|
47
|
+
print(f"\n--- {len(artifacts)} Artifacts Received ---")
|
|
48
|
+
for artifact in artifacts:
|
|
49
|
+
name = artifact.get("name", "unknown")
|
|
50
|
+
mime_type = artifact.get("mime_type", "unknown")
|
|
51
|
+
file_data = artifact.get("file_data")
|
|
52
|
+
|
|
53
|
+
print(f"Name: {name}")
|
|
54
|
+
print(f"Type: {mime_type}")
|
|
55
|
+
|
|
56
|
+
if file_data:
|
|
57
|
+
try:
|
|
58
|
+
if mime_type == "text/csv":
|
|
59
|
+
decoded_content = base64.b64decode(file_data).decode("utf-8")
|
|
60
|
+
print(f"CSV Preview (first 200 chars): {decoded_content[:200]}...")
|
|
61
|
+
elif mime_type.startswith("image/"):
|
|
62
|
+
file_size = len(base64.b64decode(file_data))
|
|
63
|
+
print(f"Image size: {file_size} bytes")
|
|
64
|
+
else:
|
|
65
|
+
print("File data available (base64 encoded)")
|
|
66
|
+
except Exception as e:
|
|
67
|
+
print(f"Could not decode file data: {e}")
|
|
68
|
+
print("---")
|
|
69
|
+
print("--- End Artifacts ---\n")
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
if __name__ == "__main__":
|
|
73
|
+
asyncio.run(main())
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"""Example of a General Assistant LangGraphAgent that can delegate tasks to specialized agents.
|
|
2
|
+
|
|
3
|
+
This example demonstrates:
|
|
4
|
+
1. Configuring A2A settings for a client agent.
|
|
5
|
+
2. Creating a general assistant agent that can help with various queries.
|
|
6
|
+
3. Delegating specific tasks to specialized agents via A2A with streaming.
|
|
7
|
+
4. Handling streaming responses and providing relevant advice.
|
|
8
|
+
|
|
9
|
+
Authors:
|
|
10
|
+
Christian Trisno Sen Long Chen (christian.t.s.l.chen@gdplabs.id)
|
|
11
|
+
Putu Ravindra Wiguna (putu.r.wiguna@gdplabs.id)
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
import asyncio
|
|
15
|
+
import base64
|
|
16
|
+
|
|
17
|
+
from langchain_openai import ChatOpenAI
|
|
18
|
+
|
|
19
|
+
from aip_agents.agent import LangGraphAgent
|
|
20
|
+
from aip_agents.schema.agent import A2AClientConfig
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
async def main():
|
|
24
|
+
"""Main function demonstrating the General Assistant agent with streaming A2A capabilities."""
|
|
25
|
+
llm = ChatOpenAI(model="gpt-4.1", streaming=True)
|
|
26
|
+
assistant_agent = LangGraphAgent(
|
|
27
|
+
name="AssistantAgent",
|
|
28
|
+
instruction="""You are a helpful assistant that can help with various tasks
|
|
29
|
+
by delegating to specialized agents.""",
|
|
30
|
+
model=llm,
|
|
31
|
+
tools=[],
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
# Discover agents
|
|
35
|
+
client_a2a_config = A2AClientConfig(
|
|
36
|
+
discovery_urls=["http://localhost:8999"],
|
|
37
|
+
)
|
|
38
|
+
agent_cards = assistant_agent.discover_agents(client_a2a_config)
|
|
39
|
+
|
|
40
|
+
# Test query
|
|
41
|
+
query = "Generate me just 1 single image and a table data of 10 rows"
|
|
42
|
+
|
|
43
|
+
async for chunk in assistant_agent.astream_to_agent(agent_card=agent_cards[0], message=query):
|
|
44
|
+
content = chunk.get("content", "")
|
|
45
|
+
if content:
|
|
46
|
+
print(content)
|
|
47
|
+
|
|
48
|
+
# Handle artifacts
|
|
49
|
+
if chunk.get("status") == "success" and chunk.get("artifacts"):
|
|
50
|
+
for artifact in chunk.get("artifacts", []):
|
|
51
|
+
artifact_name = artifact.get("name", "unknown")
|
|
52
|
+
mime_type = artifact.get("mime_type", "unknown")
|
|
53
|
+
file_data = artifact.get("file_data")
|
|
54
|
+
|
|
55
|
+
print("\n--- Artifact Received ---")
|
|
56
|
+
print(f"Name: {artifact_name}")
|
|
57
|
+
print(f"Type: {mime_type}")
|
|
58
|
+
|
|
59
|
+
if file_data:
|
|
60
|
+
try:
|
|
61
|
+
if mime_type == "text/csv":
|
|
62
|
+
decoded_content = base64.b64decode(file_data).decode("utf-8")
|
|
63
|
+
print(f"CSV Preview (first 200 chars): {decoded_content[:200]}...")
|
|
64
|
+
elif mime_type.startswith("image/"):
|
|
65
|
+
file_size = len(base64.b64decode(file_data))
|
|
66
|
+
print(f"Image size: {file_size} bytes")
|
|
67
|
+
else:
|
|
68
|
+
print("File data available (base64 encoded)")
|
|
69
|
+
except Exception as e:
|
|
70
|
+
print(f"Could not decode file data: {e}")
|
|
71
|
+
|
|
72
|
+
print("--- End Artifact ---\n")
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
if __name__ == "__main__":
|
|
76
|
+
asyncio.run(main())
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"""Example A2A server for a LangGraphAgent Weather Service.
|
|
2
|
+
|
|
3
|
+
This server instantiates a LangGraphAgent with weather lookup capabilities and serves it
|
|
4
|
+
via the A2A protocol using the proper A2A server setup with LangGraphA2AExecutor.
|
|
5
|
+
|
|
6
|
+
To run this server:
|
|
7
|
+
python examples/hello_world_a2a_langgraph_server.py
|
|
8
|
+
|
|
9
|
+
It will listen on http://localhost:8001 by default.
|
|
10
|
+
|
|
11
|
+
Authors:
|
|
12
|
+
Christian Trisno Sen Long Chen (christian.t.s.l.chen@gdplabs.id)
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
import click
|
|
16
|
+
import uvicorn
|
|
17
|
+
from a2a.types import AgentCapabilities, AgentCard, AgentSkill
|
|
18
|
+
|
|
19
|
+
from aip_agents.agent import LangGraphAgent
|
|
20
|
+
from aip_agents.examples.tools.image_artifact_tool import ImageArtifactTool
|
|
21
|
+
from aip_agents.examples.tools.table_generator_tool import TableGeneratorTool
|
|
22
|
+
from aip_agents.utils.logger import get_logger
|
|
23
|
+
|
|
24
|
+
logger = get_logger(__name__)
|
|
25
|
+
|
|
26
|
+
SERVER_AGENT_NAME = "ArtifactAgent"
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@click.command()
|
|
30
|
+
@click.option("--host", "host", default="localhost", help="Host to bind the server to.")
|
|
31
|
+
@click.option("--port", "port", default=8999, help="Port to bind the server to.")
|
|
32
|
+
def main(host: str, port: int):
|
|
33
|
+
"""Runs the LangGraph Artifact Generation A2A server.
|
|
34
|
+
|
|
35
|
+
Args:
|
|
36
|
+
host (str): Host to bind the server to.
|
|
37
|
+
port (int): Port to bind the server to.
|
|
38
|
+
"""
|
|
39
|
+
logger.info(f"Starting {SERVER_AGENT_NAME} on http://{host}:{port}")
|
|
40
|
+
|
|
41
|
+
agent_card = AgentCard(
|
|
42
|
+
name=SERVER_AGENT_NAME,
|
|
43
|
+
description="An agent that can generate data tables and images as downloadable artifacts.",
|
|
44
|
+
url=f"http://{host}:{port}",
|
|
45
|
+
version="1.0.0",
|
|
46
|
+
defaultInputModes=["text"],
|
|
47
|
+
defaultOutputModes=["text"],
|
|
48
|
+
capabilities=AgentCapabilities(streaming=True),
|
|
49
|
+
skills=[
|
|
50
|
+
AgentSkill(
|
|
51
|
+
id="table_generation",
|
|
52
|
+
name="Table Generation",
|
|
53
|
+
description="Generates data tables and provides them as downloadable CSV files.",
|
|
54
|
+
examples=["Generate a data table with 5 rows and 3 columns", "Create a table with customer data"],
|
|
55
|
+
tags=["table", "data", "csv"],
|
|
56
|
+
),
|
|
57
|
+
AgentSkill(
|
|
58
|
+
id="image_generation",
|
|
59
|
+
name="Image Generation",
|
|
60
|
+
description="Creates simple images and provides them as downloadable PNG files.",
|
|
61
|
+
examples=["Create an image", "Generate a simple graphic"],
|
|
62
|
+
tags=["image", "graphics", "png"],
|
|
63
|
+
),
|
|
64
|
+
],
|
|
65
|
+
tags=["artifacts", "files", "generation"],
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
table_tool = TableGeneratorTool()
|
|
69
|
+
image_tool = ImageArtifactTool()
|
|
70
|
+
tools = [table_tool, image_tool]
|
|
71
|
+
|
|
72
|
+
langgraph_agent = LangGraphAgent(
|
|
73
|
+
name=SERVER_AGENT_NAME,
|
|
74
|
+
instruction=(
|
|
75
|
+
"You are a helpful assistant that can generate data tables and images. "
|
|
76
|
+
"When users ask for data tables, use the table_generator tool to create both a preview "
|
|
77
|
+
"and a downloadable CSV file. When users ask for images, use the image_generator tool "
|
|
78
|
+
"to create visual content. Always provide clear descriptions of what you're generating."
|
|
79
|
+
"Format your responses clearly and professionally."
|
|
80
|
+
),
|
|
81
|
+
model="openai/gpt-4.1",
|
|
82
|
+
tools=tools,
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
app = langgraph_agent.to_a2a(agent_card=agent_card)
|
|
86
|
+
|
|
87
|
+
logger.info("A2A application configured. Starting Uvicorn server...")
|
|
88
|
+
uvicorn.run(app, host=host, port=port)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
if __name__ == "__main__":
|
|
92
|
+
main()
|
|
@@ -0,0 +1,16 @@
|
|
|
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 main(host: str, port: int):
|
|
11
|
+
"""Runs the LangGraph Artifact Generation A2A server.
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
host (str): Host to bind the server to.
|
|
15
|
+
port (int): Port to bind the server to.
|
|
16
|
+
"""
|