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:
pi-agent chat "Hello, please introduce yourself"
Saída:
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
pi-agent chat --provider openai --model gpt-4o "Explain quantum entanglement"
(2) Especificar Skill
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
from pi_agent import Agent
agent = Agent(name="hello")
response = agent.chat("Hello, Pi Agent!")
print(response)
(2) Conversa Multi-Turno
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
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:
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: ⭐)
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:
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:
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
- CLI:
pi-agent chatpara chat rápido; Python:Agent.chat()para uso programático - Suporta conversas multi-turno, respostas estruturadas, saída em streaming
- Prompts do sistema definem a persona do Agent; mensagens seguem o padrão role/content
- Objetos de resposta incluem texto, informações do modelo, uso de tokens e outros metadados
📝 Exercícios
- Básico (Dificuldade: ⭐): Envie uma mensagem usando tanto CLI quanto Python, compare a experiência.
- Intermediário (Dificuldade: ⭐⭐): Crie dois Agents com diferentes system_prompts, obtenha respostas de estilos diferentes para a mesma pergunta.
- Avançado (Dificuldade: ⭐⭐⭐): Implemente um efeito de "máquina de escrever em tempo real" usando saída em streaming.