Pi Agent: Session Management
Última atualização: 2026-08-31
--- title: "Gerenciamento de Sessao" description: "Domine o gerenciamento de sessoes do Pi Agent incluindo criacao, persistencia, recuperacao, ramificacao e compartilhamento." order: 8 lang: pt-br
Sessões são as "cápsulas de memória" do Agent — salve para continuar depois; ramifique para explorar possibilidades.
1. O que é uma Sessão
Uma Sessão registra uma interação completa, incluindo:
- Histórico de conversas
- Estado do contexto
- Registros de chamadas de ferramentas
- Configuração do Agent
PYTHON
from pi_agent import Agent, Session
session = Session(name="project_review")
agent = Agent(name="reviewer", session=session)
agent.chat("Review main.py")
agent.chat("What security issues are there?")
print(len(session.messages)) # 4 (2 user + 2 assistant)
2. Persistência de Sessão
(1) Salvar em Arquivo
PYTHON
from pi_agent import Agent
agent = Agent(name="tutor")
agent.chat("Teach me Python decorators")
agent.session.save("decorator_session.json")
(2) Carregar de Arquivo
PYTHON
from pi_agent import Agent
agent = Agent(name="tutor")
agent.session.load("decorator_session.json")
agent.chat("How does it differ from class method decorators?")
(3) Salvamento Automático
PYTHON
agent = Agent(name="tutor", auto_save=True, save_dir="./sessions/")
3. Ramificação de Sessão
Ramificação cria caminhos de conversa paralelos a partir de qualquer ponto:
Exemplo 1: Explorando Diferentes Abordagens (Dificuldade: ⭐⭐)
PYTHON
from pi_agent import Agent
agent = Agent(name="architect")
agent.chat("Design a user authentication system architecture")
# Agent gave JWT approach
branch1 = agent.branch(name="jwt_branch")
agent.chat("Redesign using OAuth2")
# Agent gave OAuth2 approach
branch1.chat("How to handle token refresh in JWT?")
# Two independent sessions
print(agent.session.messages) # JWT -> OAuth2 path
print(branch1.session.messages) # JWT -> refresh path
4. CLI de Gerenciamento de Sessões
BASH
pi-agent sessions list
pi-agent sessions show decorator_session
pi-agent chat --session decorator_session
pi-agent sessions delete old_session
pi-agent sessions export decorator_session --format markdown --output chat.md
5. Busca e Tags de Sessão
(1) Adicionar Tags
PYTHON
agent.session.add_tag("python")
agent.session.add_tag("decorator")
agent.session.add_tag("advanced")
(2) Buscar Sessões
PYTHON
from pi_agent import SessionManager
manager = SessionManager()
sessions = manager.find_by_tag("python")
sessions = manager.find_by_date("2026-08-28")
sessions = manager.search("decorator closure")
(3) Busca via CLI
BASH
pi-agent sessions search "decorator"
pi-agent sessions list --tag python --date 2026-08-28
6. Compartilhamento de Sessão
(1) Exportar como Markdown
PYTHON
agent.session.export("chat.md", format="markdown")
(2) Exportar como JSON
PYTHON
agent.session.export("chat.json", format="json")
(3) Compartilhar com Outro Agent
PYTHON
new_agent = Agent(name="continuer")
new_agent.session.import_from(agent.session)
new_agent.chat("Continue the discussion, dive deeper into metaclasses")
❓ Perguntas Frequentes
P: Onde os arquivos de sessão são armazenados? R: O padrão é
~/.pi-agent/sessions/. Personalize com o parâmetrosave_dir. P: Quão grandes os arquivos de sessão ficam? R: Depende do comprimento da conversa. ~50-200KB para 100 turnos. Imagens e código longo aumentam o tamanho. P: Posso mesclar duas sessões? R: Sim. Usesession.merge(other_session). As mensagens são ordenadas por timestamp.
❓ Resumo
- Sessões registram interações completas; suportam salvar, carregar, salvamento automático
- Ramificação explora diferentes abordagens sem afetar a linha principal
- Tags e busca ajudam a encontrar sessões históricas rapidamente
- Exporte como Markdown/JSON para compartilhamento e arquivamento
📝 Exercícios
- Básico (Dificuldade: ⭐): Crie uma sessão, faça 5 rodadas de conversa, salve e recarregue.
- Intermediário (Dificuldade: ⭐⭐): Crie duas ramificações a partir de uma sessão, explore abordagens diferentes, compare resultados.
- Avançado (Dificuldade: ⭐⭐⭐): Construa um script de "painel de sessões" que mostre estatísticas de todas as sessões: tags, contagem de turnos, uso de tokens.