Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Explicação da Classe AgentState

Olá,

Em aula, fiquei com dúvida sobre a classe AgentState. Em primeiro lugar, o que seria o tipo Anotated? Em segundo lugar, a presença do operator.add na segunda posição. Em terceiro, o funcionamento interno dentro do grafo StateGraph, com seus atributos messages e tool_calls.

Além disso, sinto que o professor podia ter dado uma dedicada maior na explicação da classe Agent e em seus métodos, principalmente na composição dos prompts em cada etapa.

Por último, uma sugestão seria adicionar o componente do LangSmith para o acompanhamento passo a passo das etapas do agente, da mesma forma que foi conduzido no curso anterior de técnicas avançadas de RAG.

1 resposta
solução!

Olá, Nelson! Como vai?

Vou te ajudar nas dúvidas sobre a classe AgentState e outros pontos que você mencionou! Vamos lá?

  1. Tipo Annotated: O tipo Annotated é usado para adicionar metadados a tipos em Python. No contexto da classe AgentState, ele está sendo usado para indicar que a lista de mensagens (list[AnyMessage]) deve ser manipulada com a operação operator.add, que basicamente significa que as mensagens serão adicionadas ao histórico.

  2. operator.add: Na definição da classe AgentState, operator.add é utilizado como uma forma de especificar que as mensagens devem ser acumuladas. Isso é útil em um contexto onde você deseja manter um histórico de mensagens, adicionando novas mensagens ao final da lista existente.

  3. Funcionamento interno no StateGraph: O StateGraph é uma estrutura que orquestra o fluxo de operações do agente. Os atributos messages e tool_calls são fundamentais para o funcionamento do agente. messages armazena o histórico de interações, enquanto tool_calls contém as chamadas de ferramentas que o agente precisa realizar. O fluxo do grafo é gerenciado por nós e arestas, onde cada nó representa uma ação ou estado e as arestas determinam o caminho a seguir com base em condições.

  4. Classe Agent e seus métodos: A classe Agent é responsável por definir o comportamento do agente, incluindo como ele interage com o modelo de linguagem (neste caso, Gemini) e como ele executa ações através de ferramentas. A composição dos prompts em cada etapa é gerida pelas funções call_gemini e take_action, que respectivamente invocam o modelo de linguagem e executam as ações necessárias.

  5. Sugestão sobre o LangSmith: A integração do LangSmith para acompanhar o passo a passo das etapas do agente é uma ótima ideia. Ele pode oferecer uma visão mais clara de como os prompts e as interações são geridos, similar ao que foi feito no curso anterior de técnicas avançadas de RAG.

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado