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:
- Repetir prompts similares para tarefas similares
- Qualidade inconsistente dos prompts
- Difícil compartilhar boas práticas entre equipes
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 |
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:
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:
- Explain functionality in plain language
- Mark key logic points
- Point out potential issues (if any) variables:
- name: language type: string required: true description: "Programming language name"
- name: code type: string required: true description: "Code to explain"
### (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
template: |
Translate the following text from {{ source_lang }} to {{ target_lang }}:
{{ text }}
(2) Renderização Condicional
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
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: ⭐⭐)
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
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
- Templates de prompt resolvem reusabilidade, consistência e compartilhamento
- Arquivos YAML e definições Python ambos suportados
- Variáveis suportam renderização condicional e loops
- Múltiplos templates podem compor workflows
- Teste A/B e pontuação melhoram continuamente a qualidade dos templates
📝 Exercícios
- Básico (Dificuldade: ⭐): Crie um template simples de tradução com parâmetros source_lang e target_lang.
- Intermediário (Dificuldade: ⭐⭐): Crie um template de revisão de código com renderização condicional baseada em severity.
- Avançado (Dificuldade: ⭐⭐⭐): Design um conjunto completo de templates de desenvolvimento (review → fix → test) e teste sua eficácia.