Perguntas de Entrevista sobre IA 6: Três Metodologias Principais do AI Agent: ReAct, Plan-and-Solve e Reflection
Três Metodologias Principais do AI Agent: ReAct, Plan-and-Solve e Reflection
AI Agent é um agente inteligente capaz de perceber o ambiente, tomar decisões e executar ações de forma autônoma. Suas metodologias principais são três: ReAct, Plan-and-Solve e Reflection. Abaixo, apresentamos cada uma, acompanhadas de fluxogramas e exemplos de código.
1. ReAct (Raciocínio + Ação)
Ideia central: Intercalar raciocínio (Reasoning) e ação (Acting). O agente, a cada passo, primeiro pensa sobre o estado atual e o próximo plano (raciocínio), depois executa uma ação (como chamar uma ferramenta, buscar informações) e, em seguida, continua raciocinando com base no resultado.
Fluxograma:
[Estado inicial] → [Raciocínio: pensar próximo passo] → [Ação: executar ação] → [Observar resultado] → [Raciocínio: atualizar plano] → ... → [Resposta final]
Exemplo de código (pseudocódigo):
def react_agent(question):
context = []
while not solved:
# Raciocínio: gerar etapa de pensamento
thought = llm.generate_thought(question, context)
# Ação: escolher ação com base no pensamento
action = llm.choose_action(thought)
# Executar ação, obter observação
observation = execute_action(action)
# Adicionar pensamento, ação e observação ao contexto
context.append((thought, action, observation))
return final_answer
Exemplo:
- Usuário pergunta: "Como está o tempo em Pequim hoje?"
- Agente raciocina: "Preciso consultar a API de clima, preciso do nome da cidade e da data."
- Ação: chamar API de clima (parâmetros: Pequim, hoje)
- Observação: retorna "Ensolarado, 25°C"
- Raciocínio: "Informação obtida, posso responder."
- Saída: "Pequim hoje: ensolarado, 25°C."
2. Plan-and-Solve
Ideia central: Primeiro elaborar um plano completo (Plan), depois executá-lo passo a passo (Solve). Na fase de planejamento, a tarefa complexa é decomposta em subetapas; na fase de execução, as etapas são concluídas em ordem, podendo ajustar o plano com base em resultados intermediários.
Fluxograma:
[Tarefa] → [Elaborar plano: decompor em subetapas] → [Executar etapa 1] → [Executar etapa 2] → ... → [Executar etapa N] → [Resposta final]
Exemplo de código:
def plan_and_solve(task):
# Fase de planejamento
plan = llm.generate_plan(task) # Exemplo: ["Pesquisar dados", "Organizar informações", "Escrever relatório"]
context = {}
for step in plan:
# Executar cada etapa
result = execute_step(step, context)
context[step] = result
# Sintetizar resultados
final = llm.synthesize(context)
return final
Exemplo:
- Tarefa: "Escrever um blog sobre AI Agent"
- Plano:
1. Pesquisar definição e avanços recentes de AI Agent
2. Ler e organizar pontos-chave
3. Escrever esboço do blog
4. Preencher conteúdo
5. Revisar e publicar
- Execução: concluir cada etapa sequencialmente, resultando no blog final.
3. Reflection
Ideia central: O agente reflete sobre seu próprio comportamento durante ou após a execução, avalia os resultados e melhora ações futuras. Geralmente inclui autocrítica, correção de erros ou otimização de estratégia.
Fluxograma:
[Ação] → [Observar resultado] → [Reflexão: avaliar se bem-sucedido] → [Se falha: ajustar estratégia] → [Agir novamente] → ... → [Sucesso]
Exemplo de código:
def reflection_agent(task):
max_attempts = 3
for attempt in range(max_attempts):
action = llm.generate_action(task)
result = execute(action)
# Reflexão
reflection = llm.reflect(task, action, result)
if reflection['success']:
return result
else:
# Ajustar descrição da tarefa ou estratégia com base na reflexão
task = reflection['improved_task']
return None
Exemplo:
- Tarefa: "Calcular 1234 * 5678"
- Ação: calcular diretamente, obtendo resultado 7006652
- Reflexão: verificar o processo de cálculo, descobrir erro de进位
- Ajuste: recalcular, obtendo resultado correto 7006652 (na verdade correto)
- Se ainda errado, continuar refletindo até acertar.
Resumo Comparativo
| Metodologia | Características | Cenários de Aplicação |
|---|---|---|
| ReAct | Raciocínio e ação intercalados, ajuste dinâmico | Tarefas que exigem interação em tempo real (ex: perguntas e respostas, busca) |
| Plan-and-Solve | Planejar primeiro, depois executar, decomposição estruturada | Tarefas complexas com múltiplas etapas (ex: escrita, análise de dados) |
| Reflection | Autorreflexão e correção, otimização iterativa | Tarefas que exigem alta precisão (ex: cálculos matemáticos, geração de código) |
Na prática, frequentemente combinam-se as três, como adicionar mecanismo de reflexão ao ReAct, ou refletir após cada etapa no Plan-and-Solve.
评论
暂无已展示的评论。
发表评论(匿名)