aip-agents-binary 0.5.17__py3-none-any.whl → 0.5.19__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- aip_agents/__init__.pyi +19 -0
- aip_agents/a2a/__init__.pyi +3 -0
- aip_agents/a2a/server/__init__.pyi +4 -0
- aip_agents/a2a/server/base_executor.pyi +73 -0
- aip_agents/a2a/server/google_adk_executor.pyi +51 -0
- aip_agents/a2a/server/langflow_executor.pyi +43 -0
- aip_agents/a2a/server/langgraph_executor.pyi +47 -0
- aip_agents/a2a/types.pyi +132 -0
- aip_agents/agent/__init__.pyi +9 -0
- aip_agents/agent/base_agent.pyi +221 -0
- aip_agents/agent/base_langgraph_agent.pyi +232 -0
- aip_agents/agent/google_adk_agent.pyi +141 -0
- aip_agents/agent/google_adk_constants.pyi +3 -0
- aip_agents/agent/hitl/__init__.pyi +6 -0
- aip_agents/agent/hitl/config.pyi +15 -0
- aip_agents/agent/hitl/langgraph_hitl_mixin.pyi +42 -0
- aip_agents/agent/hitl/manager.pyi +200 -0
- aip_agents/agent/hitl/models.pyi +3 -0
- aip_agents/agent/hitl/prompt/__init__.pyi +4 -0
- aip_agents/agent/hitl/prompt/base.pyi +24 -0
- aip_agents/agent/hitl/prompt/deferred.pyi +30 -0
- aip_agents/agent/hitl/registry.pyi +101 -0
- aip_agents/agent/interface.pyi +81 -0
- aip_agents/agent/interfaces.pyi +44 -0
- aip_agents/agent/langflow_agent.pyi +133 -0
- aip_agents/agent/langgraph_memory_enhancer_agent.pyi +49 -0
- aip_agents/agent/langgraph_react_agent.pyi +126 -0
- aip_agents/agent/system_instruction_context.pyi +13 -0
- aip_agents/clients/__init__.pyi +4 -0
- aip_agents/clients/langflow/__init__.pyi +4 -0
- aip_agents/clients/langflow/client.pyi +140 -0
- aip_agents/clients/langflow/types.pyi +7 -0
- aip_agents/constants.pyi +7 -0
- aip_agents/examples/__init__.pyi +0 -0
- aip_agents/examples/compare_streaming_client.pyi +48 -0
- aip_agents/examples/compare_streaming_server.pyi +18 -0
- aip_agents/examples/demo_memory_recall.pyi +58 -0
- aip_agents/examples/hello_world_a2a_google_adk_client.pyi +9 -0
- aip_agents/examples/hello_world_a2a_google_adk_client_agent.pyi +9 -0
- aip_agents/examples/hello_world_a2a_google_adk_client_streaming.pyi +9 -0
- aip_agents/examples/hello_world_a2a_google_adk_server.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langchain_client.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_client_agent.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_client_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_client_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_reference_client_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_reference_server.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langchain_server.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langchain_server_lm_invoker.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langflow_client.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langflow_server.pyi +14 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_server.pyi +16 -0
- aip_agents/examples/hello_world_a2a_langgraph_client.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_agent.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_agent_lm_invoker.pyi +2 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming_tool_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_server.pyi +14 -0
- aip_agents/examples/hello_world_a2a_langgraph_server_lm_invoker.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langgraph_server_tool_streaming.pyi +15 -0
- aip_agents/examples/hello_world_a2a_mcp_langgraph.pyi +48 -0
- aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_client.pyi +48 -0
- aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_server.pyi +45 -0
- aip_agents/examples/hello_world_a2a_with_metadata_langchain_client.pyi +5 -0
- aip_agents/examples/hello_world_a2a_with_metadata_langchain_server_lm_invoker.pyi +15 -0
- aip_agents/examples/hello_world_google_adk.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_http.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_http_stream.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_sse.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_sse_stream.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_stdio.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_stdio_stream.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain.pyi +5 -0
- aip_agents/examples/hello_world_langchain_lm_invoker.pyi +2 -0
- aip_agents/examples/hello_world_langchain_mcp_http.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_http_interactive.pyi +16 -0
- aip_agents/examples/hello_world_langchain_mcp_http_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_multi_server.pyi +18 -0
- aip_agents/examples/hello_world_langchain_mcp_sse.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_sse_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_stdio.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_stdio_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_stream_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_langflow_agent.pyi +35 -0
- aip_agents/examples/hello_world_langgraph.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_bosa_twitter.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_http.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_http_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_sse.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_sse_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_stdio.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_stdio_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_stream_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_model_switch_cli.pyi +30 -0
- aip_agents/examples/hello_world_multi_agent_adk.pyi +6 -0
- aip_agents/examples/hello_world_multi_agent_langchain.pyi +5 -0
- aip_agents/examples/hello_world_multi_agent_langgraph.pyi +5 -0
- aip_agents/examples/hello_world_multi_agent_langgraph_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_pii_logger.pyi +5 -0
- aip_agents/examples/hello_world_sentry.pyi +21 -0
- aip_agents/examples/hello_world_step_limits.pyi +17 -0
- aip_agents/examples/hello_world_stock_a2a_server.pyi +17 -0
- aip_agents/examples/hello_world_tool_output_client.pyi +5 -0
- aip_agents/examples/hello_world_tool_output_server.pyi +19 -0
- aip_agents/examples/hitl_demo.pyi +67 -0
- aip_agents/examples/pii_demo_langgraph_client.pyi +5 -0
- aip_agents/examples/pii_demo_langgraph_server.pyi +20 -0
- aip_agents/examples/pii_demo_multi_agent_client.pyi +5 -0
- aip_agents/examples/pii_demo_multi_agent_server.pyi +40 -0
- aip_agents/examples/todolist_planning_a2a_langchain_client.pyi +5 -0
- aip_agents/examples/todolist_planning_a2a_langgraph_server.pyi +19 -0
- aip_agents/examples/tools/__init__.pyi +9 -0
- aip_agents/examples/tools/adk_arithmetic_tools.pyi +24 -0
- aip_agents/examples/tools/adk_weather_tool.pyi +18 -0
- aip_agents/examples/tools/data_generator_tool.pyi +15 -0
- aip_agents/examples/tools/data_visualization_tool.pyi +19 -0
- aip_agents/examples/tools/image_artifact_tool.pyi +26 -0
- aip_agents/examples/tools/langchain_arithmetic_tools.pyi +17 -0
- aip_agents/examples/tools/langchain_currency_exchange_tool.pyi +20 -0
- aip_agents/examples/tools/langchain_graph_artifact_tool.pyi +25 -0
- aip_agents/examples/tools/langchain_weather_tool.pyi +19 -0
- aip_agents/examples/tools/langgraph_streaming_tool.pyi +43 -0
- aip_agents/examples/tools/mock_retrieval_tool.pyi +13 -0
- aip_agents/examples/tools/pii_demo_tools.pyi +54 -0
- aip_agents/examples/tools/random_chart_tool.pyi +20 -0
- aip_agents/examples/tools/serper_tool.pyi +16 -0
- aip_agents/examples/tools/stock_tools.pyi +36 -0
- aip_agents/examples/tools/table_generator_tool.pyi +22 -0
- aip_agents/examples/tools/time_tool.pyi +15 -0
- aip_agents/examples/tools/weather_forecast_tool.pyi +14 -0
- aip_agents/mcp/__init__.pyi +0 -0
- aip_agents/mcp/client/__init__.pyi +5 -0
- aip_agents/mcp/client/base_mcp_client.pyi +148 -0
- aip_agents/mcp/client/connection_manager.pyi +48 -0
- aip_agents/mcp/client/google_adk/__init__.pyi +3 -0
- aip_agents/mcp/client/google_adk/client.pyi +75 -0
- aip_agents/mcp/client/langchain/__init__.pyi +3 -0
- aip_agents/mcp/client/langchain/client.pyi +48 -0
- aip_agents/mcp/client/persistent_session.pyi +113 -0
- aip_agents/mcp/client/session_pool.pyi +101 -0
- aip_agents/mcp/client/transports.pyi +123 -0
- aip_agents/mcp/utils/__init__.pyi +0 -0
- aip_agents/mcp/utils/config_validator.pyi +82 -0
- aip_agents/memory/__init__.pyi +5 -0
- aip_agents/memory/adapters/__init__.pyi +4 -0
- aip_agents/memory/adapters/base_adapter.pyi +150 -0
- aip_agents/memory/adapters/mem0.pyi +22 -0
- aip_agents/memory/base.pyi +60 -0
- aip_agents/memory/constants.pyi +25 -0
- aip_agents/memory/factory.pyi +24 -0
- aip_agents/memory/guidance.pyi +3 -0
- aip_agents/memory/simple_memory.pyi +23 -0
- aip_agents/middleware/__init__.pyi +5 -0
- aip_agents/middleware/base.pyi +71 -0
- aip_agents/middleware/manager.pyi +80 -0
- aip_agents/middleware/todolist.pyi +125 -0
- aip_agents/schema/__init__.pyi +9 -0
- aip_agents/schema/a2a.pyi +40 -0
- aip_agents/schema/agent.pyi +65 -0
- aip_agents/schema/hitl.pyi +89 -0
- aip_agents/schema/langgraph.pyi +28 -0
- aip_agents/schema/model_id.pyi +54 -0
- aip_agents/schema/step_limit.pyi +63 -0
- aip_agents/schema/storage.pyi +21 -0
- aip_agents/sentry/__init__.pyi +3 -0
- aip_agents/sentry/sentry.pyi +48 -0
- aip_agents/storage/__init__.pyi +8 -0
- aip_agents/storage/base.pyi +58 -0
- aip_agents/storage/clients/__init__.pyi +3 -0
- aip_agents/storage/clients/minio_client.pyi +137 -0
- aip_agents/storage/config.pyi +29 -0
- aip_agents/storage/providers/__init__.pyi +5 -0
- aip_agents/storage/providers/base.pyi +88 -0
- aip_agents/storage/providers/memory.pyi +79 -0
- aip_agents/storage/providers/object_storage.pyi +98 -0
- aip_agents/tools/__init__.pyi +4 -0
- aip_agents/tools/bosa_tools.pyi +37 -0
- aip_agents/tools/browser_use/__init__.py +1 -1
- aip_agents/tools/browser_use/__init__.pyi +14 -0
- aip_agents/tools/browser_use/action_parser.pyi +18 -0
- aip_agents/tools/browser_use/browser_use_tool.pyi +50 -0
- aip_agents/tools/browser_use/llm_config.pyi +52 -0
- aip_agents/tools/browser_use/minio_storage.pyi +109 -0
- aip_agents/tools/browser_use/schemas.pyi +32 -0
- aip_agents/tools/browser_use/session.pyi +4 -0
- aip_agents/tools/browser_use/session_errors.pyi +53 -0
- aip_agents/tools/browser_use/steel_session_recording.pyi +63 -0
- aip_agents/tools/browser_use/streaming.pyi +81 -0
- aip_agents/tools/browser_use/structured_data_parser.pyi +86 -0
- aip_agents/tools/browser_use/structured_data_recovery.pyi +43 -0
- aip_agents/tools/browser_use/types.pyi +45 -0
- aip_agents/tools/code_sandbox/__init__.py +1 -1
- aip_agents/tools/code_sandbox/__init__.pyi +3 -0
- aip_agents/tools/code_sandbox/constant.pyi +4 -0
- aip_agents/tools/code_sandbox/e2b_cloud_sandbox_extended.pyi +86 -0
- aip_agents/tools/code_sandbox/e2b_sandbox_tool.pyi +29 -0
- aip_agents/tools/constants.pyi +135 -0
- aip_agents/tools/document_loader/__init__.pyi +7 -0
- aip_agents/tools/document_loader/base_reader.pyi +75 -0
- aip_agents/tools/document_loader/docx_reader_tool.pyi +10 -0
- aip_agents/tools/document_loader/excel_reader_tool.pyi +26 -0
- aip_agents/tools/document_loader/pdf_reader_tool.pyi +11 -0
- aip_agents/tools/document_loader/pdf_splitter.pyi +18 -0
- aip_agents/tools/gl_connector/__init__.pyi +3 -0
- aip_agents/tools/gl_connector/tool.pyi +74 -0
- aip_agents/tools/memory_search/__init__.pyi +5 -0
- aip_agents/tools/memory_search/base.pyi +69 -0
- aip_agents/tools/memory_search/mem0.pyi +19 -0
- aip_agents/tools/memory_search/schema.pyi +15 -0
- aip_agents/tools/memory_search_tool.pyi +3 -0
- aip_agents/tools/tool_config_injector.pyi +26 -0
- aip_agents/tools/web_search/__init__.pyi +3 -0
- aip_agents/tools/web_search/serper_tool.pyi +19 -0
- aip_agents/types/__init__.pyi +36 -0
- aip_agents/types/a2a_events.pyi +3 -0
- aip_agents/utils/__init__.pyi +11 -0
- aip_agents/utils/a2a_connector.pyi +146 -0
- aip_agents/utils/artifact_helpers.pyi +203 -0
- aip_agents/utils/constants.pyi +10 -0
- aip_agents/utils/datetime/__init__.pyi +4 -0
- aip_agents/utils/datetime/normalization.pyi +95 -0
- aip_agents/utils/datetime/timezone.pyi +48 -0
- aip_agents/utils/env_loader.pyi +10 -0
- aip_agents/utils/event_handler_registry.pyi +23 -0
- aip_agents/utils/file_prompt_utils.pyi +21 -0
- aip_agents/utils/final_response_builder.pyi +34 -0
- aip_agents/utils/formatter_llm_client.pyi +71 -0
- aip_agents/utils/langgraph/__init__.pyi +3 -0
- aip_agents/utils/langgraph/converter.pyi +49 -0
- aip_agents/utils/langgraph/tool_managers/__init__.pyi +5 -0
- aip_agents/utils/langgraph/tool_managers/a2a_tool_manager.pyi +35 -0
- aip_agents/utils/langgraph/tool_managers/base_tool_manager.pyi +48 -0
- aip_agents/utils/langgraph/tool_managers/delegation_tool_manager.pyi +56 -0
- aip_agents/utils/langgraph/tool_output_management.pyi +292 -0
- aip_agents/utils/logger.pyi +60 -0
- aip_agents/utils/metadata/__init__.pyi +5 -0
- aip_agents/utils/metadata/activity_metadata_helper.pyi +25 -0
- aip_agents/utils/metadata/activity_narrative/__init__.pyi +7 -0
- aip_agents/utils/metadata/activity_narrative/builder.pyi +35 -0
- aip_agents/utils/metadata/activity_narrative/constants.pyi +10 -0
- aip_agents/utils/metadata/activity_narrative/context.pyi +32 -0
- aip_agents/utils/metadata/activity_narrative/formatters.pyi +48 -0
- aip_agents/utils/metadata/activity_narrative/utils.pyi +12 -0
- aip_agents/utils/metadata/schemas/__init__.pyi +4 -0
- aip_agents/utils/metadata/schemas/activity_schema.pyi +18 -0
- aip_agents/utils/metadata/schemas/thinking_schema.pyi +20 -0
- aip_agents/utils/metadata/thinking_metadata_helper.pyi +4 -0
- aip_agents/utils/metadata_helper.pyi +117 -0
- aip_agents/utils/name_preprocessor/__init__.pyi +6 -0
- aip_agents/utils/name_preprocessor/base_name_preprocessor.pyi +52 -0
- aip_agents/utils/name_preprocessor/google_name_preprocessor.pyi +38 -0
- aip_agents/utils/name_preprocessor/name_preprocessor.pyi +41 -0
- aip_agents/utils/name_preprocessor/openai_name_preprocessor.pyi +34 -0
- aip_agents/utils/pii/__init__.pyi +5 -0
- aip_agents/utils/pii/pii_handler.pyi +96 -0
- aip_agents/utils/pii/pii_helper.pyi +78 -0
- aip_agents/utils/pii/uuid_deanonymizer_mapping.pyi +73 -0
- aip_agents/utils/reference_helper.pyi +81 -0
- aip_agents/utils/sse_chunk_transformer.pyi +166 -0
- aip_agents/utils/step_limit_manager.pyi +112 -0
- aip_agents/utils/token_usage_helper.pyi +60 -0
- {aip_agents_binary-0.5.17.dist-info → aip_agents_binary-0.5.19.dist-info}/METADATA +4 -12
- {aip_agents_binary-0.5.17.dist-info → aip_agents_binary-0.5.19.dist-info}/RECORD +271 -6
- {aip_agents_binary-0.5.17.dist-info → aip_agents_binary-0.5.19.dist-info}/WHEEL +0 -0
- {aip_agents_binary-0.5.17.dist-info → aip_agents_binary-0.5.19.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.agent import LangChainAgent as LangChainAgent
|
|
3
|
+
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
|
|
4
|
+
from aip_agents.utils.logger import LoggerManager as LoggerManager
|
|
5
|
+
|
|
6
|
+
logger: Incomplete
|
|
7
|
+
SERVER_AGENT_NAME: str
|
|
8
|
+
|
|
9
|
+
def main(host: str, port: int):
|
|
10
|
+
"""Runs the PII Demo LangGraph A2A server.
|
|
11
|
+
|
|
12
|
+
This server demonstrates PII handling capabilities including:
|
|
13
|
+
- Automatic anonymization of sensitive data in tool outputs
|
|
14
|
+
- Deanonymization of PII for tool inputs
|
|
15
|
+
- Collision detection and resolution in parallel tool execution
|
|
16
|
+
|
|
17
|
+
Args:
|
|
18
|
+
host (str): Host to bind the server to.
|
|
19
|
+
port (int): Port to bind the server to.
|
|
20
|
+
"""
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.agent import LangGraphAgent as LangGraphAgent
|
|
3
|
+
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
|
|
4
|
+
from aip_agents.utils.logger import LoggerManager as LoggerManager
|
|
5
|
+
from langchain_openai import ChatOpenAI
|
|
6
|
+
|
|
7
|
+
logger: Incomplete
|
|
8
|
+
SERVER_AGENT_NAME: str
|
|
9
|
+
|
|
10
|
+
def create_specialist_agents(llm: ChatOpenAI) -> tuple[LangGraphAgent, LangGraphAgent, LangGraphAgent]:
|
|
11
|
+
"""Create Level 2 specialist agents with PII-returning tools.
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
llm: The language model to use for the specialist agents.
|
|
15
|
+
|
|
16
|
+
Returns:
|
|
17
|
+
Tuple of (customer_service_agent, hr_agent, user_support_agent).
|
|
18
|
+
"""
|
|
19
|
+
def create_coordinator_agent(llm: ChatOpenAI, specialist_agents: tuple[LangGraphAgent, LangGraphAgent, LangGraphAgent]) -> LangGraphAgent:
|
|
20
|
+
"""Create Level 1 coordinator agent that orchestrates specialist agents.
|
|
21
|
+
|
|
22
|
+
Args:
|
|
23
|
+
llm: The language model to use for the coordinator agent.
|
|
24
|
+
specialist_agents: Tuple of specialist agents.
|
|
25
|
+
|
|
26
|
+
Returns:
|
|
27
|
+
The configured coordinator agent.
|
|
28
|
+
"""
|
|
29
|
+
def main(host: str, port: int):
|
|
30
|
+
"""Runs the Multi-Agent PII Demo A2A server.
|
|
31
|
+
|
|
32
|
+
This server demonstrates PII handling across a multi-agent hierarchy:
|
|
33
|
+
- PII anonymization in tool outputs
|
|
34
|
+
- PII propagation from child agents to parent
|
|
35
|
+
- Multi-agent delegation with PII mapping merge
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
host: Host to bind the server to.
|
|
39
|
+
port: Port to bind the server to.
|
|
40
|
+
"""
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.agent import LangGraphReactAgent as LangGraphReactAgent
|
|
3
|
+
from aip_agents.examples.tools.serper_tool import MockGoogleSerperTool as MockGoogleSerperTool
|
|
4
|
+
from aip_agents.examples.tools.stock_tools import get_stock_price as get_stock_price
|
|
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) -> None:
|
|
11
|
+
"""Run an A2A server with a planning-enabled LangGraphReactAgent.
|
|
12
|
+
|
|
13
|
+
The agent has TodoListMiddleware attached via planning=True and will
|
|
14
|
+
expose the write_todos_tool over A2A with token streaming enabled.
|
|
15
|
+
|
|
16
|
+
Args:
|
|
17
|
+
host: The host to bind the server to.
|
|
18
|
+
port: The port to bind the server to.
|
|
19
|
+
"""
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from aip_agents.examples.tools.adk_weather_tool import get_weather as weather_tool_adk
|
|
2
|
+
from aip_agents.examples.tools.langchain_weather_tool import weather_tool as weather_tool_langchain
|
|
3
|
+
from aip_agents.examples.tools.langgraph_streaming_tool import LangGraphStreamingTool as langgraph_streaming_tool
|
|
4
|
+
from aip_agents.examples.tools.mock_retrieval_tool import MockRetrievalTool as mock_retrieval_tool
|
|
5
|
+
from aip_agents.examples.tools.random_chart_tool import RandomChartTool as random_chart_tool
|
|
6
|
+
from aip_agents.examples.tools.serper_tool import MockGoogleSerperTool as google_serper_tool
|
|
7
|
+
from aip_agents.examples.tools.time_tool import TimeTool as time_tool
|
|
8
|
+
|
|
9
|
+
__all__ = ['weather_tool_langchain', 'weather_tool_adk', 'time_tool', 'google_serper_tool', 'langgraph_streaming_tool', 'mock_retrieval_tool', 'random_chart_tool']
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
def add_numbers(a: int, b: int) -> str:
|
|
2
|
+
"""Adds two integer numbers together and returns the result as a string.
|
|
3
|
+
|
|
4
|
+
For example, to add 5 and 3, you would call this with a=5 and b=3.
|
|
5
|
+
|
|
6
|
+
Args:
|
|
7
|
+
a: The first number.
|
|
8
|
+
b: The second number.
|
|
9
|
+
|
|
10
|
+
Returns:
|
|
11
|
+
The sum of the two numbers as a string, or an error message if addition fails.
|
|
12
|
+
"""
|
|
13
|
+
def sum_numbers(a: int, b: int) -> int:
|
|
14
|
+
"""Adds two integer numbers together and returns the integer result.
|
|
15
|
+
|
|
16
|
+
Used specifically in Google ADK examples where an integer return is expected.
|
|
17
|
+
|
|
18
|
+
Args:
|
|
19
|
+
a: The first number.
|
|
20
|
+
b: The second number.
|
|
21
|
+
|
|
22
|
+
Returns:
|
|
23
|
+
The sum of the two numbers as an integer.
|
|
24
|
+
"""
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.utils.logger import get_logger as get_logger
|
|
3
|
+
|
|
4
|
+
logger: Incomplete
|
|
5
|
+
WEATHER_DATA: Incomplete
|
|
6
|
+
|
|
7
|
+
def get_weather(location: str) -> dict:
|
|
8
|
+
"""Gets detailed weather information for a specified location.
|
|
9
|
+
|
|
10
|
+
Args:
|
|
11
|
+
location: The name of the city to get weather for.
|
|
12
|
+
|
|
13
|
+
Returns:
|
|
14
|
+
A dictionary containing:
|
|
15
|
+
- location: The requested location name
|
|
16
|
+
- weather: A dictionary with temperature, conditions, and humidity
|
|
17
|
+
"""
|
|
18
|
+
weather_tool = get_weather
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from langchain_core.tools import BaseTool
|
|
2
|
+
from pydantic import BaseModel
|
|
3
|
+
from typing import Literal
|
|
4
|
+
|
|
5
|
+
class DataInput(BaseModel):
|
|
6
|
+
"""Input schema for data generation."""
|
|
7
|
+
data_type: Literal['sales', 'scores', 'growth']
|
|
8
|
+
size: int
|
|
9
|
+
|
|
10
|
+
class DataGeneratorTool(BaseTool):
|
|
11
|
+
"""Tool that generates sample datasets with automatic output storage."""
|
|
12
|
+
name: str
|
|
13
|
+
description: str
|
|
14
|
+
args_schema: type[BaseModel]
|
|
15
|
+
store_final_output: bool
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from aip_agents.a2a.types import MimeType as MimeType
|
|
2
|
+
from aip_agents.utils.artifact_helpers import create_artifact_command as create_artifact_command
|
|
3
|
+
from langchain_core.tools import BaseTool
|
|
4
|
+
from pydantic import BaseModel
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
PIL_AVAILABLE: bool
|
|
8
|
+
|
|
9
|
+
class ChartInput(BaseModel):
|
|
10
|
+
"""Input schema for chart generation."""
|
|
11
|
+
data_source: Any
|
|
12
|
+
chart_type: str
|
|
13
|
+
title: str
|
|
14
|
+
|
|
15
|
+
class DataVisualizerTool(BaseTool):
|
|
16
|
+
"""Tool that creates visualizations with automatic output storage."""
|
|
17
|
+
name: str
|
|
18
|
+
description: str
|
|
19
|
+
args_schema: type[BaseModel]
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from aip_agents.a2a.types import MimeType as MimeType
|
|
2
|
+
from aip_agents.utils.artifact_helpers import create_artifact_response as create_artifact_response, create_error_response as create_error_response
|
|
3
|
+
from langchain_core.tools import BaseTool
|
|
4
|
+
from pydantic import BaseModel
|
|
5
|
+
|
|
6
|
+
PIL_AVAILABLE: bool
|
|
7
|
+
|
|
8
|
+
class ImageArtifactInput(BaseModel):
|
|
9
|
+
"""Input schema for image artifact tool."""
|
|
10
|
+
width: int
|
|
11
|
+
height: int
|
|
12
|
+
color: str
|
|
13
|
+
text: str
|
|
14
|
+
image_name: str
|
|
15
|
+
|
|
16
|
+
class ImageArtifactTool(BaseTool):
|
|
17
|
+
"""Tool that generates simple images with artifact support.
|
|
18
|
+
|
|
19
|
+
This tool demonstrates the standardized artifact format for binary data by:
|
|
20
|
+
1. Generating a simple image using PIL
|
|
21
|
+
2. Providing a confirmation message for the agent
|
|
22
|
+
3. Creating an image file artifact for the user
|
|
23
|
+
"""
|
|
24
|
+
name: str
|
|
25
|
+
description: str
|
|
26
|
+
args_schema: type[BaseModel]
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from langchain_core.tools import tool
|
|
2
|
+
|
|
3
|
+
@tool
|
|
4
|
+
def add_numbers(a: int, b: int) -> str:
|
|
5
|
+
"""Adds two numbers and returns the result as a string.
|
|
6
|
+
|
|
7
|
+
This is a self-contained LangChain tool.
|
|
8
|
+
For example:
|
|
9
|
+
add_numbers(a=5, b=3)
|
|
10
|
+
|
|
11
|
+
Args:
|
|
12
|
+
a (int): First number to add.
|
|
13
|
+
b (int): Second number to add.
|
|
14
|
+
|
|
15
|
+
Returns:
|
|
16
|
+
str: Sum of the two numbers as a string.
|
|
17
|
+
"""
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from langchain_core.tools import BaseTool
|
|
2
|
+
from pydantic import BaseModel
|
|
3
|
+
|
|
4
|
+
class CurrencyConfig(BaseModel):
|
|
5
|
+
"""Tool configuration schema."""
|
|
6
|
+
tenant_id: str
|
|
7
|
+
auth_key: str
|
|
8
|
+
|
|
9
|
+
class CurrencyInput(BaseModel):
|
|
10
|
+
"""Input schema for currency exchange."""
|
|
11
|
+
amount: float
|
|
12
|
+
from_currency: str
|
|
13
|
+
to_currency: str
|
|
14
|
+
|
|
15
|
+
class CurrencyExchangeTool(BaseTool):
|
|
16
|
+
"""Simple currency exchange tool with SDK auto-injection configuration."""
|
|
17
|
+
name: str
|
|
18
|
+
description: str
|
|
19
|
+
args_schema: type[BaseModel]
|
|
20
|
+
tool_config_schema: type[BaseModel]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from aip_agents.a2a.types import MimeType as MimeType
|
|
2
|
+
from aip_agents.utils.artifact_helpers import create_artifact_command as create_artifact_command
|
|
3
|
+
from langchain_core.tools import BaseTool
|
|
4
|
+
from pydantic import BaseModel
|
|
5
|
+
|
|
6
|
+
PIL_AVAILABLE: bool
|
|
7
|
+
|
|
8
|
+
class GraphCommandInput(BaseModel):
|
|
9
|
+
"""Input schema for a tiny bar/line chart artifact tool.
|
|
10
|
+
|
|
11
|
+
Note: width/height are clamped to a small size to keep artifacts lightweight.
|
|
12
|
+
"""
|
|
13
|
+
chart_type: str
|
|
14
|
+
labels: list[str]
|
|
15
|
+
values: list[float]
|
|
16
|
+
title: str
|
|
17
|
+
width: int
|
|
18
|
+
height: int
|
|
19
|
+
image_name: str
|
|
20
|
+
|
|
21
|
+
class GraphArtifactCommandTool(BaseTool):
|
|
22
|
+
"""Generate a very small PNG chart and return it as a Command artifact."""
|
|
23
|
+
name: str
|
|
24
|
+
description: str
|
|
25
|
+
args_schema: type[BaseModel]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.utils.logger import get_logger as get_logger
|
|
3
|
+
from pydantic import BaseModel
|
|
4
|
+
|
|
5
|
+
logger: Incomplete
|
|
6
|
+
|
|
7
|
+
class WeatherToolInputSchema(BaseModel):
|
|
8
|
+
"""Schema for weather tool input."""
|
|
9
|
+
city: str
|
|
10
|
+
|
|
11
|
+
def weather_tool(city: str) -> str:
|
|
12
|
+
"""Gets the weather for a specified city.
|
|
13
|
+
|
|
14
|
+
Args:
|
|
15
|
+
city: The name of the city to get weather for.
|
|
16
|
+
|
|
17
|
+
Returns:
|
|
18
|
+
A string describing the weather conditions.
|
|
19
|
+
"""
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
from aip_agents.agent.langgraph_react_agent import LangGraphReactAgent as LangGraphReactAgent
|
|
2
|
+
from aip_agents.examples.tools.langchain_weather_tool import weather_tool as weather_tool
|
|
3
|
+
from aip_agents.examples.tools.time_tool import TimeTool as TimeTool
|
|
4
|
+
from langchain_core.runnables import RunnableConfig
|
|
5
|
+
from langchain_core.tools import BaseTool
|
|
6
|
+
from pydantic import BaseModel
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
9
|
+
class StreamingToolConfig(BaseModel):
|
|
10
|
+
"""Tool configuration schema for the LangGraph streaming tool."""
|
|
11
|
+
time_format: str
|
|
12
|
+
|
|
13
|
+
class LangGraphStreamingToolInput(BaseModel):
|
|
14
|
+
"""Input schema for the LangGraphStreamingTool."""
|
|
15
|
+
query: str
|
|
16
|
+
|
|
17
|
+
class LangGraphStreamingTool(BaseTool):
|
|
18
|
+
"""Tool that wraps a LangGraph agent with time and weather forecast capabilities."""
|
|
19
|
+
name: str
|
|
20
|
+
description: str
|
|
21
|
+
args_schema: type[BaseModel]
|
|
22
|
+
tool_config_schema: type[BaseModel]
|
|
23
|
+
def __init__(self, model: Any = None, **kwargs) -> None:
|
|
24
|
+
"""Initialize the LangGraphStreamingTool.
|
|
25
|
+
|
|
26
|
+
Args:
|
|
27
|
+
model: The model to use for the agent.
|
|
28
|
+
**kwargs: Additional keyword arguments.
|
|
29
|
+
"""
|
|
30
|
+
@property
|
|
31
|
+
def agent(self):
|
|
32
|
+
"""Access the internal agent."""
|
|
33
|
+
async def arun_streaming(self, query: str = None, config: RunnableConfig = None, **kwargs):
|
|
34
|
+
"""Execute the LangGraph agent asynchronously with A2A streaming output.
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
query: The query to execute.
|
|
38
|
+
config: Tool configuration containing user context and preferences.
|
|
39
|
+
**kwargs: Additional keyword arguments.
|
|
40
|
+
|
|
41
|
+
Returns:
|
|
42
|
+
An async generator that yields streaming events.
|
|
43
|
+
"""
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from langchain_core.tools import BaseTool
|
|
2
|
+
from pydantic import BaseModel
|
|
3
|
+
|
|
4
|
+
class MockRetrievalInput(BaseModel):
|
|
5
|
+
"""Input schema for the MockRetrievalTool."""
|
|
6
|
+
query: str
|
|
7
|
+
|
|
8
|
+
class MockRetrievalTool(BaseTool):
|
|
9
|
+
"""Mock tool that returns hardcoded references for testing."""
|
|
10
|
+
name: str
|
|
11
|
+
description: str
|
|
12
|
+
args_schema: type[BaseModel]
|
|
13
|
+
save_output_history: bool
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.utils.logger import LoggerManager as LoggerManager
|
|
3
|
+
from pydantic import BaseModel
|
|
4
|
+
|
|
5
|
+
logger: Incomplete
|
|
6
|
+
|
|
7
|
+
class CustomerIdSchema(BaseModel):
|
|
8
|
+
"""Schema for customer ID input."""
|
|
9
|
+
customer_id: str
|
|
10
|
+
|
|
11
|
+
class EmployeeIdSchema(BaseModel):
|
|
12
|
+
"""Schema for employee ID input."""
|
|
13
|
+
employee_id: str
|
|
14
|
+
|
|
15
|
+
class UserIdSchema(BaseModel):
|
|
16
|
+
"""Schema for user ID input."""
|
|
17
|
+
user_id: str
|
|
18
|
+
|
|
19
|
+
def get_customer_info(customer_id: str) -> str:
|
|
20
|
+
"""Gets customer information including email and phone number.
|
|
21
|
+
|
|
22
|
+
This tool demonstrates PII handling by returning sensitive customer data
|
|
23
|
+
that will be automatically anonymized by the PII handler.
|
|
24
|
+
|
|
25
|
+
Args:
|
|
26
|
+
customer_id: The ID of the customer to retrieve information for.
|
|
27
|
+
|
|
28
|
+
Returns:
|
|
29
|
+
A string containing customer information with PII.
|
|
30
|
+
"""
|
|
31
|
+
def get_employee_data(employee_id: str) -> str:
|
|
32
|
+
"""Gets employee data including name, email, and salary information.
|
|
33
|
+
|
|
34
|
+
This tool demonstrates PII handling with employee-specific data that includes
|
|
35
|
+
sensitive information like salary and personal email addresses.
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
employee_id: The ID of the employee to retrieve data for.
|
|
39
|
+
|
|
40
|
+
Returns:
|
|
41
|
+
A string containing employee information with PII.
|
|
42
|
+
"""
|
|
43
|
+
def get_user_profile(user_id: str) -> str:
|
|
44
|
+
"""Gets user profile information with personal details.
|
|
45
|
+
|
|
46
|
+
This tool demonstrates PII handling with user profile data that includes
|
|
47
|
+
personal information like email, phone, and date of birth.
|
|
48
|
+
|
|
49
|
+
Args:
|
|
50
|
+
user_id: The ID of the user to retrieve profile for.
|
|
51
|
+
|
|
52
|
+
Returns:
|
|
53
|
+
A string containing user profile information with PII.
|
|
54
|
+
"""
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from aip_agents.a2a.types import MimeType as MimeType
|
|
2
|
+
from aip_agents.utils.artifact_helpers import create_artifact_command as create_artifact_command
|
|
3
|
+
from langchain_core.tools import BaseTool
|
|
4
|
+
from pydantic import BaseModel
|
|
5
|
+
|
|
6
|
+
DEFAULT_RANDOM_CHART_TITLE: str
|
|
7
|
+
PIL_AVAILABLE: bool
|
|
8
|
+
|
|
9
|
+
class RandomChartInput(BaseModel):
|
|
10
|
+
"""Input schema for random chart generation."""
|
|
11
|
+
title: str
|
|
12
|
+
num_bars: int
|
|
13
|
+
min_value: int
|
|
14
|
+
max_value: int
|
|
15
|
+
|
|
16
|
+
class RandomChartTool(BaseTool):
|
|
17
|
+
"""Generate random bar chart images without relying on upstream data."""
|
|
18
|
+
name: str
|
|
19
|
+
description: str
|
|
20
|
+
args_schema: type[BaseModel]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from langchain_core.tools import BaseTool
|
|
3
|
+
from pydantic import BaseModel
|
|
4
|
+
|
|
5
|
+
logger: Incomplete
|
|
6
|
+
|
|
7
|
+
class GoogleSerperInput(BaseModel):
|
|
8
|
+
"""Input schema for the GoogleSerperTool."""
|
|
9
|
+
query: str
|
|
10
|
+
|
|
11
|
+
class MockGoogleSerperTool(BaseTool):
|
|
12
|
+
"""Mock Tool to simulate Google Serper API results for testing."""
|
|
13
|
+
name: str
|
|
14
|
+
description: str
|
|
15
|
+
save_output_history: bool
|
|
16
|
+
args_schema: type[BaseModel]
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.utils.logger import get_logger as get_logger
|
|
3
|
+
from pydantic import BaseModel
|
|
4
|
+
from typing import Any
|
|
5
|
+
|
|
6
|
+
logger: Incomplete
|
|
7
|
+
|
|
8
|
+
class StockPriceInput(BaseModel):
|
|
9
|
+
"""Input for the stock price tool."""
|
|
10
|
+
symbol: str
|
|
11
|
+
|
|
12
|
+
def get_stock_price(symbol: str) -> dict[str, Any]:
|
|
13
|
+
"""Get current stock price and performance data for a given symbol.
|
|
14
|
+
|
|
15
|
+
Args:
|
|
16
|
+
symbol (str): The stock symbol (e.g., AAPL, MSFT) to get the price for.
|
|
17
|
+
|
|
18
|
+
Returns:
|
|
19
|
+
dict[str, Any]: Dictionary containing stock price and performance data.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
class StockNewsInput(BaseModel):
|
|
23
|
+
"""Input for the stock news tool."""
|
|
24
|
+
symbol: str
|
|
25
|
+
days: int
|
|
26
|
+
|
|
27
|
+
def get_stock_news(symbol: str, days: int = 7) -> dict[str, Any]:
|
|
28
|
+
"""Get recent news for a stock for a specified number of days.
|
|
29
|
+
|
|
30
|
+
Args:
|
|
31
|
+
symbol (str): The stock symbol (e.g., AAPL, MSFT) to get news for.
|
|
32
|
+
days (int, optional): Number of days of news to retrieve. Defaults to 7.
|
|
33
|
+
|
|
34
|
+
Returns:
|
|
35
|
+
dict[str, Any]: Dictionary containing stock news data.
|
|
36
|
+
"""
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from aip_agents.a2a.types import MimeType as MimeType
|
|
2
|
+
from aip_agents.utils.artifact_helpers import create_artifact_response as create_artifact_response
|
|
3
|
+
from langchain_core.tools import BaseTool
|
|
4
|
+
from pydantic import BaseModel
|
|
5
|
+
|
|
6
|
+
class TableGeneratorInput(BaseModel):
|
|
7
|
+
"""Input schema for table generator tool."""
|
|
8
|
+
rows: int
|
|
9
|
+
columns: list[str]
|
|
10
|
+
table_name: str
|
|
11
|
+
|
|
12
|
+
class TableGeneratorTool(BaseTool):
|
|
13
|
+
"""Tool that generates sample data tables with artifact support.
|
|
14
|
+
|
|
15
|
+
This tool demonstrates the standardized artifact format by:
|
|
16
|
+
1. Generating sample data
|
|
17
|
+
2. Creating a markdown table for the agent's context
|
|
18
|
+
3. Creating a CSV file artifact for the user
|
|
19
|
+
"""
|
|
20
|
+
name: str
|
|
21
|
+
description: str
|
|
22
|
+
args_schema: type[BaseModel]
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from langchain_core.tools import BaseTool
|
|
2
|
+
from pydantic import BaseModel
|
|
3
|
+
|
|
4
|
+
FORMAT_STRING: str
|
|
5
|
+
|
|
6
|
+
class TimeToolInput(BaseModel):
|
|
7
|
+
"""Input schema for the TimeTool."""
|
|
8
|
+
datetime_format: str
|
|
9
|
+
|
|
10
|
+
class TimeTool(BaseTool):
|
|
11
|
+
"""Tool to get the current time."""
|
|
12
|
+
name: str
|
|
13
|
+
description: str
|
|
14
|
+
save_output_history: bool
|
|
15
|
+
args_schema: type[BaseModel]
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
|
|
3
|
+
DAILY_WEATHER: Incomplete
|
|
4
|
+
DayOfWeek: Incomplete
|
|
5
|
+
|
|
6
|
+
def get_weather_forecast(day: DayOfWeek) -> str:
|
|
7
|
+
"""Get the weather forecast for a specific day of the week.
|
|
8
|
+
|
|
9
|
+
Args:
|
|
10
|
+
day: The day of the week (monday, tuesday, wednesday, etc.)
|
|
11
|
+
|
|
12
|
+
Returns:
|
|
13
|
+
str: A weather forecast message including conditions and temperature.
|
|
14
|
+
"""
|
|
File without changes
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from aip_agents.mcp.client.base_mcp_client import BaseMCPClient as BaseMCPClient
|
|
2
|
+
from aip_agents.mcp.client.google_adk.client import GoogleADKMCPClient as GoogleADKMCPClient
|
|
3
|
+
from aip_agents.mcp.client.langchain.client import LangchainMCPClient as LangchainMCPClient
|
|
4
|
+
|
|
5
|
+
__all__ = ['GoogleADKMCPClient', 'LangchainMCPClient', 'BaseMCPClient']
|