aip-agents-binary 0.6.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (612) hide show
  1. aip_agents/__init__.py +65 -0
  2. aip_agents/__init__.pyi +19 -0
  3. aip_agents/a2a/__init__.py +19 -0
  4. aip_agents/a2a/__init__.pyi +3 -0
  5. aip_agents/a2a/server/__init__.py +10 -0
  6. aip_agents/a2a/server/__init__.pyi +4 -0
  7. aip_agents/a2a/server/base_executor.py +1086 -0
  8. aip_agents/a2a/server/base_executor.pyi +73 -0
  9. aip_agents/a2a/server/google_adk_executor.py +198 -0
  10. aip_agents/a2a/server/google_adk_executor.pyi +51 -0
  11. aip_agents/a2a/server/langflow_executor.py +180 -0
  12. aip_agents/a2a/server/langflow_executor.pyi +43 -0
  13. aip_agents/a2a/server/langgraph_executor.py +270 -0
  14. aip_agents/a2a/server/langgraph_executor.pyi +47 -0
  15. aip_agents/a2a/types.py +232 -0
  16. aip_agents/a2a/types.pyi +132 -0
  17. aip_agents/agent/__init__.py +27 -0
  18. aip_agents/agent/__init__.pyi +9 -0
  19. aip_agents/agent/base_agent.py +970 -0
  20. aip_agents/agent/base_agent.pyi +221 -0
  21. aip_agents/agent/base_langgraph_agent.py +3037 -0
  22. aip_agents/agent/base_langgraph_agent.pyi +233 -0
  23. aip_agents/agent/google_adk_agent.py +926 -0
  24. aip_agents/agent/google_adk_agent.pyi +141 -0
  25. aip_agents/agent/google_adk_constants.py +6 -0
  26. aip_agents/agent/google_adk_constants.pyi +3 -0
  27. aip_agents/agent/hitl/__init__.py +24 -0
  28. aip_agents/agent/hitl/__init__.pyi +6 -0
  29. aip_agents/agent/hitl/config.py +28 -0
  30. aip_agents/agent/hitl/config.pyi +15 -0
  31. aip_agents/agent/hitl/langgraph_hitl_mixin.py +515 -0
  32. aip_agents/agent/hitl/langgraph_hitl_mixin.pyi +42 -0
  33. aip_agents/agent/hitl/manager.py +532 -0
  34. aip_agents/agent/hitl/manager.pyi +200 -0
  35. aip_agents/agent/hitl/models.py +18 -0
  36. aip_agents/agent/hitl/models.pyi +3 -0
  37. aip_agents/agent/hitl/prompt/__init__.py +9 -0
  38. aip_agents/agent/hitl/prompt/__init__.pyi +4 -0
  39. aip_agents/agent/hitl/prompt/base.py +42 -0
  40. aip_agents/agent/hitl/prompt/base.pyi +24 -0
  41. aip_agents/agent/hitl/prompt/deferred.py +73 -0
  42. aip_agents/agent/hitl/prompt/deferred.pyi +30 -0
  43. aip_agents/agent/hitl/registry.py +149 -0
  44. aip_agents/agent/hitl/registry.pyi +101 -0
  45. aip_agents/agent/interface.py +138 -0
  46. aip_agents/agent/interface.pyi +81 -0
  47. aip_agents/agent/interfaces.py +65 -0
  48. aip_agents/agent/interfaces.pyi +44 -0
  49. aip_agents/agent/langflow_agent.py +464 -0
  50. aip_agents/agent/langflow_agent.pyi +133 -0
  51. aip_agents/agent/langgraph_memory_enhancer_agent.py +767 -0
  52. aip_agents/agent/langgraph_memory_enhancer_agent.pyi +50 -0
  53. aip_agents/agent/langgraph_react_agent.py +2856 -0
  54. aip_agents/agent/langgraph_react_agent.pyi +170 -0
  55. aip_agents/agent/system_instruction_context.py +34 -0
  56. aip_agents/agent/system_instruction_context.pyi +13 -0
  57. aip_agents/clients/__init__.py +10 -0
  58. aip_agents/clients/__init__.pyi +4 -0
  59. aip_agents/clients/langflow/__init__.py +10 -0
  60. aip_agents/clients/langflow/__init__.pyi +4 -0
  61. aip_agents/clients/langflow/client.py +477 -0
  62. aip_agents/clients/langflow/client.pyi +140 -0
  63. aip_agents/clients/langflow/types.py +18 -0
  64. aip_agents/clients/langflow/types.pyi +7 -0
  65. aip_agents/constants.py +23 -0
  66. aip_agents/constants.pyi +7 -0
  67. aip_agents/credentials/manager.py +132 -0
  68. aip_agents/examples/__init__.py +5 -0
  69. aip_agents/examples/__init__.pyi +0 -0
  70. aip_agents/examples/compare_streaming_client.py +783 -0
  71. aip_agents/examples/compare_streaming_client.pyi +48 -0
  72. aip_agents/examples/compare_streaming_server.py +142 -0
  73. aip_agents/examples/compare_streaming_server.pyi +18 -0
  74. aip_agents/examples/hello_world_a2a_google_adk_client.py +49 -0
  75. aip_agents/examples/hello_world_a2a_google_adk_client.pyi +9 -0
  76. aip_agents/examples/hello_world_a2a_google_adk_client_agent.py +48 -0
  77. aip_agents/examples/hello_world_a2a_google_adk_client_agent.pyi +9 -0
  78. aip_agents/examples/hello_world_a2a_google_adk_client_streaming.py +60 -0
  79. aip_agents/examples/hello_world_a2a_google_adk_client_streaming.pyi +9 -0
  80. aip_agents/examples/hello_world_a2a_google_adk_server.py +79 -0
  81. aip_agents/examples/hello_world_a2a_google_adk_server.pyi +15 -0
  82. aip_agents/examples/hello_world_a2a_langchain_client.py +39 -0
  83. aip_agents/examples/hello_world_a2a_langchain_client.pyi +5 -0
  84. aip_agents/examples/hello_world_a2a_langchain_client_agent.py +39 -0
  85. aip_agents/examples/hello_world_a2a_langchain_client_agent.pyi +5 -0
  86. aip_agents/examples/hello_world_a2a_langchain_client_lm_invoker.py +37 -0
  87. aip_agents/examples/hello_world_a2a_langchain_client_lm_invoker.pyi +5 -0
  88. aip_agents/examples/hello_world_a2a_langchain_client_streaming.py +41 -0
  89. aip_agents/examples/hello_world_a2a_langchain_client_streaming.pyi +5 -0
  90. aip_agents/examples/hello_world_a2a_langchain_reference_client_streaming.py +60 -0
  91. aip_agents/examples/hello_world_a2a_langchain_reference_client_streaming.pyi +5 -0
  92. aip_agents/examples/hello_world_a2a_langchain_reference_server.py +105 -0
  93. aip_agents/examples/hello_world_a2a_langchain_reference_server.pyi +15 -0
  94. aip_agents/examples/hello_world_a2a_langchain_server.py +79 -0
  95. aip_agents/examples/hello_world_a2a_langchain_server.pyi +15 -0
  96. aip_agents/examples/hello_world_a2a_langchain_server_lm_invoker.py +78 -0
  97. aip_agents/examples/hello_world_a2a_langchain_server_lm_invoker.pyi +15 -0
  98. aip_agents/examples/hello_world_a2a_langflow_client.py +83 -0
  99. aip_agents/examples/hello_world_a2a_langflow_client.pyi +9 -0
  100. aip_agents/examples/hello_world_a2a_langflow_server.py +82 -0
  101. aip_agents/examples/hello_world_a2a_langflow_server.pyi +14 -0
  102. aip_agents/examples/hello_world_a2a_langgraph_artifact_client.py +73 -0
  103. aip_agents/examples/hello_world_a2a_langgraph_artifact_client.pyi +5 -0
  104. aip_agents/examples/hello_world_a2a_langgraph_artifact_client_streaming.py +76 -0
  105. aip_agents/examples/hello_world_a2a_langgraph_artifact_client_streaming.pyi +5 -0
  106. aip_agents/examples/hello_world_a2a_langgraph_artifact_server.py +92 -0
  107. aip_agents/examples/hello_world_a2a_langgraph_artifact_server.pyi +16 -0
  108. aip_agents/examples/hello_world_a2a_langgraph_client.py +54 -0
  109. aip_agents/examples/hello_world_a2a_langgraph_client.pyi +9 -0
  110. aip_agents/examples/hello_world_a2a_langgraph_client_agent.py +54 -0
  111. aip_agents/examples/hello_world_a2a_langgraph_client_agent.pyi +9 -0
  112. aip_agents/examples/hello_world_a2a_langgraph_client_agent_lm_invoker.py +32 -0
  113. aip_agents/examples/hello_world_a2a_langgraph_client_agent_lm_invoker.pyi +2 -0
  114. aip_agents/examples/hello_world_a2a_langgraph_client_streaming.py +50 -0
  115. aip_agents/examples/hello_world_a2a_langgraph_client_streaming.pyi +9 -0
  116. aip_agents/examples/hello_world_a2a_langgraph_client_streaming_lm_invoker.py +44 -0
  117. aip_agents/examples/hello_world_a2a_langgraph_client_streaming_lm_invoker.pyi +5 -0
  118. aip_agents/examples/hello_world_a2a_langgraph_client_streaming_tool_streaming.py +92 -0
  119. aip_agents/examples/hello_world_a2a_langgraph_client_streaming_tool_streaming.pyi +5 -0
  120. aip_agents/examples/hello_world_a2a_langgraph_server.py +84 -0
  121. aip_agents/examples/hello_world_a2a_langgraph_server.pyi +14 -0
  122. aip_agents/examples/hello_world_a2a_langgraph_server_lm_invoker.py +79 -0
  123. aip_agents/examples/hello_world_a2a_langgraph_server_lm_invoker.pyi +15 -0
  124. aip_agents/examples/hello_world_a2a_langgraph_server_tool_streaming.py +132 -0
  125. aip_agents/examples/hello_world_a2a_langgraph_server_tool_streaming.pyi +15 -0
  126. aip_agents/examples/hello_world_a2a_mcp_langgraph.py +196 -0
  127. aip_agents/examples/hello_world_a2a_mcp_langgraph.pyi +48 -0
  128. aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_client.py +244 -0
  129. aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_client.pyi +48 -0
  130. aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_server.py +251 -0
  131. aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_server.pyi +45 -0
  132. aip_agents/examples/hello_world_a2a_with_metadata_langchain_client.py +57 -0
  133. aip_agents/examples/hello_world_a2a_with_metadata_langchain_client.pyi +5 -0
  134. aip_agents/examples/hello_world_a2a_with_metadata_langchain_server_lm_invoker.py +80 -0
  135. aip_agents/examples/hello_world_a2a_with_metadata_langchain_server_lm_invoker.pyi +15 -0
  136. aip_agents/examples/hello_world_google_adk.py +41 -0
  137. aip_agents/examples/hello_world_google_adk.pyi +5 -0
  138. aip_agents/examples/hello_world_google_adk_mcp_http.py +34 -0
  139. aip_agents/examples/hello_world_google_adk_mcp_http.pyi +5 -0
  140. aip_agents/examples/hello_world_google_adk_mcp_http_stream.py +40 -0
  141. aip_agents/examples/hello_world_google_adk_mcp_http_stream.pyi +5 -0
  142. aip_agents/examples/hello_world_google_adk_mcp_sse.py +44 -0
  143. aip_agents/examples/hello_world_google_adk_mcp_sse.pyi +5 -0
  144. aip_agents/examples/hello_world_google_adk_mcp_sse_stream.py +48 -0
  145. aip_agents/examples/hello_world_google_adk_mcp_sse_stream.pyi +5 -0
  146. aip_agents/examples/hello_world_google_adk_mcp_stdio.py +44 -0
  147. aip_agents/examples/hello_world_google_adk_mcp_stdio.pyi +5 -0
  148. aip_agents/examples/hello_world_google_adk_mcp_stdio_stream.py +48 -0
  149. aip_agents/examples/hello_world_google_adk_mcp_stdio_stream.pyi +5 -0
  150. aip_agents/examples/hello_world_google_adk_stream.py +44 -0
  151. aip_agents/examples/hello_world_google_adk_stream.pyi +5 -0
  152. aip_agents/examples/hello_world_langchain.py +28 -0
  153. aip_agents/examples/hello_world_langchain.pyi +5 -0
  154. aip_agents/examples/hello_world_langchain_lm_invoker.py +15 -0
  155. aip_agents/examples/hello_world_langchain_lm_invoker.pyi +2 -0
  156. aip_agents/examples/hello_world_langchain_mcp_http.py +34 -0
  157. aip_agents/examples/hello_world_langchain_mcp_http.pyi +5 -0
  158. aip_agents/examples/hello_world_langchain_mcp_http_interactive.py +130 -0
  159. aip_agents/examples/hello_world_langchain_mcp_http_interactive.pyi +16 -0
  160. aip_agents/examples/hello_world_langchain_mcp_http_stream.py +42 -0
  161. aip_agents/examples/hello_world_langchain_mcp_http_stream.pyi +5 -0
  162. aip_agents/examples/hello_world_langchain_mcp_multi_server.py +155 -0
  163. aip_agents/examples/hello_world_langchain_mcp_multi_server.pyi +18 -0
  164. aip_agents/examples/hello_world_langchain_mcp_sse.py +34 -0
  165. aip_agents/examples/hello_world_langchain_mcp_sse.pyi +5 -0
  166. aip_agents/examples/hello_world_langchain_mcp_sse_stream.py +40 -0
  167. aip_agents/examples/hello_world_langchain_mcp_sse_stream.pyi +5 -0
  168. aip_agents/examples/hello_world_langchain_mcp_stdio.py +30 -0
  169. aip_agents/examples/hello_world_langchain_mcp_stdio.pyi +5 -0
  170. aip_agents/examples/hello_world_langchain_mcp_stdio_stream.py +41 -0
  171. aip_agents/examples/hello_world_langchain_mcp_stdio_stream.pyi +5 -0
  172. aip_agents/examples/hello_world_langchain_stream.py +36 -0
  173. aip_agents/examples/hello_world_langchain_stream.pyi +5 -0
  174. aip_agents/examples/hello_world_langchain_stream_lm_invoker.py +39 -0
  175. aip_agents/examples/hello_world_langchain_stream_lm_invoker.pyi +5 -0
  176. aip_agents/examples/hello_world_langflow_agent.py +163 -0
  177. aip_agents/examples/hello_world_langflow_agent.pyi +35 -0
  178. aip_agents/examples/hello_world_langgraph.py +39 -0
  179. aip_agents/examples/hello_world_langgraph.pyi +5 -0
  180. aip_agents/examples/hello_world_langgraph_gl_connector_twitter.py +44 -0
  181. aip_agents/examples/hello_world_langgraph_gl_connector_twitter.pyi +5 -0
  182. aip_agents/examples/hello_world_langgraph_mcp_http.py +31 -0
  183. aip_agents/examples/hello_world_langgraph_mcp_http.pyi +5 -0
  184. aip_agents/examples/hello_world_langgraph_mcp_http_stream.py +34 -0
  185. aip_agents/examples/hello_world_langgraph_mcp_http_stream.pyi +5 -0
  186. aip_agents/examples/hello_world_langgraph_mcp_sse.py +35 -0
  187. aip_agents/examples/hello_world_langgraph_mcp_sse.pyi +5 -0
  188. aip_agents/examples/hello_world_langgraph_mcp_sse_stream.py +50 -0
  189. aip_agents/examples/hello_world_langgraph_mcp_sse_stream.pyi +5 -0
  190. aip_agents/examples/hello_world_langgraph_mcp_stdio.py +35 -0
  191. aip_agents/examples/hello_world_langgraph_mcp_stdio.pyi +5 -0
  192. aip_agents/examples/hello_world_langgraph_mcp_stdio_stream.py +50 -0
  193. aip_agents/examples/hello_world_langgraph_mcp_stdio_stream.pyi +5 -0
  194. aip_agents/examples/hello_world_langgraph_stream.py +43 -0
  195. aip_agents/examples/hello_world_langgraph_stream.pyi +5 -0
  196. aip_agents/examples/hello_world_langgraph_stream_lm_invoker.py +37 -0
  197. aip_agents/examples/hello_world_langgraph_stream_lm_invoker.pyi +5 -0
  198. aip_agents/examples/hello_world_model_switch_cli.py +210 -0
  199. aip_agents/examples/hello_world_model_switch_cli.pyi +30 -0
  200. aip_agents/examples/hello_world_multi_agent_adk.py +75 -0
  201. aip_agents/examples/hello_world_multi_agent_adk.pyi +6 -0
  202. aip_agents/examples/hello_world_multi_agent_langchain.py +54 -0
  203. aip_agents/examples/hello_world_multi_agent_langchain.pyi +5 -0
  204. aip_agents/examples/hello_world_multi_agent_langgraph.py +66 -0
  205. aip_agents/examples/hello_world_multi_agent_langgraph.pyi +5 -0
  206. aip_agents/examples/hello_world_multi_agent_langgraph_lm_invoker.py +69 -0
  207. aip_agents/examples/hello_world_multi_agent_langgraph_lm_invoker.pyi +5 -0
  208. aip_agents/examples/hello_world_pii_logger.py +21 -0
  209. aip_agents/examples/hello_world_pii_logger.pyi +5 -0
  210. aip_agents/examples/hello_world_ptc.py +49 -0
  211. aip_agents/examples/hello_world_ptc.pyi +5 -0
  212. aip_agents/examples/hello_world_sentry.py +133 -0
  213. aip_agents/examples/hello_world_sentry.pyi +21 -0
  214. aip_agents/examples/hello_world_step_limits.py +273 -0
  215. aip_agents/examples/hello_world_step_limits.pyi +17 -0
  216. aip_agents/examples/hello_world_stock_a2a_server.py +103 -0
  217. aip_agents/examples/hello_world_stock_a2a_server.pyi +17 -0
  218. aip_agents/examples/hello_world_tool_output_client.py +55 -0
  219. aip_agents/examples/hello_world_tool_output_client.pyi +5 -0
  220. aip_agents/examples/hello_world_tool_output_server.py +114 -0
  221. aip_agents/examples/hello_world_tool_output_server.pyi +19 -0
  222. aip_agents/examples/hitl_demo.py +724 -0
  223. aip_agents/examples/hitl_demo.pyi +67 -0
  224. aip_agents/examples/mcp_configs/configs.py +63 -0
  225. aip_agents/examples/mcp_servers/common.py +76 -0
  226. aip_agents/examples/mcp_servers/mcp_name.py +29 -0
  227. aip_agents/examples/mcp_servers/mcp_server_http.py +19 -0
  228. aip_agents/examples/mcp_servers/mcp_server_sse.py +19 -0
  229. aip_agents/examples/mcp_servers/mcp_server_stdio.py +19 -0
  230. aip_agents/examples/mcp_servers/mcp_time.py +10 -0
  231. aip_agents/examples/pii_demo_langgraph_client.py +69 -0
  232. aip_agents/examples/pii_demo_langgraph_client.pyi +5 -0
  233. aip_agents/examples/pii_demo_langgraph_server.py +126 -0
  234. aip_agents/examples/pii_demo_langgraph_server.pyi +20 -0
  235. aip_agents/examples/pii_demo_multi_agent_client.py +80 -0
  236. aip_agents/examples/pii_demo_multi_agent_client.pyi +5 -0
  237. aip_agents/examples/pii_demo_multi_agent_server.py +247 -0
  238. aip_agents/examples/pii_demo_multi_agent_server.pyi +40 -0
  239. aip_agents/examples/todolist_planning_a2a_langchain_client.py +70 -0
  240. aip_agents/examples/todolist_planning_a2a_langchain_client.pyi +5 -0
  241. aip_agents/examples/todolist_planning_a2a_langgraph_server.py +88 -0
  242. aip_agents/examples/todolist_planning_a2a_langgraph_server.pyi +19 -0
  243. aip_agents/examples/tools/__init__.py +27 -0
  244. aip_agents/examples/tools/__init__.pyi +9 -0
  245. aip_agents/examples/tools/adk_arithmetic_tools.py +36 -0
  246. aip_agents/examples/tools/adk_arithmetic_tools.pyi +24 -0
  247. aip_agents/examples/tools/adk_weather_tool.py +60 -0
  248. aip_agents/examples/tools/adk_weather_tool.pyi +18 -0
  249. aip_agents/examples/tools/data_generator_tool.py +103 -0
  250. aip_agents/examples/tools/data_generator_tool.pyi +15 -0
  251. aip_agents/examples/tools/data_visualization_tool.py +312 -0
  252. aip_agents/examples/tools/data_visualization_tool.pyi +19 -0
  253. aip_agents/examples/tools/image_artifact_tool.py +136 -0
  254. aip_agents/examples/tools/image_artifact_tool.pyi +26 -0
  255. aip_agents/examples/tools/langchain_arithmetic_tools.py +26 -0
  256. aip_agents/examples/tools/langchain_arithmetic_tools.pyi +17 -0
  257. aip_agents/examples/tools/langchain_currency_exchange_tool.py +88 -0
  258. aip_agents/examples/tools/langchain_currency_exchange_tool.pyi +20 -0
  259. aip_agents/examples/tools/langchain_graph_artifact_tool.py +172 -0
  260. aip_agents/examples/tools/langchain_graph_artifact_tool.pyi +25 -0
  261. aip_agents/examples/tools/langchain_weather_tool.py +48 -0
  262. aip_agents/examples/tools/langchain_weather_tool.pyi +19 -0
  263. aip_agents/examples/tools/langgraph_streaming_tool.py +130 -0
  264. aip_agents/examples/tools/langgraph_streaming_tool.pyi +43 -0
  265. aip_agents/examples/tools/mock_retrieval_tool.py +56 -0
  266. aip_agents/examples/tools/mock_retrieval_tool.pyi +13 -0
  267. aip_agents/examples/tools/pii_demo_tools.py +189 -0
  268. aip_agents/examples/tools/pii_demo_tools.pyi +54 -0
  269. aip_agents/examples/tools/random_chart_tool.py +142 -0
  270. aip_agents/examples/tools/random_chart_tool.pyi +20 -0
  271. aip_agents/examples/tools/serper_tool.py +202 -0
  272. aip_agents/examples/tools/serper_tool.pyi +16 -0
  273. aip_agents/examples/tools/stock_tools.py +82 -0
  274. aip_agents/examples/tools/stock_tools.pyi +36 -0
  275. aip_agents/examples/tools/table_generator_tool.py +167 -0
  276. aip_agents/examples/tools/table_generator_tool.pyi +22 -0
  277. aip_agents/examples/tools/time_tool.py +82 -0
  278. aip_agents/examples/tools/time_tool.pyi +15 -0
  279. aip_agents/examples/tools/weather_forecast_tool.py +38 -0
  280. aip_agents/examples/tools/weather_forecast_tool.pyi +14 -0
  281. aip_agents/executor/agent_executor.py +473 -0
  282. aip_agents/executor/base.py +48 -0
  283. aip_agents/guardrails/__init__.py +83 -0
  284. aip_agents/guardrails/__init__.pyi +6 -0
  285. aip_agents/guardrails/engines/__init__.py +69 -0
  286. aip_agents/guardrails/engines/__init__.pyi +4 -0
  287. aip_agents/guardrails/engines/base.py +90 -0
  288. aip_agents/guardrails/engines/base.pyi +61 -0
  289. aip_agents/guardrails/engines/nemo.py +101 -0
  290. aip_agents/guardrails/engines/nemo.pyi +46 -0
  291. aip_agents/guardrails/engines/phrase_matcher.py +113 -0
  292. aip_agents/guardrails/engines/phrase_matcher.pyi +48 -0
  293. aip_agents/guardrails/exceptions.py +39 -0
  294. aip_agents/guardrails/exceptions.pyi +23 -0
  295. aip_agents/guardrails/manager.py +163 -0
  296. aip_agents/guardrails/manager.pyi +42 -0
  297. aip_agents/guardrails/middleware.py +199 -0
  298. aip_agents/guardrails/middleware.pyi +87 -0
  299. aip_agents/guardrails/schemas.py +63 -0
  300. aip_agents/guardrails/schemas.pyi +43 -0
  301. aip_agents/guardrails/utils.py +45 -0
  302. aip_agents/guardrails/utils.pyi +19 -0
  303. aip_agents/mcp/__init__.py +1 -0
  304. aip_agents/mcp/__init__.pyi +0 -0
  305. aip_agents/mcp/client/__init__.py +14 -0
  306. aip_agents/mcp/client/__init__.pyi +5 -0
  307. aip_agents/mcp/client/base_mcp_client.py +369 -0
  308. aip_agents/mcp/client/base_mcp_client.pyi +148 -0
  309. aip_agents/mcp/client/connection_manager.py +228 -0
  310. aip_agents/mcp/client/connection_manager.pyi +51 -0
  311. aip_agents/mcp/client/google_adk/__init__.py +11 -0
  312. aip_agents/mcp/client/google_adk/__init__.pyi +3 -0
  313. aip_agents/mcp/client/google_adk/client.py +381 -0
  314. aip_agents/mcp/client/google_adk/client.pyi +75 -0
  315. aip_agents/mcp/client/langchain/__init__.py +11 -0
  316. aip_agents/mcp/client/langchain/__init__.pyi +3 -0
  317. aip_agents/mcp/client/langchain/client.py +265 -0
  318. aip_agents/mcp/client/langchain/client.pyi +48 -0
  319. aip_agents/mcp/client/persistent_session.py +612 -0
  320. aip_agents/mcp/client/persistent_session.pyi +122 -0
  321. aip_agents/mcp/client/session_pool.py +351 -0
  322. aip_agents/mcp/client/session_pool.pyi +101 -0
  323. aip_agents/mcp/client/transports.py +263 -0
  324. aip_agents/mcp/client/transports.pyi +132 -0
  325. aip_agents/mcp/utils/__init__.py +7 -0
  326. aip_agents/mcp/utils/__init__.pyi +0 -0
  327. aip_agents/mcp/utils/config_validator.py +139 -0
  328. aip_agents/mcp/utils/config_validator.pyi +82 -0
  329. aip_agents/memory/__init__.py +14 -0
  330. aip_agents/memory/__init__.pyi +5 -0
  331. aip_agents/memory/adapters/__init__.py +10 -0
  332. aip_agents/memory/adapters/__init__.pyi +4 -0
  333. aip_agents/memory/adapters/base_adapter.py +811 -0
  334. aip_agents/memory/adapters/base_adapter.pyi +176 -0
  335. aip_agents/memory/adapters/mem0.py +84 -0
  336. aip_agents/memory/adapters/mem0.pyi +22 -0
  337. aip_agents/memory/base.py +84 -0
  338. aip_agents/memory/base.pyi +60 -0
  339. aip_agents/memory/constants.py +49 -0
  340. aip_agents/memory/constants.pyi +25 -0
  341. aip_agents/memory/factory.py +86 -0
  342. aip_agents/memory/factory.pyi +24 -0
  343. aip_agents/memory/guidance.py +20 -0
  344. aip_agents/memory/guidance.pyi +3 -0
  345. aip_agents/memory/simple_memory.py +47 -0
  346. aip_agents/memory/simple_memory.pyi +23 -0
  347. aip_agents/middleware/__init__.py +17 -0
  348. aip_agents/middleware/__init__.pyi +5 -0
  349. aip_agents/middleware/base.py +96 -0
  350. aip_agents/middleware/base.pyi +75 -0
  351. aip_agents/middleware/manager.py +150 -0
  352. aip_agents/middleware/manager.pyi +84 -0
  353. aip_agents/middleware/todolist.py +274 -0
  354. aip_agents/middleware/todolist.pyi +125 -0
  355. aip_agents/ptc/__init__.py +48 -0
  356. aip_agents/ptc/__init__.pyi +10 -0
  357. aip_agents/ptc/doc_gen.py +122 -0
  358. aip_agents/ptc/doc_gen.pyi +40 -0
  359. aip_agents/ptc/exceptions.py +39 -0
  360. aip_agents/ptc/exceptions.pyi +22 -0
  361. aip_agents/ptc/executor.py +143 -0
  362. aip_agents/ptc/executor.pyi +73 -0
  363. aip_agents/ptc/mcp/__init__.py +45 -0
  364. aip_agents/ptc/mcp/__init__.pyi +7 -0
  365. aip_agents/ptc/mcp/sandbox_bridge.py +668 -0
  366. aip_agents/ptc/mcp/sandbox_bridge.pyi +47 -0
  367. aip_agents/ptc/mcp/templates/__init__.py +1 -0
  368. aip_agents/ptc/mcp/templates/__init__.pyi +0 -0
  369. aip_agents/ptc/mcp/templates/mcp_client.py.template +239 -0
  370. aip_agents/ptc/naming.py +184 -0
  371. aip_agents/ptc/naming.pyi +76 -0
  372. aip_agents/ptc/payload.py +26 -0
  373. aip_agents/ptc/payload.pyi +15 -0
  374. aip_agents/ptc/prompt_builder.py +571 -0
  375. aip_agents/ptc/prompt_builder.pyi +55 -0
  376. aip_agents/ptc/ptc_helper.py +16 -0
  377. aip_agents/ptc/ptc_helper.pyi +1 -0
  378. aip_agents/ptc/sandbox_bridge.py +58 -0
  379. aip_agents/ptc/sandbox_bridge.pyi +25 -0
  380. aip_agents/ptc/template_utils.py +33 -0
  381. aip_agents/ptc/template_utils.pyi +13 -0
  382. aip_agents/ptc/templates/__init__.py +1 -0
  383. aip_agents/ptc/templates/__init__.pyi +0 -0
  384. aip_agents/ptc/templates/ptc_helper.py.template +134 -0
  385. aip_agents/sandbox/__init__.py +43 -0
  386. aip_agents/sandbox/__init__.pyi +5 -0
  387. aip_agents/sandbox/defaults.py +9 -0
  388. aip_agents/sandbox/defaults.pyi +2 -0
  389. aip_agents/sandbox/e2b_runtime.py +267 -0
  390. aip_agents/sandbox/e2b_runtime.pyi +51 -0
  391. aip_agents/sandbox/template_builder.py +131 -0
  392. aip_agents/sandbox/template_builder.pyi +36 -0
  393. aip_agents/sandbox/types.py +24 -0
  394. aip_agents/sandbox/types.pyi +14 -0
  395. aip_agents/sandbox/validation.py +50 -0
  396. aip_agents/sandbox/validation.pyi +20 -0
  397. aip_agents/schema/__init__.py +69 -0
  398. aip_agents/schema/__init__.pyi +9 -0
  399. aip_agents/schema/a2a.py +56 -0
  400. aip_agents/schema/a2a.pyi +40 -0
  401. aip_agents/schema/agent.py +111 -0
  402. aip_agents/schema/agent.pyi +65 -0
  403. aip_agents/schema/hitl.py +157 -0
  404. aip_agents/schema/hitl.pyi +89 -0
  405. aip_agents/schema/langgraph.py +37 -0
  406. aip_agents/schema/langgraph.pyi +28 -0
  407. aip_agents/schema/model_id.py +97 -0
  408. aip_agents/schema/model_id.pyi +54 -0
  409. aip_agents/schema/step_limit.py +108 -0
  410. aip_agents/schema/step_limit.pyi +63 -0
  411. aip_agents/schema/storage.py +40 -0
  412. aip_agents/schema/storage.pyi +21 -0
  413. aip_agents/sentry/__init__.py +11 -0
  414. aip_agents/sentry/__init__.pyi +3 -0
  415. aip_agents/sentry/sentry.py +151 -0
  416. aip_agents/sentry/sentry.pyi +48 -0
  417. aip_agents/storage/__init__.py +41 -0
  418. aip_agents/storage/__init__.pyi +8 -0
  419. aip_agents/storage/base.py +85 -0
  420. aip_agents/storage/base.pyi +58 -0
  421. aip_agents/storage/clients/__init__.py +12 -0
  422. aip_agents/storage/clients/__init__.pyi +3 -0
  423. aip_agents/storage/clients/minio_client.py +318 -0
  424. aip_agents/storage/clients/minio_client.pyi +137 -0
  425. aip_agents/storage/config.py +62 -0
  426. aip_agents/storage/config.pyi +29 -0
  427. aip_agents/storage/providers/__init__.py +15 -0
  428. aip_agents/storage/providers/__init__.pyi +5 -0
  429. aip_agents/storage/providers/base.py +106 -0
  430. aip_agents/storage/providers/base.pyi +88 -0
  431. aip_agents/storage/providers/memory.py +114 -0
  432. aip_agents/storage/providers/memory.pyi +79 -0
  433. aip_agents/storage/providers/object_storage.py +214 -0
  434. aip_agents/storage/providers/object_storage.pyi +98 -0
  435. aip_agents/tools/__init__.py +64 -0
  436. aip_agents/tools/__init__.pyi +11 -0
  437. aip_agents/tools/browser_use/__init__.py +82 -0
  438. aip_agents/tools/browser_use/__init__.pyi +14 -0
  439. aip_agents/tools/browser_use/action_parser.py +103 -0
  440. aip_agents/tools/browser_use/action_parser.pyi +18 -0
  441. aip_agents/tools/browser_use/browser_use_tool.py +1120 -0
  442. aip_agents/tools/browser_use/browser_use_tool.pyi +50 -0
  443. aip_agents/tools/browser_use/llm_config.py +120 -0
  444. aip_agents/tools/browser_use/llm_config.pyi +52 -0
  445. aip_agents/tools/browser_use/minio_storage.py +198 -0
  446. aip_agents/tools/browser_use/minio_storage.pyi +109 -0
  447. aip_agents/tools/browser_use/schemas.py +119 -0
  448. aip_agents/tools/browser_use/schemas.pyi +32 -0
  449. aip_agents/tools/browser_use/session.py +76 -0
  450. aip_agents/tools/browser_use/session.pyi +4 -0
  451. aip_agents/tools/browser_use/session_errors.py +132 -0
  452. aip_agents/tools/browser_use/session_errors.pyi +53 -0
  453. aip_agents/tools/browser_use/steel_session_recording.py +317 -0
  454. aip_agents/tools/browser_use/steel_session_recording.pyi +63 -0
  455. aip_agents/tools/browser_use/streaming.py +815 -0
  456. aip_agents/tools/browser_use/streaming.pyi +81 -0
  457. aip_agents/tools/browser_use/structured_data_parser.py +257 -0
  458. aip_agents/tools/browser_use/structured_data_parser.pyi +86 -0
  459. aip_agents/tools/browser_use/structured_data_recovery.py +204 -0
  460. aip_agents/tools/browser_use/structured_data_recovery.pyi +43 -0
  461. aip_agents/tools/browser_use/types.py +78 -0
  462. aip_agents/tools/browser_use/types.pyi +45 -0
  463. aip_agents/tools/code_sandbox/__init__.py +26 -0
  464. aip_agents/tools/code_sandbox/__init__.pyi +3 -0
  465. aip_agents/tools/code_sandbox/constant.py +13 -0
  466. aip_agents/tools/code_sandbox/constant.pyi +4 -0
  467. aip_agents/tools/code_sandbox/e2b_cloud_sandbox_extended.py +306 -0
  468. aip_agents/tools/code_sandbox/e2b_cloud_sandbox_extended.pyi +102 -0
  469. aip_agents/tools/code_sandbox/e2b_sandbox_tool.py +411 -0
  470. aip_agents/tools/code_sandbox/e2b_sandbox_tool.pyi +29 -0
  471. aip_agents/tools/constants.py +177 -0
  472. aip_agents/tools/constants.pyi +138 -0
  473. aip_agents/tools/date_range_tool.py +554 -0
  474. aip_agents/tools/date_range_tool.pyi +21 -0
  475. aip_agents/tools/document_loader/__init__.py +44 -0
  476. aip_agents/tools/document_loader/__init__.pyi +7 -0
  477. aip_agents/tools/document_loader/base_reader.py +302 -0
  478. aip_agents/tools/document_loader/base_reader.pyi +75 -0
  479. aip_agents/tools/document_loader/docx_reader_tool.py +68 -0
  480. aip_agents/tools/document_loader/docx_reader_tool.pyi +10 -0
  481. aip_agents/tools/document_loader/excel_reader_tool.py +171 -0
  482. aip_agents/tools/document_loader/excel_reader_tool.pyi +26 -0
  483. aip_agents/tools/document_loader/pdf_reader_tool.py +79 -0
  484. aip_agents/tools/document_loader/pdf_reader_tool.pyi +11 -0
  485. aip_agents/tools/document_loader/pdf_splitter.py +169 -0
  486. aip_agents/tools/document_loader/pdf_splitter.pyi +18 -0
  487. aip_agents/tools/execute_ptc_code.py +308 -0
  488. aip_agents/tools/execute_ptc_code.pyi +90 -0
  489. aip_agents/tools/gl_connector/__init__.py +5 -0
  490. aip_agents/tools/gl_connector/__init__.pyi +3 -0
  491. aip_agents/tools/gl_connector/tool.py +383 -0
  492. aip_agents/tools/gl_connector/tool.pyi +74 -0
  493. aip_agents/tools/gl_connector_tools.py +119 -0
  494. aip_agents/tools/gl_connector_tools.pyi +39 -0
  495. aip_agents/tools/memory_search/__init__.py +29 -0
  496. aip_agents/tools/memory_search/__init__.pyi +5 -0
  497. aip_agents/tools/memory_search/base.py +200 -0
  498. aip_agents/tools/memory_search/base.pyi +69 -0
  499. aip_agents/tools/memory_search/mem0.py +365 -0
  500. aip_agents/tools/memory_search/mem0.pyi +29 -0
  501. aip_agents/tools/memory_search/schema.py +81 -0
  502. aip_agents/tools/memory_search/schema.pyi +25 -0
  503. aip_agents/tools/memory_search_tool.py +34 -0
  504. aip_agents/tools/memory_search_tool.pyi +3 -0
  505. aip_agents/tools/time_tool.py +117 -0
  506. aip_agents/tools/time_tool.pyi +16 -0
  507. aip_agents/tools/tool_config_injector.py +300 -0
  508. aip_agents/tools/tool_config_injector.pyi +26 -0
  509. aip_agents/tools/web_search/__init__.py +15 -0
  510. aip_agents/tools/web_search/__init__.pyi +3 -0
  511. aip_agents/tools/web_search/serper_tool.py +187 -0
  512. aip_agents/tools/web_search/serper_tool.pyi +19 -0
  513. aip_agents/types/__init__.py +70 -0
  514. aip_agents/types/__init__.pyi +36 -0
  515. aip_agents/types/a2a_events.py +13 -0
  516. aip_agents/types/a2a_events.pyi +3 -0
  517. aip_agents/utils/__init__.py +79 -0
  518. aip_agents/utils/__init__.pyi +11 -0
  519. aip_agents/utils/a2a_connector.py +1757 -0
  520. aip_agents/utils/a2a_connector.pyi +146 -0
  521. aip_agents/utils/artifact_helpers.py +502 -0
  522. aip_agents/utils/artifact_helpers.pyi +203 -0
  523. aip_agents/utils/constants.py +22 -0
  524. aip_agents/utils/constants.pyi +10 -0
  525. aip_agents/utils/datetime/__init__.py +34 -0
  526. aip_agents/utils/datetime/__init__.pyi +4 -0
  527. aip_agents/utils/datetime/normalization.py +231 -0
  528. aip_agents/utils/datetime/normalization.pyi +95 -0
  529. aip_agents/utils/datetime/timezone.py +206 -0
  530. aip_agents/utils/datetime/timezone.pyi +48 -0
  531. aip_agents/utils/env_loader.py +27 -0
  532. aip_agents/utils/env_loader.pyi +10 -0
  533. aip_agents/utils/event_handler_registry.py +58 -0
  534. aip_agents/utils/event_handler_registry.pyi +23 -0
  535. aip_agents/utils/file_prompt_utils.py +176 -0
  536. aip_agents/utils/file_prompt_utils.pyi +21 -0
  537. aip_agents/utils/final_response_builder.py +211 -0
  538. aip_agents/utils/final_response_builder.pyi +34 -0
  539. aip_agents/utils/formatter_llm_client.py +231 -0
  540. aip_agents/utils/formatter_llm_client.pyi +71 -0
  541. aip_agents/utils/langgraph/__init__.py +19 -0
  542. aip_agents/utils/langgraph/__init__.pyi +3 -0
  543. aip_agents/utils/langgraph/converter.py +128 -0
  544. aip_agents/utils/langgraph/converter.pyi +49 -0
  545. aip_agents/utils/langgraph/tool_managers/__init__.py +15 -0
  546. aip_agents/utils/langgraph/tool_managers/__init__.pyi +5 -0
  547. aip_agents/utils/langgraph/tool_managers/a2a_tool_manager.py +99 -0
  548. aip_agents/utils/langgraph/tool_managers/a2a_tool_manager.pyi +35 -0
  549. aip_agents/utils/langgraph/tool_managers/base_tool_manager.py +66 -0
  550. aip_agents/utils/langgraph/tool_managers/base_tool_manager.pyi +48 -0
  551. aip_agents/utils/langgraph/tool_managers/delegation_tool_manager.py +1096 -0
  552. aip_agents/utils/langgraph/tool_managers/delegation_tool_manager.pyi +56 -0
  553. aip_agents/utils/langgraph/tool_output_management.py +1047 -0
  554. aip_agents/utils/langgraph/tool_output_management.pyi +329 -0
  555. aip_agents/utils/logger.py +195 -0
  556. aip_agents/utils/logger.pyi +60 -0
  557. aip_agents/utils/metadata/__init__.py +27 -0
  558. aip_agents/utils/metadata/__init__.pyi +5 -0
  559. aip_agents/utils/metadata/activity_metadata_helper.py +407 -0
  560. aip_agents/utils/metadata/activity_metadata_helper.pyi +25 -0
  561. aip_agents/utils/metadata/activity_narrative/__init__.py +35 -0
  562. aip_agents/utils/metadata/activity_narrative/__init__.pyi +7 -0
  563. aip_agents/utils/metadata/activity_narrative/builder.py +817 -0
  564. aip_agents/utils/metadata/activity_narrative/builder.pyi +35 -0
  565. aip_agents/utils/metadata/activity_narrative/constants.py +51 -0
  566. aip_agents/utils/metadata/activity_narrative/constants.pyi +10 -0
  567. aip_agents/utils/metadata/activity_narrative/context.py +49 -0
  568. aip_agents/utils/metadata/activity_narrative/context.pyi +32 -0
  569. aip_agents/utils/metadata/activity_narrative/formatters.py +230 -0
  570. aip_agents/utils/metadata/activity_narrative/formatters.pyi +48 -0
  571. aip_agents/utils/metadata/activity_narrative/utils.py +35 -0
  572. aip_agents/utils/metadata/activity_narrative/utils.pyi +12 -0
  573. aip_agents/utils/metadata/schemas/__init__.py +16 -0
  574. aip_agents/utils/metadata/schemas/__init__.pyi +4 -0
  575. aip_agents/utils/metadata/schemas/activity_schema.py +29 -0
  576. aip_agents/utils/metadata/schemas/activity_schema.pyi +18 -0
  577. aip_agents/utils/metadata/schemas/thinking_schema.py +31 -0
  578. aip_agents/utils/metadata/schemas/thinking_schema.pyi +20 -0
  579. aip_agents/utils/metadata/thinking_metadata_helper.py +38 -0
  580. aip_agents/utils/metadata/thinking_metadata_helper.pyi +4 -0
  581. aip_agents/utils/metadata_helper.py +358 -0
  582. aip_agents/utils/metadata_helper.pyi +117 -0
  583. aip_agents/utils/name_preprocessor/__init__.py +17 -0
  584. aip_agents/utils/name_preprocessor/__init__.pyi +6 -0
  585. aip_agents/utils/name_preprocessor/base_name_preprocessor.py +73 -0
  586. aip_agents/utils/name_preprocessor/base_name_preprocessor.pyi +52 -0
  587. aip_agents/utils/name_preprocessor/google_name_preprocessor.py +100 -0
  588. aip_agents/utils/name_preprocessor/google_name_preprocessor.pyi +38 -0
  589. aip_agents/utils/name_preprocessor/name_preprocessor.py +87 -0
  590. aip_agents/utils/name_preprocessor/name_preprocessor.pyi +41 -0
  591. aip_agents/utils/name_preprocessor/openai_name_preprocessor.py +48 -0
  592. aip_agents/utils/name_preprocessor/openai_name_preprocessor.pyi +34 -0
  593. aip_agents/utils/pii/__init__.py +25 -0
  594. aip_agents/utils/pii/__init__.pyi +5 -0
  595. aip_agents/utils/pii/pii_handler.py +397 -0
  596. aip_agents/utils/pii/pii_handler.pyi +96 -0
  597. aip_agents/utils/pii/pii_helper.py +207 -0
  598. aip_agents/utils/pii/pii_helper.pyi +78 -0
  599. aip_agents/utils/pii/uuid_deanonymizer_mapping.py +195 -0
  600. aip_agents/utils/pii/uuid_deanonymizer_mapping.pyi +73 -0
  601. aip_agents/utils/reference_helper.py +273 -0
  602. aip_agents/utils/reference_helper.pyi +81 -0
  603. aip_agents/utils/sse_chunk_transformer.py +831 -0
  604. aip_agents/utils/sse_chunk_transformer.pyi +166 -0
  605. aip_agents/utils/step_limit_manager.py +265 -0
  606. aip_agents/utils/step_limit_manager.pyi +112 -0
  607. aip_agents/utils/token_usage_helper.py +156 -0
  608. aip_agents/utils/token_usage_helper.pyi +60 -0
  609. aip_agents_binary-0.6.4.dist-info/METADATA +673 -0
  610. aip_agents_binary-0.6.4.dist-info/RECORD +612 -0
  611. aip_agents_binary-0.6.4.dist-info/WHEEL +5 -0
  612. aip_agents_binary-0.6.4.dist-info/top_level.txt +1 -0
