Pi Agent: First Chat

Última atualização: 2026-08-31

--- title: "Primeiro Chat" description: "Envie sua primeira mensagem com o Pi Agent, entenda o fluxo de conversa interativa, formatos de mensagem e tratamento de respostas." order: 4 lang: pt-br

Hello World é sempre o primeiro passo com uma nova ferramenta. Esta lição faz o Pi Agent realmente "falar."


1. Chat Rápido via CLI

A forma mais simples após a instalação é o chat por linha de comando:

BASH
pi-agent chat "Hello, please introduce yourself"

Saída:

TEXT 📖 Somente leitura
Pi Agent v0.8.0
Provider: deepseek (deepseek-chat)

Hello! I'm Pi Agent, a lightweight AI agent framework. I can help you
answer questions, call tools, and execute tasks. Chatting with me is
like talking to an AI partner that can take action!

(1) Especificar Provedor

BASH
pi-agent chat --provider openai --model gpt-4o "Explain quantum entanglement"

(2) Especificar Skill

BASH
pi-agent chat --skill code_review "Review this Python code"

2. Chat via Código Python

Uma abordagem mais flexível usa a API Python:

(1) Chat Mais Simples

PYTHON
from pi_agent import Agent

agent = Agent(name="hello")
response = agent.chat("Hello, Pi Agent!")
print(response)

(2) Conversa Multi-Turno

PYTHON
from pi_agent import Agent

agent = Agent(name="tutor", system_prompt="You are a Python programming tutor")

r1 = agent.chat("What are list comprehensions?")
print(r1)

r2 = agent.chat("Give me a practical example")
print(r2)

r3 = agent.chat("What are the advantages over for loops?")
print(r3)

(3) Resposta Estruturada

PYTHON
from pi_agent import Agent

agent = Agent(name="structured")
response = agent.chat(
    "List 5 programming languages with their names and invention years",
    response_format="json"
)

print(type(response))  # <class 'dict'>

3. Formato de Mensagem

Pi Agent usa um formato de mensagem padrão internamente:

PYTHON
messages = [
    {"role": "system", "content": "You are a coding assistant"},
    {"role": "user", "content": "What are decorators?"},
    {"role": "assistant", "content": "Decorators are..."},
    {"role": "user", "content": "Can you give an example?"}
]
Papel Descrição
system Prompt do sistema, define o comportamento do Agent
user Entrada do usuário
assistant Resposta do Agent
tool Resultado de chamada de ferramenta

4. Prompt do Sistema

Prompts do sistema definem a "persona" e os limites comportamentais do Agent:

Exemplo 1: Diferentes Papéis de Agent (Dificuldade: ⭐)

PYTHON
from pi_agent import Agent

coder = Agent(
    name="coder",
    system_prompt="You are a Python expert. Respond concisely with code and key explanations only"
)

teacher = Agent(
    name="teacher",
    system_prompt="You are a patient programming teacher. Explain concepts with analogies and step-by-step breakdowns"
)

q = "What are generators?"

print("=== Coder ===")
print(coder.chat(q))

print("=== Teacher ===")
print(teacher.chat(q))

5. Saída em Streaming

Para respostas longas, streaming permite ver resultados em tempo real:

PYTHON
from pi_agent import Agent

agent = Agent(name="stream")
for chunk in agent.chat_stream("Write a poem about programming"):
    print(chunk, end="", flush=True)

Alice comparou os modos: "Streaming é muito melhor — sem ficar olhando para uma tela em branco esperando."


6. Detalhes do Objeto de Resposta

O método chat() retorna mais do que apenas texto:

PYTHON
from pi_agent import Agent

agent = Agent(name="meta")
response = agent.chat("1+1=?")

print(response.text)          # "2"
print(response.model)         # "deepseek-chat"
print(response.usage)         # {"prompt_tokens": 12, "completion_tokens": 3}
print(response.tool_calls)    # [] (registra se ferramentas foram chamadas)
print(response.finish_reason) # "stop"

❓ Perguntas Frequentes

P: chat() ou chat_stream()? R: Use chat() para Q&A curto, chat_stream() para geração de texto longo. Streaming não afeta o resultado, apenas a experiência do usuário. P: O contexto multi-turno cresce indefinidamente? R: Não. Pi Agent gerencia a janela de contexto automaticamente, truncando as mensagens mais antigas quando o limite é excedido. Defina context_window ao criar um Agent. P: Como forçar o Agent a usar ferramentas? R: Defina tool_choice="required", ou instrua explicitamente "Por favor, use a ferramenta de busca para encontrar..." na sua mensagem.


❓ Resumo


📝 Exercícios

  1. Básico (Dificuldade: ⭐): Envie uma mensagem usando tanto CLI quanto Python, compare a experiência.
  2. Intermediário (Dificuldade: ⭐⭐): Crie dois Agents com diferentes system_prompts, obtenha respostas de estilos diferentes para a mesma pergunta.
  3. Avançado (Dificuldade: ⭐⭐⭐): Implemente um efeito de "máquina de escrever em tempo real" usando saída em streaming.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%