

{"id":205463,"date":"2026-03-10T11:25:29","date_gmt":"2026-03-10T14:25:29","guid":{"rendered":"https:\/\/goias.gov.br\/ligo\/?p=205463"},"modified":"2026-03-10T11:25:30","modified_gmt":"2026-03-10T14:25:30","slug":"criando-um-agente-com-busca-na-web-e-ferramentas-customizadas-usando-o-google-adk","status":"publish","type":"post","link":"https:\/\/goias.gov.br\/ligo\/criando-um-agente-com-busca-na-web-e-ferramentas-customizadas-usando-o-google-adk\/","title":{"rendered":"Criando um Agente com Busca na Web e Ferramentas Customizadas usando o Google ADK"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1536\" height=\"1024\" src=\"https:\/\/goias.gov.br\/ligo\/wp-content\/uploads\/sites\/61\/2026\/03\/capa1.jpg\" alt=\"\" class=\"wp-image-205464\" srcset=\"https:\/\/goias.gov.br\/ligo\/wp-content\/uploads\/sites\/61\/2026\/03\/capa1.jpg 1536w, https:\/\/goias.gov.br\/ligo\/wp-content\/uploads\/sites\/61\/2026\/03\/capa1-300x200.jpg 300w, https:\/\/goias.gov.br\/ligo\/wp-content\/uploads\/sites\/61\/2026\/03\/capa1-1024x683.jpg 1024w, https:\/\/goias.gov.br\/ligo\/wp-content\/uploads\/sites\/61\/2026\/03\/capa1-768x512.jpg 768w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/><\/figure>\n<\/div>\n\n\n<p>Neste artigo vamos mostrar, de forma pr\u00e1tica, como criar um agente utilizando o <strong>Google ADK (Agent Development Kit)<\/strong> que:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>consulta informa\u00e7\u00f5es na internet usando <strong>Google Search<\/strong><\/li>\n\n\n\n<li>executa uma <strong>ferramenta customizada em Python<\/strong><\/li>\n\n\n\n<li>utiliza <strong>um agente como ferramenta de outro agente<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Ao final, teremos uma arquitetura simples e extens\u00edvel para construir assistentes inteligentes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">O que \u00e9 o Google ADK<\/h3>\n\n\n\n<p>O <strong>Google ADK<\/strong> \u00e9 um framework que facilita a cria\u00e7\u00e3o de <strong>agentes baseados em LLMs<\/strong> capazes de:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>usar ferramentas externas<\/li>\n\n\n\n<li>interagir com APIs<\/li>\n\n\n\n<li>delegar tarefas entre agentes<\/li>\n\n\n\n<li>executar fluxos complexos de racioc\u00ednio<\/li>\n<\/ul>\n\n\n\n<p>Em vez de apenas responder perguntas, um agente pode <strong>decidir qual ferramenta utilizar para resolver um problema<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Arquitetura do exemplo<\/h3>\n\n\n\n<p>Neste exemplo vamos criar dois agentes:<\/p>\n\n\n\n<p><strong>Agente de busca na web<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Respons\u00e1vel por consultar a internet<\/li>\n\n\n\n<li>Usa a ferramenta <code>google_search<\/code><\/li>\n<\/ul>\n\n\n\n<p><strong>Agente principal<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pode executar duas a\u00e7\u00f5es:\n<ul class=\"wp-block-list\">\n<li>obter a hora atual<\/li>\n\n\n\n<li>delegar pesquisas ao agente de busca<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>Isso demonstra um conceito poderoso: <strong>agentes podem ser usados como ferramentas de outros agentes<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Importando as bibliotecas<\/h3>\n\n\n\n<p>Primeiro importamos os componentes necess\u00e1rios:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#f6f6f4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>from google.adk.agents import Agent\nfrom google.adk.tools import google_search\nfrom google.adk.tools.agent_tool import AgentTool\nfrom datetime import datetime<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F286C4\">from<\/span><span style=\"color: #F6F6F4\"> google.adk.agents <\/span><span style=\"color: #F286C4\">import<\/span><span style=\"color: #F6F6F4\"> Agent<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">from<\/span><span style=\"color: #F6F6F4\"> google.adk.tools <\/span><span style=\"color: #F286C4\">import<\/span><span style=\"color: #F6F6F4\"> google_search<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">from<\/span><span style=\"color: #F6F6F4\"> google.adk.tools.agent_tool <\/span><span style=\"color: #F286C4\">import<\/span><span style=\"color: #F6F6F4\"> AgentTool<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">from<\/span><span style=\"color: #F6F6F4\"> datetime <\/span><span style=\"color: #F286C4\">import<\/span><span style=\"color: #F6F6F4\"> datetime<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Aqui utilizamos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Agent<\/strong> \u2192 classe principal para criar agentes<\/li>\n\n\n\n<li><strong>google_search<\/strong> \u2192 ferramenta nativa de busca na web<\/li>\n\n\n\n<li><strong>AgentTool<\/strong> \u2192 permite usar um agente como ferramenta<\/li>\n\n\n\n<li><strong>datetime<\/strong> \u2192 para criar uma ferramenta customizada<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Criando uma ferramenta customizada<\/h3>\n\n\n\n<p>Agora vamos criar uma fun\u00e7\u00e3o simples que retorna a hora atual.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#f6f6f4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>def get_horas():\n    # Retorna a hora atual no formato HH:MM:SS\n    horas = datetime.now().strftime(\"%H:%M:%S\")\n    return horas<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F286C4\">def<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">get_horas<\/span><span style=\"color: #F6F6F4\">():<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #7B7F8B\"># Retorna a hora atual no formato HH:MM:SS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    horas <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> datetime.now().strftime(<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">%H:%M:%S<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> horas<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Essa fun\u00e7\u00e3o ser\u00e1 automaticamente interpretada pelo ADK como uma <strong>tool que o agente pode utilizar<\/strong>.<\/p>\n\n\n\n<p>Apesar de simples, essa ideia \u00e9 poderosa:<br>Qualquer fun\u00e7\u00e3o Python pode virar uma ferramenta.<\/p>\n\n\n\n<p>Por exemplo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>consultar banco de dados<\/li>\n\n\n\n<li>chamar APIs<\/li>\n\n\n\n<li>executar automa\u00e7\u00f5es<\/li>\n\n\n\n<li>acessar sistemas internos<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Criando um agente de busca na web<\/h3>\n\n\n\n<p>Agora criamos um agente especializado em buscar informa\u00e7\u00f5es na internet.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#f6f6f4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>agente_busca_web = Agent(\n    model=\"gemini-2.5-flash\",\n    name='agente_busca_web',\n    description='Agente que busca a web',\n    instruction=\"\"\"Voc\u00ea \u00e9 o Assistente que consulta a internet usando a ferramenta google_search para o usu\u00e1rio.\"\"\",\n    tools=&#91;\n        google_search\n    &#93;\n)<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F6F6F4\">agente_busca_web <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> Agent(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">model<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">gemini-2.5-flash<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">name<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">agente_busca_web<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">description<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">Agente que busca a web<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">instruction<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&quot;&quot;&quot;<\/span><span style=\"color: #E7EE98\">Voc\u00ea \u00e9 o Assistente que consulta a internet usando a ferramenta google_search para o usu\u00e1rio.<\/span><span style=\"color: #DEE492\">&quot;&quot;&quot;<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">tools<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\">&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        google_search<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    &#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Esse agente possui:<\/p>\n\n\n\n<p><strong>Modelo<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">gemini-2.5-flash<\/pre>\n\n\n\n<p>Um modelo r\u00e1pido e eficiente para tarefas de consulta.<\/p>\n\n\n\n<p><strong>Ferramentas<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">google_search<\/pre>\n\n\n\n<p>Assim o agente pode buscar informa\u00e7\u00f5es atualizadas na internet antes de responder.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Usando um agente como ferramenta<\/h3>\n\n\n\n<p>Agora vem uma funcionalidade muito interessante do ADK:<br><strong>transformar um agente em ferramenta de outro agente<\/strong>.<\/p>\n\n\n\n<p>Isso \u00e9 feito usando:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#f6f6f4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>AgentTool(agente_busca_web)<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F6F6F4\">AgentTool(agente_busca_web)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Assim, o agente principal pode <strong>delegar tarefas de pesquisa<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Criando o agente principal<\/h3>\n\n\n\n<p>Agora criamos o agente que o usu\u00e1rio realmente ir\u00e1 utilizar.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#f6f6f4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>root_agent = Agent(\n    model=\"gemini-2.5-flash\",\n    name='agente_ferramentas',\n    description='Agente com ferramentas',\n    instruction=\"\"\"Voc\u00ea \u00e9 o Assistente que tem acesso a ferramentas para ajudar o usu\u00e1rio. Use get_horas para obter as horas atuais e agente_busca_web para buscar informa\u00e7\u00f5es na web.\"\"\",\n    tools=&#91;\n        get_horas,\n        AgentTool(agente_busca_web)\n    &#93;\n)<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F6F6F4\">root_agent <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> Agent(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">model<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">gemini-2.5-flash<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">name<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">agente_ferramentas<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">description<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">Agente com ferramentas<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">instruction<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&quot;&quot;&quot;<\/span><span style=\"color: #E7EE98\">Voc\u00ea \u00e9 o Assistente que tem acesso a ferramentas para ajudar o usu\u00e1rio. Use get_horas para obter as horas atuais e agente_busca_web para buscar informa\u00e7\u00f5es na web.<\/span><span style=\"color: #DEE492\">&quot;&quot;&quot;<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">tools<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\">&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        get_horas,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        AgentTool(agente_busca_web)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    &#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Esse agente possui duas ferramentas:<\/p>\n\n\n\n<p><strong>get_horas<\/strong><\/p>\n\n\n\n<p>Ferramenta Python que retorna a hora atual.<\/p>\n\n\n\n<p><strong>agente_busca_web<\/strong><\/p>\n\n\n\n<p>Um agente especializado em pesquisas na internet.<\/p>\n\n\n\n<p>Assim, o agente pode decidir automaticamente:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>quando consultar a hora<\/li>\n\n\n\n<li>quando pesquisar na web<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplos de perguntas<\/h3>\n\n\n\n<p>Depois de configurado, o agente pode responder perguntas como:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pergunta<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">Que horas s\u00e3o agora?<\/pre>\n\n\n\n<p>O agente chamar\u00e1 a ferramenta:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">get_horas()<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Pergunta<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">Quem ganhou o pr\u00eamio Nobel de F\u00edsica em 2024?<\/pre>\n\n\n\n<p>O agente delegar\u00e1 a tarefa para:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">agente_busca_web<\/pre>\n\n\n\n<p>Que por sua vez utilizar\u00e1:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">google_search<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Vantagens dessa arquitetura<\/h3>\n\n\n\n<p>Essa abordagem traz v\u00e1rios benef\u00edcios:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Modularidade<\/h3>\n\n\n\n<p>Cada agente tem uma responsabilidade espec\u00edfica.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Escalabilidade<\/h3>\n\n\n\n<p>\u00c9 f\u00e1cil adicionar novas ferramentas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>banco de dados<\/li>\n\n\n\n<li>APIs internas<\/li>\n\n\n\n<li>automa\u00e7\u00f5es<\/li>\n\n\n\n<li>sistemas corporativos<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Especializa\u00e7\u00e3o<\/h3>\n\n\n\n<p>Agentes podem ser especializados em tarefas como:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>pesquisa<\/li>\n\n\n\n<li>an\u00e1lise de documentos<\/li>\n\n\n\n<li>execu\u00e7\u00e3o de comandos<\/li>\n\n\n\n<li>gera\u00e7\u00e3o de relat\u00f3rios<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Conclus\u00e3o<\/h3>\n\n\n\n<p>O <strong>Google ADK<\/strong> facilita muito a cria\u00e7\u00e3o de agentes inteligentes que utilizam ferramentas externas.<\/p>\n\n\n\n<p>Neste artigo vimos como:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>criar uma <strong>ferramenta Python customizada<\/strong><\/li>\n\n\n\n<li>usar <strong>Google Search como tool<\/strong><\/li>\n\n\n\n<li>criar <strong>um agente especializado<\/strong><\/li>\n\n\n\n<li>usar <strong>um agente como ferramenta de outro agente<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Esse padr\u00e3o \u00e9 extremamente \u00fatil para criar <strong>assistentes corporativos<\/strong>, <strong>chatbots inteligentes<\/strong> e <strong>sistemas de automa\u00e7\u00e3o baseados em IA<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Todo o c\u00f3digo:<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#f6f6f4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>from google.adk.agents import Agent\nfrom google.adk.tools import google_search\nfrom google.adk.tools.agent_tool import AgentTool\nfrom datetime import datetime\n\ndef get_horas():\n    # Retorna a hora atual no formato HH:MM:SS\n    horas=datetime.now().strftime(\"%H:%M:%S\")\n    return horas\n\nagente_busca_web=Agent(\n    model=\"gemini-2.5-flash\",\n    name='agente_busca_web',\n    description='Agente que busca a web',\n    instruction=\"\"\"Voc\u00ea \u00e9 o Assistente que consulta a internet usando a ferramenta google_search para o usu\u00e1rio.\"\"\",\n    tools=&#91;\n        google_search\n    &#93;\n)\n\nroot_agent = Agent(\n    model=\"gemini-2.5-flash\",\n    name='agente_ferramentas',\n    description='Agente com ferramentas',\n    instruction=\"\"\"Voc\u00ea \u00e9 o Assistente que tem acesso a ferramentas para ajudar o usu\u00e1rio. Use get_horas para obter as horas atuais e agente_busca_web para buscar informa\u00e7\u00f5es na web.\"\"\",\n    tools=&#91;\n        get_horas,\n        AgentTool(agente_busca_web)\n    &#93;\n)\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F286C4\">from<\/span><span style=\"color: #F6F6F4\"> google.adk.agents <\/span><span style=\"color: #F286C4\">import<\/span><span style=\"color: #F6F6F4\"> Agent<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">from<\/span><span style=\"color: #F6F6F4\"> google.adk.tools <\/span><span style=\"color: #F286C4\">import<\/span><span style=\"color: #F6F6F4\"> google_search<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">from<\/span><span style=\"color: #F6F6F4\"> google.adk.tools.agent_tool <\/span><span style=\"color: #F286C4\">import<\/span><span style=\"color: #F6F6F4\"> AgentTool<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">from<\/span><span style=\"color: #F6F6F4\"> datetime <\/span><span style=\"color: #F286C4\">import<\/span><span style=\"color: #F6F6F4\"> datetime<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">def<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">get_horas<\/span><span style=\"color: #F6F6F4\">():<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #7B7F8B\"># Retorna a hora atual no formato HH:MM:SS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    horas<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\">datetime.now().strftime(<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">%H:%M:%S<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> horas<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">agente_busca_web<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\">Agent(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">model<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">gemini-2.5-flash<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">name<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">agente_busca_web<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">description<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">Agente que busca a web<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">instruction<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&quot;&quot;&quot;<\/span><span style=\"color: #E7EE98\">Voc\u00ea \u00e9 o Assistente que consulta a internet usando a ferramenta google_search para o usu\u00e1rio.<\/span><span style=\"color: #DEE492\">&quot;&quot;&quot;<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">tools<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\">&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        google_search<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    &#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">root_agent <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> Agent(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">model<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">gemini-2.5-flash<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">name<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">agente_ferramentas<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">description<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">Agente com ferramentas<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">instruction<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&quot;&quot;&quot;<\/span><span style=\"color: #E7EE98\">Voc\u00ea \u00e9 o Assistente que tem acesso a ferramentas para ajudar o usu\u00e1rio. Use get_horas para obter as horas atuais e agente_busca_web para buscar informa\u00e7\u00f5es na web.<\/span><span style=\"color: #DEE492\">&quot;&quot;&quot;<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #FFB86C; font-style: italic\">tools<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\">&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        get_horas,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        AgentTool(agente_busca_web)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    &#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Neste artigo voc\u00ea vai acompanhar, passo a passo, a constru\u00e7\u00e3o de um assistente conversacional utilizando Google ADK, FastAPI e Streamlit. O foco est\u00e1 na integra\u00e7\u00e3o do frontend com o agente, no uso de ferramentas para consultar dados via backend e na comunica\u00e7\u00e3o em tempo real via streaming (SSE). Ao longo do texto, mostramos como estruturar um agente funcional, simular APIs, consumir ferramentas corretamente e entregar uma experi\u00eancia de chat simples, responsiva e pronta para prot\u00f3tipos e demonstra\u00e7\u00f5es reais.<\/p>\n","protected":false},"author":712,"featured_media":205465,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[55,26],"tags":[61],"class_list":["post-205463","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-inteligencia_artificial","category-publicacoes-ligo","tag-inteligencia-artificial"],"rttpg_featured_image_url":{"full":["https:\/\/goias.gov.br\/ligo\/wp-content\/uploads\/sites\/61\/2026\/03\/ChatGPT-Image-10-de-mar.-de-2026-11_17_03.jpg",1024,1536,false],"landscape":["https:\/\/goias.gov.br\/ligo\/wp-content\/uploads\/sites\/61\/2026\/03\/ChatGPT-Image-10-de-mar.-de-2026-11_17_03.jpg",1024,1536,false],"portraits":["https:\/\/goias.gov.br\/ligo\/wp-content\/uploads\/sites\/61\/2026\/03\/ChatGPT-Image-10-de-mar.-de-2026-11_17_03.jpg",1024,1536,false],"thumbnail":["https:\/\/goias.gov.br\/ligo\/wp-content\/uploads\/sites\/61\/2026\/03\/ChatGPT-Image-10-de-mar.-de-2026-11_17_03-150x150.jpg",150,150,true],"medium":["https:\/\/goias.gov.br\/ligo\/wp-content\/uploads\/sites\/61\/2026\/03\/ChatGPT-Image-10-de-mar.-de-2026-11_17_03-200x300.jpg",200,300,true],"large":["https:\/\/goias.gov.br\/ligo\/wp-content\/uploads\/sites\/61\/2026\/03\/ChatGPT-Image-10-de-mar.-de-2026-11_17_03-683x1024.jpg",683,1024,true],"1536x1536":["https:\/\/goias.gov.br\/ligo\/wp-content\/uploads\/sites\/61\/2026\/03\/ChatGPT-Image-10-de-mar.-de-2026-11_17_03.jpg",1024,1536,false],"2048x2048":["https:\/\/goias.gov.br\/ligo\/wp-content\/uploads\/sites\/61\/2026\/03\/ChatGPT-Image-10-de-mar.-de-2026-11_17_03.jpg",1024,1536,false]},"rttpg_author":{"display_name":"Adriano Pericles","author_link":"https:\/\/goias.gov.br\/ligo\/author\/adrianorodrigues\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/goias.gov.br\/ligo\/categoria\/publicacoes-ligo\/inteligencia_artificial\/\" rel=\"category tag\">Intelig\u00eancia Artificial<\/a> <a href=\"https:\/\/goias.gov.br\/ligo\/categoria\/publicacoes-ligo\/\" rel=\"category tag\">Publica\u00e7\u00f5es Ligo<\/a>","rttpg_excerpt":"Neste artigo voc\u00ea vai acompanhar, passo a passo, a constru\u00e7\u00e3o de um assistente conversacional utilizando Google ADK, FastAPI e Streamlit. O foco est\u00e1 na integra\u00e7\u00e3o do frontend com o agente, no uso de ferramentas para consultar dados via backend e na comunica\u00e7\u00e3o em tempo real via streaming (SSE). Ao longo do texto, mostramos como estruturar&hellip;","_links":{"self":[{"href":"https:\/\/goias.gov.br\/ligo\/wp-json\/wp\/v2\/posts\/205463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/goias.gov.br\/ligo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/goias.gov.br\/ligo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/goias.gov.br\/ligo\/wp-json\/wp\/v2\/users\/712"}],"replies":[{"embeddable":true,"href":"https:\/\/goias.gov.br\/ligo\/wp-json\/wp\/v2\/comments?post=205463"}],"version-history":[{"count":2,"href":"https:\/\/goias.gov.br\/ligo\/wp-json\/wp\/v2\/posts\/205463\/revisions"}],"predecessor-version":[{"id":205467,"href":"https:\/\/goias.gov.br\/ligo\/wp-json\/wp\/v2\/posts\/205463\/revisions\/205467"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/goias.gov.br\/ligo\/wp-json\/wp\/v2\/media\/205465"}],"wp:attachment":[{"href":"https:\/\/goias.gov.br\/ligo\/wp-json\/wp\/v2\/media?parent=205463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/goias.gov.br\/ligo\/wp-json\/wp\/v2\/categories?post=205463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/goias.gov.br\/ligo\/wp-json\/wp\/v2\/tags?post=205463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}