Pi Agent: Prompt Templates

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

--- title: "Templates de Prompt" description: "Domine o sistema de templates de prompt do Pi Agent, crie prompts reutilizaveis e parametrizaveis, e melhore a qualidade de saida do Agent." order: 10 lang: pt-br

Bons prompts são como boas receitas — siga-as, e todo prato sai certo.


1. Por que Templates de Prompt

Problemas ao escrever prompts diretamente:

Templates de prompt resolvem isso:

Recurso Descrição
Reutilizável Defina uma vez, chame muitas vezes
Parametrizável Substituição de variáveis para diferentes cenários
Compartilhável Biblioteca de templates da equipe
Testável Templates podem ser testados e otimizados independentemente

2. Templates Integrados

Template Finalidade
code_review Revisão de código
bug_fix Correção de bugs
test_gen Geração de testes
doc_gen Geração de documentação
translate Tradução
summarize Resumo
refactor Refatoração
PYTHON
from pi_agent import Agent

agent = Agent(name="reviewer")
result = agent.run(template="code_review", code="def add(a,b): return a+b")

3. Templates Personalizados

(1) Arquivo de Template YAML

Crie ~/.pi-agent/templates/code_explain.yaml:

YAML
name: code_explain
description: "Explain code functionality and principles"
system: |
  You are a code explanation expert. Explain code in simple language,
  including: 1) Function overview 2) Key logic 3) Potential issues
template: |
  Please explain the following {{ language }} code:

  ```{{ language }}
  {{ code }}

Requirements:


### (2) Definição de Template em Python

```python
from pi_agent import PromptTemplate

explain_template = PromptTemplate(
    name="code_explain",
    description="Explain code functionality and principles",
    system="You are a code explanation expert",
    template="Please explain the following {language} code:\n{code}",
    variables=["language", "code"]
)

agent = Agent(name="explainer")
agent.add_template(explain_template)

result = agent.run(
    template="code_explain",
    language="python",
    code="def fib(n): return n if n < 2 else fib(n-1) + fib(n-2)"
)

4. Variáveis e Condicionais de Template

(1) Variáveis Básicas

YAML
template: |
  Translate the following text from {{ source_lang }} to {{ target_lang }}:
  {{ text }}

(2) Renderização Condicional

YAML
template: |
  Please review the following code:
  {{ code }}

  {% if focus_area %}
  Focus on {{ focus_area }} aspects.
  {% endif %}

  {% if severity == "strict" %}
  Please review strictly, list all issues.
  {% else %}
  Only list critical issues.
  {% endif %}

(3) Loops

YAML
template: |
  Check if the following files conform to coding standards:
  {% for file in files %}
  - {{ file }}
  {% endfor %}

5. Composição de Templates

Exemplo 1: Workflow Multi-Template (Dificuldade: ⭐⭐)

PYTHON
from pi_agent import Agent, PromptTemplate

review_template = PromptTemplate(
    name="review",
    template="Review code: {code}\nFocus: {focus}"
)

fix_template = PromptTemplate(
    name="fix",
    template="Fix code based on review: {review_result}\nOriginal: {code}"
)

agent = Agent(name="pipeline")
code = "def add(a, b): return a + b"
review_result = agent.run(template="review", code=code, focus="security")
fix_result = agent.run(template="fix", review_result=review_result, code=code)

6. Teste e Otimização de Templates

(1) Teste A/B

PYTHON
from pi_agent import Agent

template_a = "Review this code: {code}"
template_b = "As a senior engineer, strictly review this code for security, performance, and readability: {code}"

agent = Agent(name="ab_test")
result_a = agent.run(template=template_a, code=sample_code)
result_b = agent.run(template=template_b, code=sample_code)

❓ Perguntas Frequentes

P: Variáveis de template vs f-strings do Python? R: Variáveis de template usam {{ var }} (estilo Jinja2), renderizadas em tempo de execução com condicionais e loops. f-strings são sintaxe Python e não podem ser armazenadas em arquivos de configuração. P: Como gerenciar muitos templates? R: Organize por diretório: templates/coding/, templates/writing/, templates/review/. Pi Agent escaneia recursivamente todos os subdiretórios. P: Melhor forma de compartilhar templates com a equipe? R: Coloque o diretório de templates em um repositório Git, cada pessoa clona para ~/.pi-agent/templates/. Ou publique como um pacote Pi Agent.


❓ Resumo


📝 Exercícios

  1. Básico (Dificuldade: ⭐): Crie um template simples de tradução com parâmetros source_lang e target_lang.
  2. Intermediário (Dificuldade: ⭐⭐): Crie um template de revisão de código com renderização condicional baseada em severity.
  3. Avançado (Dificuldade: ⭐⭐⭐): Design um conjunto completo de templates de desenvolvimento (review → fix → test) e teste sua eficácia.
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%