aip-agents-binary 0.6.0__py3-none-any.whl → 0.6.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- aip_agents/agent/langgraph_react_agent.py +194 -2
- aip_agents/examples/hello_world_ptc.py +49 -0
- aip_agents/ptc/__init__.py +48 -0
- aip_agents/ptc/doc_gen.py +122 -0
- aip_agents/ptc/exceptions.py +39 -0
- aip_agents/ptc/executor.py +143 -0
- aip_agents/ptc/mcp/__init__.py +45 -0
- aip_agents/ptc/mcp/sandbox_bridge.py +668 -0
- aip_agents/ptc/mcp/templates/__init__.py +1 -0
- aip_agents/ptc/mcp/templates/mcp_client.py.template +239 -0
- aip_agents/ptc/naming.py +184 -0
- aip_agents/ptc/payload.py +26 -0
- aip_agents/ptc/prompt_builder.py +571 -0
- aip_agents/ptc/ptc_helper.py +16 -0
- aip_agents/ptc/sandbox_bridge.py +58 -0
- aip_agents/ptc/template_utils.py +33 -0
- aip_agents/ptc/templates/__init__.py +1 -0
- aip_agents/ptc/templates/ptc_helper.py.template +134 -0
- aip_agents/sandbox/__init__.py +43 -0
- aip_agents/sandbox/defaults.py +9 -0
- aip_agents/sandbox/e2b_runtime.py +267 -0
- aip_agents/sandbox/template_builder.py +131 -0
- aip_agents/sandbox/types.py +24 -0
- aip_agents/sandbox/validation.py +50 -0
- aip_agents/tools/__init__.py +2 -0
- aip_agents/tools/execute_ptc_code.py +308 -0
- {aip_agents_binary-0.6.0.dist-info → aip_agents_binary-0.6.2.dist-info}/METADATA +1 -1
- {aip_agents_binary-0.6.0.dist-info → aip_agents_binary-0.6.2.dist-info}/RECORD +30 -282
- aip_agents/__init__.pyi +0 -19
- aip_agents/a2a/__init__.pyi +0 -3
- aip_agents/a2a/server/__init__.pyi +0 -4
- aip_agents/a2a/server/base_executor.pyi +0 -73
- aip_agents/a2a/server/google_adk_executor.pyi +0 -51
- aip_agents/a2a/server/langflow_executor.pyi +0 -43
- aip_agents/a2a/server/langgraph_executor.pyi +0 -47
- aip_agents/a2a/types.pyi +0 -132
- aip_agents/agent/__init__.pyi +0 -9
- aip_agents/agent/base_agent.pyi +0 -221
- aip_agents/agent/base_langgraph_agent.pyi +0 -233
- aip_agents/agent/google_adk_agent.pyi +0 -141
- aip_agents/agent/google_adk_constants.pyi +0 -3
- aip_agents/agent/hitl/__init__.pyi +0 -6
- aip_agents/agent/hitl/config.pyi +0 -15
- aip_agents/agent/hitl/langgraph_hitl_mixin.pyi +0 -42
- aip_agents/agent/hitl/manager.pyi +0 -200
- aip_agents/agent/hitl/models.pyi +0 -3
- aip_agents/agent/hitl/prompt/__init__.pyi +0 -4
- aip_agents/agent/hitl/prompt/base.pyi +0 -24
- aip_agents/agent/hitl/prompt/deferred.pyi +0 -30
- aip_agents/agent/hitl/registry.pyi +0 -101
- aip_agents/agent/interface.pyi +0 -81
- aip_agents/agent/interfaces.pyi +0 -44
- aip_agents/agent/langflow_agent.pyi +0 -133
- aip_agents/agent/langgraph_memory_enhancer_agent.pyi +0 -49
- aip_agents/agent/langgraph_react_agent.pyi +0 -131
- aip_agents/agent/system_instruction_context.pyi +0 -13
- aip_agents/clients/__init__.pyi +0 -4
- aip_agents/clients/langflow/__init__.pyi +0 -4
- aip_agents/clients/langflow/client.pyi +0 -140
- aip_agents/clients/langflow/types.pyi +0 -7
- aip_agents/constants.pyi +0 -7
- aip_agents/examples/__init__.pyi +0 -0
- aip_agents/examples/compare_streaming_client.pyi +0 -48
- aip_agents/examples/compare_streaming_server.pyi +0 -18
- aip_agents/examples/demo_memory_recall.pyi +0 -58
- aip_agents/examples/hello_world_a2a_google_adk_client.pyi +0 -9
- aip_agents/examples/hello_world_a2a_google_adk_client_agent.pyi +0 -9
- aip_agents/examples/hello_world_a2a_google_adk_client_streaming.pyi +0 -9
- aip_agents/examples/hello_world_a2a_google_adk_server.pyi +0 -15
- aip_agents/examples/hello_world_a2a_langchain_client.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langchain_client_agent.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langchain_client_lm_invoker.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langchain_client_streaming.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langchain_reference_client_streaming.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langchain_reference_server.pyi +0 -15
- aip_agents/examples/hello_world_a2a_langchain_server.pyi +0 -15
- aip_agents/examples/hello_world_a2a_langchain_server_lm_invoker.pyi +0 -15
- aip_agents/examples/hello_world_a2a_langflow_client.pyi +0 -9
- aip_agents/examples/hello_world_a2a_langflow_server.pyi +0 -14
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client_streaming.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langgraph_artifact_server.pyi +0 -16
- aip_agents/examples/hello_world_a2a_langgraph_client.pyi +0 -9
- aip_agents/examples/hello_world_a2a_langgraph_client_agent.pyi +0 -9
- aip_agents/examples/hello_world_a2a_langgraph_client_agent_lm_invoker.pyi +0 -2
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming.pyi +0 -9
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming_lm_invoker.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming_tool_streaming.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langgraph_server.pyi +0 -14
- aip_agents/examples/hello_world_a2a_langgraph_server_lm_invoker.pyi +0 -15
- aip_agents/examples/hello_world_a2a_langgraph_server_tool_streaming.pyi +0 -15
- aip_agents/examples/hello_world_a2a_mcp_langgraph.pyi +0 -48
- aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_client.pyi +0 -48
- aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_server.pyi +0 -45
- aip_agents/examples/hello_world_a2a_with_metadata_langchain_client.pyi +0 -5
- aip_agents/examples/hello_world_a2a_with_metadata_langchain_server_lm_invoker.pyi +0 -15
- aip_agents/examples/hello_world_google_adk.pyi +0 -5
- aip_agents/examples/hello_world_google_adk_mcp_http.pyi +0 -5
- aip_agents/examples/hello_world_google_adk_mcp_http_stream.pyi +0 -5
- aip_agents/examples/hello_world_google_adk_mcp_sse.pyi +0 -5
- aip_agents/examples/hello_world_google_adk_mcp_sse_stream.pyi +0 -5
- aip_agents/examples/hello_world_google_adk_mcp_stdio.pyi +0 -5
- aip_agents/examples/hello_world_google_adk_mcp_stdio_stream.pyi +0 -5
- aip_agents/examples/hello_world_google_adk_stream.pyi +0 -5
- aip_agents/examples/hello_world_langchain.pyi +0 -5
- aip_agents/examples/hello_world_langchain_lm_invoker.pyi +0 -2
- aip_agents/examples/hello_world_langchain_mcp_http.pyi +0 -5
- aip_agents/examples/hello_world_langchain_mcp_http_interactive.pyi +0 -16
- aip_agents/examples/hello_world_langchain_mcp_http_stream.pyi +0 -5
- aip_agents/examples/hello_world_langchain_mcp_multi_server.pyi +0 -18
- aip_agents/examples/hello_world_langchain_mcp_sse.pyi +0 -5
- aip_agents/examples/hello_world_langchain_mcp_sse_stream.pyi +0 -5
- aip_agents/examples/hello_world_langchain_mcp_stdio.pyi +0 -5
- aip_agents/examples/hello_world_langchain_mcp_stdio_stream.pyi +0 -5
- aip_agents/examples/hello_world_langchain_stream.pyi +0 -5
- aip_agents/examples/hello_world_langchain_stream_lm_invoker.pyi +0 -5
- aip_agents/examples/hello_world_langflow_agent.pyi +0 -35
- aip_agents/examples/hello_world_langgraph.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_gl_connector_twitter.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_mcp_http.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_mcp_http_stream.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_mcp_sse.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_mcp_sse_stream.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_mcp_stdio.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_mcp_stdio_stream.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_stream.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_stream_lm_invoker.pyi +0 -5
- aip_agents/examples/hello_world_model_switch_cli.pyi +0 -30
- aip_agents/examples/hello_world_multi_agent_adk.pyi +0 -6
- aip_agents/examples/hello_world_multi_agent_langchain.pyi +0 -5
- aip_agents/examples/hello_world_multi_agent_langgraph.pyi +0 -5
- aip_agents/examples/hello_world_multi_agent_langgraph_lm_invoker.pyi +0 -5
- aip_agents/examples/hello_world_pii_logger.pyi +0 -5
- aip_agents/examples/hello_world_sentry.pyi +0 -21
- aip_agents/examples/hello_world_step_limits.pyi +0 -17
- aip_agents/examples/hello_world_stock_a2a_server.pyi +0 -17
- aip_agents/examples/hello_world_tool_output_client.pyi +0 -5
- aip_agents/examples/hello_world_tool_output_server.pyi +0 -19
- aip_agents/examples/hitl_demo.pyi +0 -67
- aip_agents/examples/pii_demo_langgraph_client.pyi +0 -5
- aip_agents/examples/pii_demo_langgraph_server.pyi +0 -20
- aip_agents/examples/pii_demo_multi_agent_client.pyi +0 -5
- aip_agents/examples/pii_demo_multi_agent_server.pyi +0 -40
- aip_agents/examples/todolist_planning_a2a_langchain_client.pyi +0 -5
- aip_agents/examples/todolist_planning_a2a_langgraph_server.pyi +0 -19
- aip_agents/examples/tools/__init__.pyi +0 -9
- aip_agents/examples/tools/adk_arithmetic_tools.pyi +0 -24
- aip_agents/examples/tools/adk_weather_tool.pyi +0 -18
- aip_agents/examples/tools/data_generator_tool.pyi +0 -15
- aip_agents/examples/tools/data_visualization_tool.pyi +0 -19
- aip_agents/examples/tools/image_artifact_tool.pyi +0 -26
- aip_agents/examples/tools/langchain_arithmetic_tools.pyi +0 -17
- aip_agents/examples/tools/langchain_currency_exchange_tool.pyi +0 -20
- aip_agents/examples/tools/langchain_graph_artifact_tool.pyi +0 -25
- aip_agents/examples/tools/langchain_weather_tool.pyi +0 -19
- aip_agents/examples/tools/langgraph_streaming_tool.pyi +0 -43
- aip_agents/examples/tools/mock_retrieval_tool.pyi +0 -13
- aip_agents/examples/tools/pii_demo_tools.pyi +0 -54
- aip_agents/examples/tools/random_chart_tool.pyi +0 -20
- aip_agents/examples/tools/serper_tool.pyi +0 -16
- aip_agents/examples/tools/stock_tools.pyi +0 -36
- aip_agents/examples/tools/table_generator_tool.pyi +0 -22
- aip_agents/examples/tools/time_tool.pyi +0 -15
- aip_agents/examples/tools/weather_forecast_tool.pyi +0 -14
- aip_agents/guardrails/__init__.pyi +0 -6
- aip_agents/guardrails/engines/__init__.pyi +0 -4
- aip_agents/guardrails/engines/base.pyi +0 -61
- aip_agents/guardrails/engines/nemo.pyi +0 -46
- aip_agents/guardrails/engines/phrase_matcher.pyi +0 -48
- aip_agents/guardrails/exceptions.pyi +0 -23
- aip_agents/guardrails/manager.pyi +0 -42
- aip_agents/guardrails/middleware.pyi +0 -87
- aip_agents/guardrails/schemas.pyi +0 -43
- aip_agents/guardrails/utils.pyi +0 -19
- aip_agents/mcp/__init__.pyi +0 -0
- aip_agents/mcp/client/__init__.pyi +0 -5
- aip_agents/mcp/client/base_mcp_client.pyi +0 -148
- aip_agents/mcp/client/connection_manager.pyi +0 -51
- aip_agents/mcp/client/google_adk/__init__.pyi +0 -3
- aip_agents/mcp/client/google_adk/client.pyi +0 -75
- aip_agents/mcp/client/langchain/__init__.pyi +0 -3
- aip_agents/mcp/client/langchain/client.pyi +0 -48
- aip_agents/mcp/client/persistent_session.pyi +0 -122
- aip_agents/mcp/client/session_pool.pyi +0 -101
- aip_agents/mcp/client/transports.pyi +0 -132
- aip_agents/mcp/utils/__init__.pyi +0 -0
- aip_agents/mcp/utils/config_validator.pyi +0 -82
- aip_agents/memory/__init__.pyi +0 -5
- aip_agents/memory/adapters/__init__.pyi +0 -4
- aip_agents/memory/adapters/base_adapter.pyi +0 -150
- aip_agents/memory/adapters/mem0.pyi +0 -22
- aip_agents/memory/base.pyi +0 -60
- aip_agents/memory/constants.pyi +0 -25
- aip_agents/memory/factory.pyi +0 -24
- aip_agents/memory/guidance.pyi +0 -3
- aip_agents/memory/simple_memory.pyi +0 -23
- aip_agents/middleware/__init__.pyi +0 -5
- aip_agents/middleware/base.pyi +0 -75
- aip_agents/middleware/manager.pyi +0 -84
- aip_agents/middleware/todolist.pyi +0 -125
- aip_agents/schema/__init__.pyi +0 -9
- aip_agents/schema/a2a.pyi +0 -40
- aip_agents/schema/agent.pyi +0 -65
- aip_agents/schema/hitl.pyi +0 -89
- aip_agents/schema/langgraph.pyi +0 -28
- aip_agents/schema/model_id.pyi +0 -54
- aip_agents/schema/step_limit.pyi +0 -63
- aip_agents/schema/storage.pyi +0 -21
- aip_agents/sentry/__init__.pyi +0 -3
- aip_agents/sentry/sentry.pyi +0 -48
- aip_agents/storage/__init__.pyi +0 -8
- aip_agents/storage/base.pyi +0 -58
- aip_agents/storage/clients/__init__.pyi +0 -3
- aip_agents/storage/clients/minio_client.pyi +0 -137
- aip_agents/storage/config.pyi +0 -29
- aip_agents/storage/providers/__init__.pyi +0 -5
- aip_agents/storage/providers/base.pyi +0 -88
- aip_agents/storage/providers/memory.pyi +0 -79
- aip_agents/storage/providers/object_storage.pyi +0 -98
- aip_agents/tools/__init__.pyi +0 -9
- aip_agents/tools/browser_use/__init__.pyi +0 -14
- aip_agents/tools/browser_use/action_parser.pyi +0 -18
- aip_agents/tools/browser_use/browser_use_tool.pyi +0 -50
- aip_agents/tools/browser_use/llm_config.pyi +0 -52
- aip_agents/tools/browser_use/minio_storage.pyi +0 -109
- aip_agents/tools/browser_use/schemas.pyi +0 -32
- aip_agents/tools/browser_use/session.pyi +0 -4
- aip_agents/tools/browser_use/session_errors.pyi +0 -53
- aip_agents/tools/browser_use/steel_session_recording.pyi +0 -63
- aip_agents/tools/browser_use/streaming.pyi +0 -81
- aip_agents/tools/browser_use/structured_data_parser.pyi +0 -86
- aip_agents/tools/browser_use/structured_data_recovery.pyi +0 -43
- aip_agents/tools/browser_use/types.pyi +0 -45
- aip_agents/tools/code_sandbox/__init__.pyi +0 -3
- aip_agents/tools/code_sandbox/constant.pyi +0 -4
- aip_agents/tools/code_sandbox/e2b_cloud_sandbox_extended.pyi +0 -102
- aip_agents/tools/code_sandbox/e2b_sandbox_tool.pyi +0 -29
- aip_agents/tools/constants.pyi +0 -138
- aip_agents/tools/document_loader/__init__.pyi +0 -7
- aip_agents/tools/document_loader/base_reader.pyi +0 -75
- aip_agents/tools/document_loader/docx_reader_tool.pyi +0 -10
- aip_agents/tools/document_loader/excel_reader_tool.pyi +0 -26
- aip_agents/tools/document_loader/pdf_reader_tool.pyi +0 -11
- aip_agents/tools/document_loader/pdf_splitter.pyi +0 -18
- aip_agents/tools/gl_connector/__init__.pyi +0 -3
- aip_agents/tools/gl_connector/tool.pyi +0 -74
- aip_agents/tools/gl_connector_tools.pyi +0 -39
- aip_agents/tools/memory_search/__init__.pyi +0 -5
- aip_agents/tools/memory_search/base.pyi +0 -69
- aip_agents/tools/memory_search/mem0.pyi +0 -19
- aip_agents/tools/memory_search/schema.pyi +0 -15
- aip_agents/tools/memory_search_tool.pyi +0 -3
- aip_agents/tools/time_tool.pyi +0 -16
- aip_agents/tools/tool_config_injector.pyi +0 -26
- aip_agents/tools/web_search/__init__.pyi +0 -3
- aip_agents/tools/web_search/serper_tool.pyi +0 -19
- aip_agents/types/__init__.pyi +0 -36
- aip_agents/types/a2a_events.pyi +0 -3
- aip_agents/utils/__init__.pyi +0 -11
- aip_agents/utils/a2a_connector.pyi +0 -146
- aip_agents/utils/artifact_helpers.pyi +0 -203
- aip_agents/utils/constants.pyi +0 -10
- aip_agents/utils/datetime/__init__.pyi +0 -4
- aip_agents/utils/datetime/normalization.pyi +0 -95
- aip_agents/utils/datetime/timezone.pyi +0 -48
- aip_agents/utils/env_loader.pyi +0 -10
- aip_agents/utils/event_handler_registry.pyi +0 -23
- aip_agents/utils/file_prompt_utils.pyi +0 -21
- aip_agents/utils/final_response_builder.pyi +0 -34
- aip_agents/utils/formatter_llm_client.pyi +0 -71
- aip_agents/utils/langgraph/__init__.pyi +0 -3
- aip_agents/utils/langgraph/converter.pyi +0 -49
- aip_agents/utils/langgraph/tool_managers/__init__.pyi +0 -5
- aip_agents/utils/langgraph/tool_managers/a2a_tool_manager.pyi +0 -35
- aip_agents/utils/langgraph/tool_managers/base_tool_manager.pyi +0 -48
- aip_agents/utils/langgraph/tool_managers/delegation_tool_manager.pyi +0 -56
- aip_agents/utils/langgraph/tool_output_management.pyi +0 -329
- aip_agents/utils/logger.pyi +0 -60
- aip_agents/utils/metadata/__init__.pyi +0 -5
- aip_agents/utils/metadata/activity_metadata_helper.pyi +0 -25
- aip_agents/utils/metadata/activity_narrative/__init__.pyi +0 -7
- aip_agents/utils/metadata/activity_narrative/builder.pyi +0 -35
- aip_agents/utils/metadata/activity_narrative/constants.pyi +0 -10
- aip_agents/utils/metadata/activity_narrative/context.pyi +0 -32
- aip_agents/utils/metadata/activity_narrative/formatters.pyi +0 -48
- aip_agents/utils/metadata/activity_narrative/utils.pyi +0 -12
- aip_agents/utils/metadata/schemas/__init__.pyi +0 -4
- aip_agents/utils/metadata/schemas/activity_schema.pyi +0 -18
- aip_agents/utils/metadata/schemas/thinking_schema.pyi +0 -20
- aip_agents/utils/metadata/thinking_metadata_helper.pyi +0 -4
- aip_agents/utils/metadata_helper.pyi +0 -117
- aip_agents/utils/name_preprocessor/__init__.pyi +0 -6
- aip_agents/utils/name_preprocessor/base_name_preprocessor.pyi +0 -52
- aip_agents/utils/name_preprocessor/google_name_preprocessor.pyi +0 -38
- aip_agents/utils/name_preprocessor/name_preprocessor.pyi +0 -41
- aip_agents/utils/name_preprocessor/openai_name_preprocessor.pyi +0 -34
- aip_agents/utils/pii/__init__.pyi +0 -5
- aip_agents/utils/pii/pii_handler.pyi +0 -96
- aip_agents/utils/pii/pii_helper.pyi +0 -78
- aip_agents/utils/pii/uuid_deanonymizer_mapping.pyi +0 -73
- aip_agents/utils/reference_helper.pyi +0 -81
- aip_agents/utils/sse_chunk_transformer.pyi +0 -166
- aip_agents/utils/step_limit_manager.pyi +0 -112
- aip_agents/utils/token_usage_helper.pyi +0 -60
- {aip_agents_binary-0.6.0.dist-info → aip_agents_binary-0.6.2.dist-info}/WHEEL +0 -0
- {aip_agents_binary-0.6.0.dist-info → aip_agents_binary-0.6.2.dist-info}/top_level.txt +0 -0
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.clients.langflow.types import LangflowEventType as LangflowEventType
|
|
3
|
-
from aip_agents.schema.agent import HttpxClientOptions as HttpxClientOptions
|
|
4
|
-
from aip_agents.utils.logger import get_logger as get_logger
|
|
5
|
-
from collections.abc import AsyncGenerator
|
|
6
|
-
from typing import Any
|
|
7
|
-
|
|
8
|
-
logger: Incomplete
|
|
9
|
-
DEFAULT_LANGFLOW_BASE_URL: Incomplete
|
|
10
|
-
MAX_PAGE_SIZE: int
|
|
11
|
-
|
|
12
|
-
class LangflowApiClient:
|
|
13
|
-
"""HTTP client for Langflow API with streaming and non-streaming support.
|
|
14
|
-
|
|
15
|
-
This client handles all communication with Langflow APIs, including:
|
|
16
|
-
- Non-streaming execution
|
|
17
|
-
- Server-Sent Events (SSE) streaming
|
|
18
|
-
- Session management for conversation continuity
|
|
19
|
-
- Error handling and retries
|
|
20
|
-
- Credential management
|
|
21
|
-
"""
|
|
22
|
-
flow_id: Incomplete
|
|
23
|
-
base_url: Incomplete
|
|
24
|
-
api_key: Incomplete
|
|
25
|
-
sessions: dict[str, str]
|
|
26
|
-
client_kwargs: Incomplete
|
|
27
|
-
def __init__(self, flow_id: str | None = None, base_url: str | None = None, api_key: str | None = None, httpx_client_options: HttpxClientOptions = None) -> None:
|
|
28
|
-
"""Initialize the Langflow API client.
|
|
29
|
-
|
|
30
|
-
Args:
|
|
31
|
-
flow_id: The unique identifier of the Langflow flow to execute.
|
|
32
|
-
base_url: The base URL of the Langflow API server.
|
|
33
|
-
api_key: The API key for Langflow authentication.
|
|
34
|
-
httpx_client_options: HTTP client configuration options for httpx, including timeout.
|
|
35
|
-
"""
|
|
36
|
-
def get_or_create_session(self, thread_id: str | None = None) -> str:
|
|
37
|
-
"""Get existing session ID or create a new one.
|
|
38
|
-
|
|
39
|
-
Args:
|
|
40
|
-
thread_id: Optional thread ID for session mapping.
|
|
41
|
-
|
|
42
|
-
Returns:
|
|
43
|
-
Session ID for the conversation.
|
|
44
|
-
"""
|
|
45
|
-
async def call_flow(self, input_value: str, session_id: str | None = None, flow_id: str | None = None, **_: Any) -> dict[str, Any]:
|
|
46
|
-
"""Execute Langflow flow without streaming.
|
|
47
|
-
|
|
48
|
-
Args:
|
|
49
|
-
input_value: The user input to send to the flow.
|
|
50
|
-
session_id: Optional session ID for conversation continuity.
|
|
51
|
-
flow_id: Optional flow ID to execute. If None, uses the instance flow_id.
|
|
52
|
-
**_: Additional keyword arguments.
|
|
53
|
-
|
|
54
|
-
Returns:
|
|
55
|
-
The response from the flow execution.
|
|
56
|
-
|
|
57
|
-
Raises:
|
|
58
|
-
httpx.HTTPError: If the HTTP request fails.
|
|
59
|
-
ValueError: If the response cannot be parsed.
|
|
60
|
-
"""
|
|
61
|
-
async def stream_flow(self, input_value: str, session_id: str | None = None, flow_id: str | None = None, **_: Any) -> AsyncGenerator[dict[str, Any], None]:
|
|
62
|
-
"""Execute Langflow flow with streaming.
|
|
63
|
-
|
|
64
|
-
Args:
|
|
65
|
-
input_value: The user input to send to the flow.
|
|
66
|
-
session_id: Optional session ID for conversation continuity.
|
|
67
|
-
flow_id: Optional flow ID to execute. If None, uses the instance flow_id.
|
|
68
|
-
**_: Additional keyword arguments.
|
|
69
|
-
|
|
70
|
-
Yields:
|
|
71
|
-
Parsed streaming events from the Langflow API.
|
|
72
|
-
|
|
73
|
-
Raises:
|
|
74
|
-
httpx.HTTPError: If the HTTP request fails.
|
|
75
|
-
ValueError: If streaming events cannot be parsed.
|
|
76
|
-
"""
|
|
77
|
-
def parse_stream_event(self, event_data: dict[str, Any]) -> dict[str, Any] | None:
|
|
78
|
-
"""Parse a single streaming event from Langflow.
|
|
79
|
-
|
|
80
|
-
Args:
|
|
81
|
-
event_data: Raw event data from Langflow streaming response.
|
|
82
|
-
|
|
83
|
-
Returns:
|
|
84
|
-
Parsed event dictionary or None if event should be skipped.
|
|
85
|
-
"""
|
|
86
|
-
def clear_session(self, thread_id: str) -> None:
|
|
87
|
-
"""Clear session for a specific thread.
|
|
88
|
-
|
|
89
|
-
Args:
|
|
90
|
-
thread_id: Thread ID to clear session for.
|
|
91
|
-
"""
|
|
92
|
-
def clear_all_sessions(self) -> None:
|
|
93
|
-
"""Clear all stored sessions."""
|
|
94
|
-
async def get_flows(self, project_id: str | None = None, remove_example_flows: bool = False, components_only: bool = False, header_flows: bool = False, get_all: bool = True, page: int = 1, size: int = 50) -> list[dict[str, Any]]:
|
|
95
|
-
"""Retrieve flows from Langflow API with full control over parameters.
|
|
96
|
-
|
|
97
|
-
Based on the official API docs: https://docs.langflow.org/api-flows
|
|
98
|
-
Uses the exact parameter format from the documentation.
|
|
99
|
-
|
|
100
|
-
Args:
|
|
101
|
-
project_id: Optional project ID to filter flows.
|
|
102
|
-
remove_example_flows: Whether to exclude example flows. Defaults to False.
|
|
103
|
-
components_only: Whether to return only components. Defaults to False.
|
|
104
|
-
header_flows: Whether to return only flow headers. Defaults to False.
|
|
105
|
-
get_all: Whether to return all flows (ignores pagination). Defaults to True.
|
|
106
|
-
page: Page number for pagination (ignored if get_all=True). Defaults to 1.
|
|
107
|
-
size: Number of flows per page (ignored if get_all=True). Defaults to 50.
|
|
108
|
-
|
|
109
|
-
Returns:
|
|
110
|
-
List of flows or flow headers from the Langflow API.
|
|
111
|
-
|
|
112
|
-
Raises:
|
|
113
|
-
httpx.HTTPError: If the HTTP request fails.
|
|
114
|
-
ValueError: If the response cannot be parsed or invalid parameters provided.
|
|
115
|
-
"""
|
|
116
|
-
async def get_all_flows(self, project_id: str | None = None, remove_example_flows: bool = False, components_only: bool = False, header_flows: bool = False) -> list[dict[str, Any]]:
|
|
117
|
-
"""Convenience method to get ALL flows using the backend's get_all=true feature.
|
|
118
|
-
|
|
119
|
-
This method is a simple wrapper around get_flows() with get_all=True,
|
|
120
|
-
which uses the Langflow backend's ability to return all flows in one request.
|
|
121
|
-
|
|
122
|
-
Args:
|
|
123
|
-
project_id: Optional project ID to filter flows.
|
|
124
|
-
remove_example_flows: Whether to exclude example flows. Defaults to False.
|
|
125
|
-
components_only: Whether to return only components. Defaults to False.
|
|
126
|
-
header_flows: Whether to return only flow headers. Defaults to False.
|
|
127
|
-
|
|
128
|
-
Returns:
|
|
129
|
-
List of all flows from the Langflow API.
|
|
130
|
-
|
|
131
|
-
Raises:
|
|
132
|
-
httpx.HTTPError: If the HTTP request fails.
|
|
133
|
-
ValueError: If the response cannot be parsed.
|
|
134
|
-
"""
|
|
135
|
-
async def health_check(self) -> bool:
|
|
136
|
-
"""Check if the Langflow API is accessible.
|
|
137
|
-
|
|
138
|
-
Returns:
|
|
139
|
-
True if the API is accessible, False otherwise.
|
|
140
|
-
"""
|
aip_agents/constants.pyi
DELETED
aip_agents/examples/__init__.pyi
DELETED
|
File without changes
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.agent import LangGraphAgent as LangGraphAgent
|
|
3
|
-
from aip_agents.examples.tools.mock_retrieval_tool import MockRetrievalTool as MockRetrievalTool
|
|
4
|
-
from aip_agents.examples.tools.pii_demo_tools import get_customer_info as get_customer_info, get_employee_data as get_employee_data, get_user_profile as get_user_profile
|
|
5
|
-
from aip_agents.examples.tools.random_chart_tool import RandomChartTool as RandomChartTool
|
|
6
|
-
from aip_agents.examples.tools.table_generator_tool import TableGeneratorTool as TableGeneratorTool
|
|
7
|
-
from aip_agents.schema.a2a import A2AStreamEventType as A2AStreamEventType
|
|
8
|
-
from aip_agents.schema.agent import A2AClientConfig as A2AClientConfig
|
|
9
|
-
from aip_agents.utils.logger import get_logger as get_logger
|
|
10
|
-
from typing import Any
|
|
11
|
-
|
|
12
|
-
logger: Incomplete
|
|
13
|
-
SERVER_URL: str
|
|
14
|
-
|
|
15
|
-
def create_local_agent(enable_token_streaming: bool = False) -> LangGraphAgent:
|
|
16
|
-
"""Create a local agent with the same tools as the server.
|
|
17
|
-
|
|
18
|
-
Args:
|
|
19
|
-
enable_token_streaming: Whether to enable token streaming for content_chunk events.
|
|
20
|
-
"""
|
|
21
|
-
def format_chunk_summary(chunk: dict[str, Any], index: int) -> str:
|
|
22
|
-
"""Format a chunk for display."""
|
|
23
|
-
async def run_direct_streaming(agent: LangGraphAgent, query: str, pii_mapping: dict[str, str] | None = None) -> list[dict[str, Any]]:
|
|
24
|
-
"""Run arun_sse_stream and collect all chunks."""
|
|
25
|
-
async def run_connector_streaming(agent: LangGraphAgent, query: str, pii_mapping: dict[str, str] | None = None) -> list[dict[str, Any]]:
|
|
26
|
-
"""Run astream_to_agent via A2A connector and collect all chunks."""
|
|
27
|
-
def get_chunk_keys(chunks: list[dict[str, Any]]) -> set[str]:
|
|
28
|
-
"""Get all unique keys across all chunks."""
|
|
29
|
-
def get_field_types(chunks: list[dict[str, Any]], field: str) -> set[str]:
|
|
30
|
-
"""Get all types seen for a field across chunks.
|
|
31
|
-
|
|
32
|
-
Note: StrEnum values are reported as 'str' since they ARE strings
|
|
33
|
-
and serialize identically over HTTP/SSE.
|
|
34
|
-
"""
|
|
35
|
-
def group_chunks_by_event_type(chunks: list[dict[str, Any]]) -> dict[str, list[dict[str, Any]]]:
|
|
36
|
-
"""Group chunks by their event_type."""
|
|
37
|
-
def compare_chunk_structure(chunk1: dict[str, Any], chunk2: dict[str, Any]) -> dict[str, Any]:
|
|
38
|
-
"""Compare structure of two chunks and return differences."""
|
|
39
|
-
def compare_event_type_groups(direct_groups: dict[str, list[dict[str, Any]]], connector_groups: dict[str, list[dict[str, Any]]]) -> dict[str, Any]:
|
|
40
|
-
"""Compare chunks grouped by event type - RAW comparison without filtering."""
|
|
41
|
-
def compare_chunks(direct_chunks: list[dict[str, Any]], connector_chunks: list[dict[str, Any]]) -> dict[str, Any]:
|
|
42
|
-
"""Compare the two chunk lists and produce a comprehensive structural summary."""
|
|
43
|
-
def print_event_type_comparison(event_comparison: dict[str, Any]) -> None:
|
|
44
|
-
"""Print per-event-type comparison details with exact key/value examples."""
|
|
45
|
-
def print_structure_comparison(comparison: dict[str, Any]) -> None:
|
|
46
|
-
"""Print detailed structure comparison."""
|
|
47
|
-
async def main() -> None:
|
|
48
|
-
"""Main comparison workflow."""
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.agent import LangGraphAgent as LangGraphAgent
|
|
3
|
-
from aip_agents.examples.tools.mock_retrieval_tool import MockRetrievalTool as MockRetrievalTool
|
|
4
|
-
from aip_agents.examples.tools.pii_demo_tools import get_customer_info as get_customer_info, get_employee_data as get_employee_data, get_user_profile as get_user_profile
|
|
5
|
-
from aip_agents.examples.tools.random_chart_tool import RandomChartTool as RandomChartTool
|
|
6
|
-
from aip_agents.examples.tools.table_generator_tool import TableGeneratorTool as TableGeneratorTool
|
|
7
|
-
from aip_agents.utils.logger import get_logger as get_logger
|
|
8
|
-
|
|
9
|
-
logger: Incomplete
|
|
10
|
-
SERVER_AGENT_NAME: str
|
|
11
|
-
|
|
12
|
-
def main(host: str, port: int):
|
|
13
|
-
"""Runs the streaming comparison A2A server.
|
|
14
|
-
|
|
15
|
-
Args:
|
|
16
|
-
host: Host to bind the server to.
|
|
17
|
-
port: Port to bind the server to.
|
|
18
|
-
"""
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.agent import LangGraphAgent as LangGraphAgent
|
|
3
|
-
from datetime import datetime
|
|
4
|
-
|
|
5
|
-
class MemoryTestResult:
|
|
6
|
-
"""Container for test scenario results."""
|
|
7
|
-
JUDGE_SUCCESS_THRESHOLD: float
|
|
8
|
-
MEMORY_DISPLAY_LIMIT: int
|
|
9
|
-
scenario_name: Incomplete
|
|
10
|
-
query: Incomplete
|
|
11
|
-
response: Incomplete
|
|
12
|
-
memory_fetched: Incomplete
|
|
13
|
-
error: Incomplete
|
|
14
|
-
success: Incomplete
|
|
15
|
-
judge_verdict: Incomplete
|
|
16
|
-
judge_score: Incomplete
|
|
17
|
-
def __init__(self, scenario_name: str, query: str, response: str = None, memory_fetched: str = None, error: str = None) -> None:
|
|
18
|
-
"""Initialize a memory test result.
|
|
19
|
-
|
|
20
|
-
Args:
|
|
21
|
-
scenario_name: Name of the test scenario.
|
|
22
|
-
query: The input query for the scenario.
|
|
23
|
-
response: The agent's response (optional).
|
|
24
|
-
memory_fetched: The raw memory retrieved from the tool (optional).
|
|
25
|
-
error: Any error message (optional).
|
|
26
|
-
"""
|
|
27
|
-
def set_success_from_judge(self, verdict: str, score: float | None):
|
|
28
|
-
'''Set success using judge verdict and confidence score.
|
|
29
|
-
|
|
30
|
-
Success criteria: (verdict == "grounded" or verdict == "general_knowledge") and
|
|
31
|
-
score >= JUDGE_SUCCESS_THRESHOLD.
|
|
32
|
-
|
|
33
|
-
Args:
|
|
34
|
-
verdict (str): The judge\'s verdict ("grounded", "hallucination", or "general_knowledge").
|
|
35
|
-
score (float | None): The confidence score (0.0 to 1.0).
|
|
36
|
-
'''
|
|
37
|
-
|
|
38
|
-
def print_test_summary(results: list[MemoryTestResult], start_time: datetime):
|
|
39
|
-
"""Print a clean summary of all test results.
|
|
40
|
-
|
|
41
|
-
Args:
|
|
42
|
-
results (list[MemoryTestResult]): List of test results to summarize.
|
|
43
|
-
start_time (datetime): The start time of the tests.
|
|
44
|
-
"""
|
|
45
|
-
async def evaluate_with_judge(judge_agent: LangGraphAgent, query: str, response: str, memory_fetched: str = None) -> tuple[str | None, float | None]:
|
|
46
|
-
'''Evaluate if the response is grounded in memory using the judge agent.
|
|
47
|
-
|
|
48
|
-
Args:
|
|
49
|
-
judge_agent (LangGraphAgent): The judge agent to use for evaluation.
|
|
50
|
-
query (str): The original user query.
|
|
51
|
-
response (str): The agent\'s response to evaluate.
|
|
52
|
-
memory_fetched (str, optional): The memory that was retrieved. Defaults to None.
|
|
53
|
-
|
|
54
|
-
Returns:
|
|
55
|
-
tuple[str | None, float | None]: Tuple of (verdict, score) where verdict is "grounded", "hallucination", or "general_knowledge", and score is a confidence score (0.0-1.0).
|
|
56
|
-
'''
|
|
57
|
-
async def run_all_scenarios() -> None:
|
|
58
|
-
"""Run all memory recall test scenarios with a single reused agent and show clean summary."""
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.agent.google_adk_agent import GoogleADKAgent as GoogleADKAgent
|
|
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
|
-
def main() -> None:
|
|
9
|
-
"""Main function demonstrating the General Assistant agent with A2A capabilities."""
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.agent.google_adk_agent import GoogleADKAgent as GoogleADKAgent
|
|
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
|
-
def main() -> None:
|
|
9
|
-
"""Main function demonstrating the General Assistant agent with A2A capabilities."""
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.agent.google_adk_agent import GoogleADKAgent as GoogleADKAgent
|
|
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():
|
|
9
|
-
"""Main function demonstrating the General Assistant agent with streaming A2A capabilities."""
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.agent.google_adk_agent import GoogleADKAgent as GoogleADKAgent
|
|
3
|
-
from aip_agents.examples.tools.adk_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 Google ADK 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
|
-
"""
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.agent import LangChainAgent as LangChainAgent
|
|
3
|
-
from aip_agents.examples.tools import google_serper_tool as google_serper_tool, mock_retrieval_tool as mock_retrieval_tool, time_tool as time_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 Mock Retrieval and Google Search A2A server.
|
|
11
|
-
|
|
12
|
-
Args:
|
|
13
|
-
host (str): Host to bind the server to.
|
|
14
|
-
port (int): Port to bind the server to.
|
|
15
|
-
"""
|
|
@@ -1,15 +0,0 @@
|
|
|
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
|
-
"""
|
|
@@ -1,15 +0,0 @@
|
|
|
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
|
-
"""
|
|
@@ -1,9 +0,0 @@
|
|
|
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."""
|
|
@@ -1,14 +0,0 @@
|
|
|
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
|
-
"""
|
|
@@ -1,16 +0,0 @@
|
|
|
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
|
-
"""
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.agent import LangGraphAgent as LangGraphAgent
|
|
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
|
-
def main() -> None:
|
|
9
|
-
"""Main function demonstrating the General Assistant agent with A2A capabilities."""
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.agent import LangGraphAgent as LangGraphAgent
|
|
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
|
-
def main() -> None:
|
|
9
|
-
"""Main function demonstrating the General Assistant agent with A2A capabilities."""
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.agent import LangGraphAgent as LangGraphAgent
|
|
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 General Assistant agent with streaming A2A capabilities."""
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
from aip_agents.agent import LangChainAgent as LangChainAgent
|
|
2
|
-
from aip_agents.schema.agent import A2AClientConfig as A2AClientConfig
|
|
3
|
-
|
|
4
|
-
async def main() -> None:
|
|
5
|
-
"""Main function demonstrating the General Assistant agent with streaming A2A time/weather capabilities."""
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.agent import LangGraphAgent as LangGraphAgent
|
|
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 LangGraph Weather A2A server.
|
|
10
|
-
|
|
11
|
-
Args:
|
|
12
|
-
host (str): Host to bind the server to.
|
|
13
|
-
port (int): Port to bind the server to.
|
|
14
|
-
"""
|
|
@@ -1,15 +0,0 @@
|
|
|
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
|
-
"""
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.agent import LangChainAgent as LangChainAgent
|
|
3
|
-
from aip_agents.examples.tools.langgraph_streaming_tool import LangGraphStreamingTool as LangGraphStreamingTool
|
|
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 LangGraph Agent Wrapper A2A server.
|
|
11
|
-
|
|
12
|
-
Args:
|
|
13
|
-
host (str): Host to bind the server to.
|
|
14
|
-
port (int): Port to bind the server to.
|
|
15
|
-
"""
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
from aip_agents.agent import LangGraphAgent as LangGraphAgent
|
|
2
|
-
from aip_agents.schema.agent import A2AClientConfig as A2AClientConfig
|
|
3
|
-
|
|
4
|
-
A2A_SERVER_PORT: int
|
|
5
|
-
A2A_AGENT_NAME: str
|
|
6
|
-
MCP_SERVER_PORT: int
|
|
7
|
-
MCP_AGENT_NAME: str
|
|
8
|
-
MODEL_NAME: str
|
|
9
|
-
|
|
10
|
-
async def create_agent() -> tuple[LangGraphAgent, dict[str, bool]]:
|
|
11
|
-
"""Create and configure the LangGraphAgent with MCP and A2A connections.
|
|
12
|
-
|
|
13
|
-
Returns:
|
|
14
|
-
tuple: (agent, connected_servers) where connected_servers is a dict
|
|
15
|
-
showing which servers were successfully connected.
|
|
16
|
-
"""
|
|
17
|
-
async def connect_to_mcp_server(agent: LangGraphAgent) -> bool:
|
|
18
|
-
"""Connect to the MCP server and register tools.
|
|
19
|
-
|
|
20
|
-
Args:
|
|
21
|
-
agent: The LangGraphAgent instance to configure.
|
|
22
|
-
|
|
23
|
-
Returns:
|
|
24
|
-
bool: True if connection was successful, False otherwise.
|
|
25
|
-
"""
|
|
26
|
-
async def connect_to_a2a_server(agent: LangGraphAgent) -> bool:
|
|
27
|
-
"""Connect to the A2A server and register agents.
|
|
28
|
-
|
|
29
|
-
Args:
|
|
30
|
-
agent: The LangGraphAgent instance to configure.
|
|
31
|
-
|
|
32
|
-
Returns:
|
|
33
|
-
bool: True if connection was successful, False otherwise.
|
|
34
|
-
"""
|
|
35
|
-
async def test_mcp_weather_tool(agent: LangGraphAgent) -> None:
|
|
36
|
-
"""Test the MCP weather tool if available.
|
|
37
|
-
|
|
38
|
-
Args:
|
|
39
|
-
agent: The configured LangGraphAgent instance.
|
|
40
|
-
"""
|
|
41
|
-
async def test_stock_agent(agent: LangGraphAgent) -> None:
|
|
42
|
-
"""Test the A2A Stock Agent if available.
|
|
43
|
-
|
|
44
|
-
Args:
|
|
45
|
-
agent: The configured LangGraphAgent instance.
|
|
46
|
-
"""
|
|
47
|
-
async def main() -> None:
|
|
48
|
-
"""Main function to run the A2A and MCP integration example."""
|