@@ -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,5 @@
1
+ from aip_agents.agent import LangGraphAgent as LangGraphAgent
2
+ from aip_agents.schema.agent import A2AClientConfig as A2AClientConfig
3
+
4
+ async def main() -> None:
5
+ """Main function demonstrating the General Assistant agent with A2A capabilities."""
@@ -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,5 @@
1
+ from aip_agents.agent import LangGraphAgent as LangGraphAgent
2
+ from aip_agents.schema.agent import A2AClientConfig as A2AClientConfig
3
+
4
+ async def main() -> None:
5
+ """Main function demonstrating the General Assistant agent with streaming A2A capabilities."""
@@ -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
+ """
@@ -0,0 +1,54 @@
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 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 json
15
+
16
+ from langchain_openai import ChatOpenAI
17
+
18
+ from aip_agents.agent import LangGraphAgent
19
+ from aip_agents.schema.agent import A2AClientConfig
20
+ from aip_agents.utils.logger import get_logger
21
+
22
+ logger = get_logger(__name__)
23
+
24
+
25
+ def main():
26
+ """Main function demonstrating the General Assistant agent with A2A capabilities."""
27
+ # Init Assistant Agent
28
+ llm = ChatOpenAI(model="gpt-4.1")
29
+
30
+ # Create and return the LangGraphAgent
31
+ assistant_agent = LangGraphAgent(
32
+ name="AssistantAgent",
33
+ instruction="""You are a helpful assistant that can help with various tasks
34
+ by delegating to specialized agents.""",
35
+ model=llm,
36
+ tools=[],
37
+ )
38
+
39
+ # Discover agents
40
+ client_a2a_config = A2AClientConfig(
41
+ discovery_urls=["http://localhost:8001"],
42
+ )
43
+ agent_cards = assistant_agent.discover_agents(client_a2a_config)
44
+
45
+ query = "What is the weather in Jakarta?"
46
+ logger.info(f"Processing Query: {query}")
47
+
48
+ response = assistant_agent.send_to_agent(agent_cards[0], query)
49
+ logger.info(f"Raw response: \n\n{json.dumps(response, indent=4)}")
50
+ logger.info(f"Agent Response: {response['content']}")
51
+
52
+
53
+ if __name__ == "__main__":
54
+ main()
@@ -0,0 +1,9 @@
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."""
@@ -0,0 +1,54 @@
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 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
+ from langchain_openai import ChatOpenAI
15
+
16
+ from aip_agents.agent import LangGraphAgent
17
+ from aip_agents.schema.agent import A2AClientConfig
18
+ from aip_agents.utils.logger import get_logger
19
+
20
+ logger = get_logger(__name__)
21
+
22
+
23
+ def main():
24
+ """Main function demonstrating the General Assistant agent with A2A capabilities."""
25
+ # Create the LLM
26
+ llm = ChatOpenAI(model="gpt-4.1")
27
+
28
+ # Create and return the LangGraphAgent
29
+ assistant_agent = LangGraphAgent(
30
+ name="AssistantAgent",
31
+ instruction="""You are a helpful assistant that can help with various tasks
32
+ by delegating to specialized agents.""",
33
+ model=llm,
34
+ tools=[],
35
+ )
36
+
37
+ # Discover agents
38
+ client_a2a_config = A2AClientConfig(
39
+ discovery_urls=["http://localhost:8001"],
40
+ )
41
+ agent_cards = assistant_agent.discover_agents(client_a2a_config)
42
+
43
+ # Register agents
44
+ assistant_agent.register_a2a_agents(agent_cards)
45
+
46
+ query = "What is the weather in Jakarta?"
47
+ logger.info(f"Processing Query: {query}")
48
+
49
+ response = assistant_agent.run(query)
50
+ logger.info(f"Assistant Agent Response: {response['output']}")
51
+
52
+
53
+ if __name__ == "__main__":
54
+ main()
@@ -0,0 +1,9 @@
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."""
@@ -0,0 +1,32 @@
1
+ """Example of a General Assistant LangChainAgent 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 responses and providing relevant advice.
8
+
9
+ Authors:
10
+ Putu Ravindra Wiguna (putu.r.wiguna@gdplabs.id)
11
+ Christian Trisno Sen Long Chen (christian.t.s.l.chen@gdplabs.id)
12
+ """
13
+
14
+ from aip_agents.agent import LangChainAgent
15
+ from aip_agents.schema.agent import A2AClientConfig
16
+
17
+ if __name__ == "__main__":
18
+ assistant_agent = LangChainAgent(
19
+ name="AssistantAgentLangChain",
20
+ instruction="""You are a helpful assistant that can help with various tasks
21
+ by delegating to specialized agents.""",
22
+ model="openai/gpt-4.1",
23
+ )
24
+
25
+ client_a2a_config = A2AClientConfig(
26
+ discovery_urls=["http://localhost:8001"],
27
+ )
28
+ agent_cards = assistant_agent.discover_agents(client_a2a_config)
29
+ assistant_agent.register_a2a_agents(agent_cards)
30
+
31
+ response = assistant_agent.run("What is the weather in Jakarta?")
32
+ print(response["output"])
@@ -0,0 +1,2 @@
1
+ from aip_agents.agent import LangChainAgent as LangChainAgent
2
+ from aip_agents.schema.agent import A2AClientConfig as A2AClientConfig
@@ -0,0 +1,50 @@
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
+
16
+ from langchain_openai import ChatOpenAI
17
+
18
+ from aip_agents.agent import LangGraphAgent
19
+ from aip_agents.schema.agent import A2AClientConfig
20
+ from aip_agents.utils.logger import get_logger
21
+
22
+ logger = get_logger(__name__)
23
+
24
+
25
+ async def main():
26
+ """Main function demonstrating the General Assistant agent with streaming A2A capabilities."""
27
+ llm = ChatOpenAI(model="gpt-4.1", streaming=True)
28
+ assistant_agent = LangGraphAgent(
29
+ name="AssistantAgent",
30
+ instruction="""You are a helpful assistant that can help with various tasks
31
+ by delegating to specialized agents.""",
32
+ model=llm,
33
+ tools=[],
34
+ )
35
+
36
+ # Discover agents
37
+ client_a2a_config = A2AClientConfig(
38
+ discovery_urls=["http://localhost:8001"],
39
+ )
40
+ agent_cards = assistant_agent.discover_agents(client_a2a_config)
41
+
42
+ query = "What is the weather in Jakarta?"
43
+ logger.info(f"Processing Query: {query}")
44
+
45
+ async for chunk in assistant_agent.astream_to_agent(agent_card=agent_cards[0], message=query):
46
+ print(chunk.get("content", ""))
47
+
48
+
49
+ if __name__ == "__main__":
50
+ asyncio.run(main())
@@ -0,0 +1,9 @@
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."""
@@ -0,0 +1,44 @@
1
+ """Example of a General Assistant LangChainAgent 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
+ Putu Ravindra Wiguna (putu.r.wiguna@gdplabs.id)
11
+ Christian Trisno Sen Long Chen (christian.t.s.l.chen@gdplabs.id)
12
+ """
13
+
14
+ import asyncio
15
+ from pprint import pprint
16
+
17
+ from aip_agents.agent import LangChainAgent
18
+ from aip_agents.schema.agent import A2AClientConfig
19
+
20
+
21
+ async def main():
22
+ """Main function demonstrating the General Assistant agent with streaming A2A capabilities."""
23
+ agent = LangChainAgent(
24
+ name="AssistantAgentLangChain",
25
+ instruction="""You are a helpful assistant that can help with various tasks
26
+ by delegating to specialized agents.""",
27
+ model="openai/gpt-4.1",
28
+ )
29
+
30
+ # Discover agents
31
+ client_a2a_config = A2AClientConfig(
32
+ discovery_urls=["http://localhost:8001"],
33
+ )
34
+ agent_cards = agent.discover_agents(client_a2a_config)
35
+
36
+ async for chunk in agent.astream_to_agent(
37
+ agent_card=agent_cards[0], message="What is the weather in Jakarta and London?"
38
+ ):
39
+ pprint(chunk)
40
+ print("-" * 50)
41
+
42
+
43
+ if __name__ == "__main__":
44
+ asyncio.run(main())
@@ -0,0 +1,5 @@
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 capabilities."""
@@ -0,0 +1,92 @@
1
+ """Example of a General Assistant LangChainAgent that delegates time and weather tasks to specialized agents.
2
+
3
+ This example demonstrates:
4
+ 1. Configuring A2A settings for a client agent to connect to time/weather services.
5
+ 2. Creating a general assistant agent that can help with time and weather queries.
6
+ 3. Delegating specific time and weather tasks to specialized agents via A2A with streaming.
7
+ 4. Handling streaming responses from time and weather tasks.
8
+ 5. Real-time display of time and weather information and agent thinking process.
9
+
10
+ The client requests the time/weather agent to get current time and weather forecast,
11
+ demonstrating streaming capabilities of the LangGraph agent wrapper.
12
+
13
+ To run this example:
14
+ 1. First start the time/weather agent server:
15
+ python examples/hello_world_a2a_langgraph_server_tool_streaming.py --port 8003
16
+ 2. Then run this client:
17
+ python examples/hello_world_a2a_langgraph_client_streaming_tool_streaming.py
18
+
19
+ Environment Variables Required:
20
+ OPENAI_API_KEY: OpenAI API key for the LLM
21
+
22
+ Authors:
23
+ Fachriza Adhiatma (fachriza.d.adhiatma@gdplabs.id)
24
+ """
25
+
26
+ import asyncio
27
+ from pprint import pprint
28
+
29
+ from aip_agents.agent import LangChainAgent
30
+ from aip_agents.schema.agent import A2AClientConfig
31
+
32
+
33
+ async def main():
34
+ """Main function demonstrating the General Assistant agent with streaming A2A time/weather capabilities."""
35
+ print("šŸš€ Starting Time & Weather Agent Client Demo")
36
+ print("=" * 60)
37
+
38
+ # Create a general assistant agent
39
+ agent = LangChainAgent(
40
+ name="TimeWeatherAssistantAgentLangChain",
41
+ instruction="""You are a helpful assistant that can help with various tasks
42
+ by delegating to specialized agents. You have access to time and weather
43
+ agents that can provide current time information and weather data
44
+ for specific cities.
45
+
46
+ When users ask for time or weather-related tasks, delegate them to the
47
+ time/weather agent. Provide clear summaries of the results and help
48
+ interpret the information that's provided.""",
49
+ model="openai/gpt-4o",
50
+ )
51
+
52
+ # Configure A2A client to discover time/weather agents
53
+ client_a2a_config = A2AClientConfig(
54
+ discovery_urls=["http://localhost:8003"], # Time/weather agent server
55
+ )
56
+
57
+ print("šŸ” Discovering available time & weather agents...")
58
+ try:
59
+ agent_cards = agent.discover_agents(client_a2a_config)
60
+
61
+ if not agent_cards:
62
+ print("āŒ No time & weather agents found!")
63
+ print(" Make sure the agent server is running on http://localhost:8003")
64
+ return
65
+
66
+ print(f"āœ… Found {len(agent_cards)} time & weather agent(s)")
67
+
68
+ for i, card in enumerate(agent_cards):
69
+ print(f" {i + 1}. {card.name}: {card.description}")
70
+ if card.skills:
71
+ print(f" Skills: {', '.join([skill.name for skill in card.skills])}")
72
+
73
+ task = "what time is it and what is the weather in jakarta?"
74
+
75
+ print(f"šŸ“ Task: {task}")
76
+
77
+ async for chunk in agent.astream_to_agent(agent_card=agent_cards[0], message=task):
78
+ print("-" * 40)
79
+ pprint(chunk)
80
+
81
+ print("\n" + "=" * 60)
82
+ print("\nšŸŽ‰ Time & Weather agent task finished!")
83
+
84
+ except Exception as e:
85
+ print(f"āŒ Error during time & weather query: {str(e)}")
86
+ print(" Make sure:")
87
+ print(" 1. The time & weather server is running (python hello_world_a2a_langgraph_server_agent_wrapper.py)")
88
+ print(" 2. OPENAI_API_KEY is set in your environment")
89
+
90
+
91
+ if __name__ == "__main__":
92
+ asyncio.run(main())
@@ -0,0 +1,5 @@
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."""