La comunidad Pi Coding Agent tiene un problema de empaquetado: los flujos de trabajo que deberían tener 20 líneas de configuración se convierten en paquetes de 200 líneas con abstracciones innecesarias. Este tutorial muestra cómo crear flujos de trabajo de búsqueda mínimos y de un solo propósito para Pi que se compongan bien sin demasiada ingeniería.
Requisitos previos
- Agente de codificación Pi instalado (v0.73+)
- Una clave API de Scavio
- Comprensión de los conceptos básicos del flujo de trabajo de Pi
Guia paso a paso
Paso 1: El patrón mínimo de flujo de trabajo de búsqueda
Un flujo de trabajo de Pi que hace una cosa: buscar y devolver resultados. Sin orquestación, sin máquina de estados.
# ~/.pi-agent/workflows/quick_search.yaml
name: quick_search
trigger: /search
steps:
- action: http_post
url: https://api.scavio.dev/api/v1/search
headers:
x-api-key: ${SCAVIO_API_KEY}
Content-Type: application/json
body:
platform: google
query: ${input}
output: results
- action: format
template: |
${results.organic[0:5].map(r => '- ' + r.title + ': ' + r.snippet).join('\n')}Paso 2: Redactar múltiples flujos de trabajo mínimos
Cree flujos de trabajo separados para cada plataforma y compóngalos cuando sea necesario.
# ~/.pi-agent/workflows/reddit_search.yaml
name: reddit_search
trigger: /reddit
steps:
- action: http_post
url: https://api.scavio.dev/api/v1/search
headers:
x-api-key: ${SCAVIO_API_KEY}
Content-Type: application/json
body:
platform: reddit
query: ${input}
output: results
- action: format
template: |
${results.organic[0:5].map(r => '- [' + r.title + '](' + r.link + ') (score: ' + r.score + ')').join('\n')}
# Usage: /reddit python fastapi deployment tipsPaso 3: Evite la trampa del sobreenvasado
Compare los enfoques mínimos con los excesivamente empaquetados.
# OVER-PACKAGED (don't do this):
# - 50-line config with state machine
# - Custom error handling framework
# - Retry logic with exponential backoff
# - Result caching layer
# - Analytics tracking
# - Output formatters for 5 different formats
# Total: 200+ lines, hard to debug, breaks often
# MINIMAL (do this):
# - HTTP POST to search API
# - Format results
# - Done
# Total: 12 lines, easy to debug, rarely breaks
# If you need retries, add them as a SEPARATE composable workflow:
# ~/.pi-agent/workflows/retry_wrapper.yaml
name: retry_wrapper
steps:
- action: retry
max_attempts: 2
workflow: ${target_workflow}
input: ${input}Paso 4: Investigación multiplataforma como composición
Componga flujos de trabajo mínimos en un flujo de trabajo de investigación sin un marco.
# ~/.pi-agent/workflows/research.yaml
name: research
trigger: /research
steps:
- action: parallel
workflows:
- quick_search: ${input}
- reddit_search: ${input}
output: all_results
- action: format
template: |
## Google Results
${all_results[0]}
## Reddit Discussions
${all_results[1]}
# Usage: /research best database for side projects 2026
# Runs Google + Reddit search in parallel, formats combined outputEjemplo en Python
import requests, os
def pi_search(query: str, platform: str = 'google') -> str:
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': os.environ['SCAVIO_API_KEY'], 'Content-Type': 'application/json'},
json={'platform': platform, 'query': query}).json()
return '\n'.join(f"- {x['title']}: {x.get('snippet','')}" for x in r.get('organic',[])[:5])Ejemplo en JavaScript
async function piSearch(query, platform = 'google') {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST', headers: {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'},
body: JSON.stringify({platform, query})
});
return (await r.json()).organic?.slice(0,5).map(x => `- ${x.title}: ${x.snippet}`).join('\n');
}Salida esperada
Minimal, composable Pi Coding Agent workflows that do one thing well (search one platform) and compose into multi-platform research without over-engineering.