Procesamiento masivo con Message Batches API, custom_id unico por request y fragmentacion selectiva de fallos parciales.
Para cargas no interactivas (auditorías, backfills, evaluaciones de regresión, extracciones estructuradas masivas), la Message Batches API procesa miles de requests offline a aproximadamente 50% del costo del modo real-time. Cada request lleva un custom_id único que correlaciona request con response y aísla los fallos parciales: si una request falla, las demás siguen su curso y se identifican exactamente cuáles reprocesar.
Escenarios objetivo: CI/CD Automation y Structured Extraction.
Pagar tarifa real-time por trabajo offline es desperdicio puro. Y procesar 10000 prompts uno por uno con un for rompe los rate limits, no maneja fallos parciales y tarda horas. El batch es el patrón correcto: 50% de ahorro, aislamiento de fallos por request y escalabilidad real. Sin custom_id, un fallo parcial obliga a reprocesar todo el lote y no hay forma fiable de mapear cada response a su input.
custom_id único.create → poll processing_status → results.ended con éxitos parciales (algunas requests succeeded, otras errored).custom_id es la única clave para mapear response a input; duplicarlo introduce ambigüedad irresoluble.errored (uno de los 4 result types oficiales succeeded | errored | canceled | expired [DOC]; las invalid_request_error exigen corregir el body antes de reenviar), identificadas por su custom_id, nunca todo el batch.batch = client.messages.batches.create(
requests=[
{"custom_id": f"audit-{i}", "params": {...}}
for i, _ in enumerate(items)
]
)
while batch.processing_status != "ended":
sleep(30)
batch = client.messages.batches.retrieve(batch.id)
for r in client.messages.batches.results(batch.id):
save(r.custom_id, r.result)for item in ten_thousand_items:
r = client.messages.create(**params(item)) # tarifa real-time
save(r) # sin custom_id, rompe rate limitsProcesa cada item en modo real-time, paga el doble, no aísla fallos parciales y se estrella contra los rate limits.
create → poll → results.custom_id como clave de correlación request↔response.errored para recuperar fallos parciales sin reprocesar el lote completo.message batches, batch processing, custom_id, offline batch.katas-multipass-prompt-chainingkatas-validation-retry-feedbackkatas-confidence-stratified-samplingCapas del packet, cargables bajo demanda (disciplina ICM: una capa por vez, nunca todas juntas): knowledge/ cuerpo de conocimiento · prompts/ prompts listos · examples/ salida de ejemplo · agents/ subagentes del packet · templates/ plantilla de output.
e8f986b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.