santismm-knowledge-mcp 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +62 -0
- package/content/CONVENTIONS.md +77 -0
- package/content/LICENSE +55 -0
- package/content/architectures/ai-workforce.json +280 -0
- package/content/architectures/customer-service-agent.json +292 -0
- package/content/architectures/enterprise-knowledge-assistant.json +292 -0
- package/content/architectures/operations-center.json +280 -0
- package/content/architectures/sales-copilot.json +280 -0
- package/content/governance/agentic-ai-governance-checklist.json +323 -0
- package/content/governance/audit-framework-for-agentic-systems.json +280 -0
- package/content/governance/enterprise-ai-governance-framework.json +277 -0
- package/content/governance/eu-ai-act.json +162 -0
- package/content/governance/human-oversight-and-accountability-policy.json +275 -0
- package/content/governance/iso-42001.json +161 -0
- package/content/governance/mitre-atlas.json +280 -0
- package/content/governance/nist-ai-rmf.json +161 -0
- package/content/governance/owasp-llm-top10.json +301 -0
- package/content/harness/HRN-001-definition-and-overview.es.md +76 -0
- package/content/harness/HRN-001-definition-and-overview.md +125 -0
- package/content/harness/HRN-001-definition-and-overview.pt.md +76 -0
- package/content/harness/HRN-002-a-brief-history-of-harness-engineering.es.md +83 -0
- package/content/harness/HRN-002-a-brief-history-of-harness-engineering.md +113 -0
- package/content/harness/HRN-002-a-brief-history-of-harness-engineering.pt.md +83 -0
- package/content/harness/HRN-003-the-harness-taxonomy.es.md +105 -0
- package/content/harness/HRN-003-the-harness-taxonomy.md +158 -0
- package/content/harness/HRN-003-the-harness-taxonomy.pt.md +105 -0
- package/content/harness/HRN-004-harness-engineering-principles.es.md +91 -0
- package/content/harness/HRN-004-harness-engineering-principles.md +135 -0
- package/content/harness/HRN-004-harness-engineering-principles.pt.md +91 -0
- package/content/harness/HRN-005-memory-in-agentic-systems.es.md +98 -0
- package/content/harness/HRN-005-memory-in-agentic-systems.md +145 -0
- package/content/harness/HRN-005-memory-in-agentic-systems.pt.md +98 -0
- package/content/harness/HRN-006-observability-for-agentic-systems.es.md +97 -0
- package/content/harness/HRN-006-observability-for-agentic-systems.md +139 -0
- package/content/harness/HRN-006-observability-for-agentic-systems.pt.md +97 -0
- package/content/harness/HRN-007-evaluation-of-agentic-systems.es.md +96 -0
- package/content/harness/HRN-007-evaluation-of-agentic-systems.md +145 -0
- package/content/harness/HRN-007-evaluation-of-agentic-systems.pt.md +96 -0
- package/content/harness/HRN-008-governance-within-the-harness.es.md +105 -0
- package/content/harness/HRN-008-governance-within-the-harness.md +146 -0
- package/content/harness/HRN-008-governance-within-the-harness.pt.md +105 -0
- package/content/harness/HRN-009-planning-and-goal-management.es.md +102 -0
- package/content/harness/HRN-009-planning-and-goal-management.md +142 -0
- package/content/harness/HRN-009-planning-and-goal-management.pt.md +102 -0
- package/content/harness/HRN-010-orchestration.es.md +107 -0
- package/content/harness/HRN-010-orchestration.md +149 -0
- package/content/harness/HRN-010-orchestration.pt.md +107 -0
- package/content/harness/HRN-011-security-for-agentic-systems.es.md +107 -0
- package/content/harness/HRN-011-security-for-agentic-systems.md +147 -0
- package/content/harness/HRN-011-security-for-agentic-systems.pt.md +107 -0
- package/content/harness/HRN-012-case-studies-in-harness-engineering.es.md +120 -0
- package/content/harness/HRN-012-case-studies-in-harness-engineering.md +157 -0
- package/content/harness/HRN-012-case-studies-in-harness-engineering.pt.md +120 -0
- package/content/harness/HRN-013-glossary.es.md +109 -0
- package/content/harness/HRN-013-glossary.md +124 -0
- package/content/harness/HRN-013-glossary.pt.md +109 -0
- package/content/harness/HRN-014-bibliography.es.md +89 -0
- package/content/harness/HRN-014-bibliography.md +109 -0
- package/content/harness/HRN-014-bibliography.pt.md +89 -0
- package/content/homeric/episodes/achilles-and-hector.json +139 -0
- package/content/homeric/episodes/aeolus-and-the-winds.json +131 -0
- package/content/homeric/episodes/agamemnons-murder.json +162 -0
- package/content/homeric/episodes/calypso-ogygia.json +157 -0
- package/content/homeric/episodes/catalogue-of-ships.json +177 -0
- package/content/homeric/episodes/cattle-of-the-sun.json +131 -0
- package/content/homeric/episodes/chryse-and-the-plague.json +131 -0
- package/content/homeric/episodes/cicones-at-ismarus.json +131 -0
- package/content/homeric/episodes/circe-on-aeaea.json +131 -0
- package/content/homeric/episodes/cyclops-polyphemus.json +162 -0
- package/content/homeric/episodes/laestrygonians.json +153 -0
- package/content/homeric/episodes/lotus-eaters.json +138 -0
- package/content/homeric/episodes/menelaus-and-proteus.json +130 -0
- package/content/homeric/episodes/nekyia.json +160 -0
- package/content/homeric/episodes/phaeacians-on-scheria.json +129 -0
- package/content/homeric/episodes/priams-ransom.json +131 -0
- package/content/homeric/episodes/return-to-ithaca.json +167 -0
- package/content/homeric/episodes/scylla-and-charybdis.json +131 -0
- package/content/homeric/episodes/suitors-ambush-at-asteris.json +131 -0
- package/content/homeric/episodes/telemachus-at-pylos.json +130 -0
- package/content/homeric/episodes/telemachus-in-sparta.json +130 -0
- package/content/homeric/episodes/the-achaean-camp.json +138 -0
- package/content/homeric/episodes/the-sirens.json +129 -0
- package/content/homeric/episodes/wooden-horse.json +168 -0
- package/content/homeric/places/aeaea.json +129 -0
- package/content/homeric/places/aeolia.json +161 -0
- package/content/homeric/places/asteris.json +120 -0
- package/content/homeric/places/aulis.json +122 -0
- package/content/homeric/places/cape-malea.json +126 -0
- package/content/homeric/places/chryse.json +120 -0
- package/content/homeric/places/dodona.json +129 -0
- package/content/homeric/places/dulichium.json +177 -0
- package/content/homeric/places/egypt.json +125 -0
- package/content/homeric/places/ephyra-acheron.json +127 -0
- package/content/homeric/places/hellespont.json +125 -0
- package/content/homeric/places/house-of-hades.json +91 -0
- package/content/homeric/places/ismarus.json +120 -0
- package/content/homeric/places/ithaca.json +240 -0
- package/content/homeric/places/knossos.json +132 -0
- package/content/homeric/places/laestrygonia.json +168 -0
- package/content/homeric/places/land-of-the-cyclopes.json +169 -0
- package/content/homeric/places/land-of-the-lotus-eaters.json +122 -0
- package/content/homeric/places/mount-ida.json +126 -0
- package/content/homeric/places/mycenae.json +152 -0
- package/content/homeric/places/ogygia.json +125 -0
- package/content/homeric/places/pharos.json +120 -0
- package/content/homeric/places/planctae.json +77 -0
- package/content/homeric/places/pylos.json +188 -0
- package/content/homeric/places/same.json +177 -0
- package/content/homeric/places/scheria.json +129 -0
- package/content/homeric/places/scylla-and-charybdis.json +135 -0
- package/content/homeric/places/sirens.json +127 -0
- package/content/homeric/places/sparta.json +179 -0
- package/content/homeric/places/tenedos.json +129 -0
- package/content/homeric/places/thrinacia.json +116 -0
- package/content/homeric/places/tiryns.json +123 -0
- package/content/homeric/places/troy.json +224 -0
- package/content/homeric/places/zacynthus.json +126 -0
- package/content/homeric/routes/achaean-expedition.json +132 -0
- package/content/homeric/routes/nostoi-of-the-others.json +205 -0
- package/content/homeric/routes/odysseus-nostos.json +307 -0
- package/content/homeric/routes/telemachy.json +134 -0
- package/content/knowledge/agent-memory.json +153 -0
- package/content/knowledge/agentic-ai.json +158 -0
- package/content/knowledge/agentic-evaluation.json +156 -0
- package/content/knowledge/agentic-threat-model.json +287 -0
- package/content/knowledge/ai-agent.json +153 -0
- package/content/knowledge/ai-cyberdefense.json +274 -0
- package/content/knowledge/ai-governance.json +155 -0
- package/content/knowledge/ai-observability.json +156 -0
- package/content/knowledge/context-engineering.json +153 -0
- package/content/knowledge/embeddings.json +153 -0
- package/content/knowledge/enterprise-rag.json +154 -0
- package/content/knowledge/fine-tuning.json +153 -0
- package/content/knowledge/foundation-models.json +154 -0
- package/content/knowledge/guardrails.json +153 -0
- package/content/knowledge/harness-engineering.json +158 -0
- package/content/knowledge/human-in-the-loop.json +153 -0
- package/content/knowledge/mcp-security.json +284 -0
- package/content/knowledge/model-context-protocol.json +154 -0
- package/content/knowledge/multi-agent-architecture.json +153 -0
- package/content/knowledge/prompt-engineering.json +153 -0
- package/content/knowledge/prompt-injection.json +138 -0
- package/content/knowledge/reasoning-models.json +153 -0
- package/content/knowledge/tool-use.json +156 -0
- package/content/library/cognitive-architecture-emergent-ai.md +15 -0
- package/content/library/devready-ep108-ai-customer-experiences.md +14 -0
- package/content/library/how-genai-impact-business.md +12 -0
- package/content/library/lmm-reshaping-industries-2024.md +12 -0
- package/content/library/rethinking-ai-pause.md +12 -0
- package/content/library/rise-of-agentic-ai.md +16 -0
- package/content/library/self-improving-autonomous-ai.md +16 -0
- package/content/library/the-stopwatch-and-the-exam.md +12 -0
- package/content/library/unlock-gpt4-secrets.md +12 -0
- package/content/library/vibe-coding-enterprise.md +15 -0
- package/content/library/video-transformando-negocios-genai.md +14 -0
- package/content/library/video-volando-alto-sky-airlines.md +13 -0
- package/content/matrix/agentic-control-matrix.json +967 -0
- package/content/patterns/attributed-memory.json +237 -0
- package/content/patterns/context-compression.json +304 -0
- package/content/patterns/egress-allowlist.json +310 -0
- package/content/patterns/evaluator-optimizer.json +180 -0
- package/content/patterns/goal-decomposition.json +290 -0
- package/content/patterns/human-approval-gate.json +311 -0
- package/content/patterns/human-escalation.json +288 -0
- package/content/patterns/least-privilege-tooling.json +333 -0
- package/content/patterns/long-term-memory.json +305 -0
- package/content/patterns/orchestrator-workers.json +202 -0
- package/content/patterns/parallelization.json +180 -0
- package/content/patterns/prompt-chaining.json +181 -0
- package/content/patterns/recovery-strategy.json +305 -0
- package/content/patterns/reflection.json +298 -0
- package/content/patterns/routing.json +294 -0
- package/content/patterns/sandboxed-execution.json +311 -0
- package/content/patterns/semantic-caching.json +201 -0
- package/content/patterns/supervisor-agent.json +290 -0
- package/content/patterns/task-prioritization.json +307 -0
- package/dist/content.js +181 -0
- package/dist/index.js +27 -0
- package/dist/shape.js +649 -0
- package/dist/tools.js +652 -0
- package/package.json +47 -0
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "parallelization",
|
|
3
|
+
"category": "orchestration",
|
|
4
|
+
"updated": "2026-06-21",
|
|
5
|
+
"version": "1.0",
|
|
6
|
+
"technologies": ["LangGraph", "Async runtimes", "OpenAI Agents SDK", "Map-reduce frameworks"],
|
|
7
|
+
"related": ["prompt-chaining", "orchestrator-workers", "evaluator-optimizer"],
|
|
8
|
+
"references": [
|
|
9
|
+
{ "title": "Anthropic — Building Effective Agents (2024)", "url": "https://www.anthropic.com/research/building-effective-agents" }
|
|
10
|
+
],
|
|
11
|
+
"evidence": {
|
|
12
|
+
"evidenceLevel": "industry_observation",
|
|
13
|
+
"confidenceLevel": "high",
|
|
14
|
+
"sourceType": ["industry_observation"]
|
|
15
|
+
},
|
|
16
|
+
"locales": {
|
|
17
|
+
"en": {
|
|
18
|
+
"name": "Parallelization",
|
|
19
|
+
"summary": "Parallelization runs multiple LLM calls at the same time and aggregates the results. Two flavors: sectioning (split a task into independent subtasks run in parallel) and voting (run the same task several times to improve reliability or coverage). It cuts latency and can raise quality.",
|
|
20
|
+
"problem": "Running independent subtasks one after another wastes time, and a single sample of a hard task can be unreliable.",
|
|
21
|
+
"context": "Use parallelization when subtasks are independent (sectioning), or when multiple attempts at the same task improve confidence or coverage (voting).",
|
|
22
|
+
"solution": [
|
|
23
|
+
"Sectioning: split the work into independent pieces, run them concurrently, and combine the outputs. Voting: run the same prompt multiple times (or with variations) and aggregate by majority, union or a judge.",
|
|
24
|
+
"Both reduce wall-clock time versus sequential execution; voting additionally trades extra cost for higher reliability on tasks where a single sample is risky."
|
|
25
|
+
],
|
|
26
|
+
"components": ["Task splitter", "Concurrent workers", "Aggregator (merge / vote / judge)"],
|
|
27
|
+
"benefits": [
|
|
28
|
+
"Lower latency by running calls concurrently.",
|
|
29
|
+
"Voting improves reliability and coverage.",
|
|
30
|
+
"Each parallel call stays simple and focused."
|
|
31
|
+
],
|
|
32
|
+
"risks": [
|
|
33
|
+
"Voting multiplies token cost.",
|
|
34
|
+
"Aggregation logic can be tricky to get right.",
|
|
35
|
+
"Subtasks assumed independent may actually interact."
|
|
36
|
+
],
|
|
37
|
+
"whenNot": [
|
|
38
|
+
"When subtasks depend on each other's output — chain them.",
|
|
39
|
+
"When cost is tight and a single call suffices.",
|
|
40
|
+
"When results cannot be aggregated meaningfully."
|
|
41
|
+
],
|
|
42
|
+
"examples": [
|
|
43
|
+
"Summarizing many documents at once, then merging the summaries.",
|
|
44
|
+
"Running a safety check in parallel with the main response.",
|
|
45
|
+
"Sampling an answer several times and taking the majority."
|
|
46
|
+
],
|
|
47
|
+
"kpis": [
|
|
48
|
+
{ "metric": "Latency reduction vs. sequential", "note": "Wall-clock saved by running calls concurrently; the whole point of the pattern." },
|
|
49
|
+
{ "metric": "Aggregation quality", "note": "Whether merging the parallel outputs preserves correctness — the hard part is the join, not the fan-out." },
|
|
50
|
+
{ "metric": "Concurrency cost", "note": "Total tokens across all parallel branches; you trade money for speed, so watch the multiplier." },
|
|
51
|
+
{ "metric": "Rate-limit / throttle rate", "note": "How often parallel calls hit provider rate limits, which silently serializes or fails them." }
|
|
52
|
+
],
|
|
53
|
+
"failureModes": [
|
|
54
|
+
"Aggregation errors: parallel results are correct individually but combined wrongly (double-counting, contradictions).",
|
|
55
|
+
"Rate limiting turns intended parallelism back into slow, serialized calls.",
|
|
56
|
+
"Cost surprise: N parallel branches cost N× even when only one result is used.",
|
|
57
|
+
"Partial failure handling: one branch fails and the aggregator either blocks or silently drops it."
|
|
58
|
+
],
|
|
59
|
+
"lessons": [
|
|
60
|
+
"Design the aggregation step first — combining results well is harder than splitting the work.",
|
|
61
|
+
"Respect provider rate limits with batching or backoff, or parallelism evaporates.",
|
|
62
|
+
"Only parallelize independent sub-tasks; dependencies force a sequence anyway.",
|
|
63
|
+
"Decide explicitly how partial failures are handled before they happen in production."
|
|
64
|
+
],
|
|
65
|
+
"faqs": [
|
|
66
|
+
{ "q": "What is the difference between sectioning and voting?", "a": "Sectioning splits one task into different independent subtasks; voting runs the same task multiple times to aggregate for reliability." },
|
|
67
|
+
{ "q": "Does voting always improve quality?", "a": "Often, on tasks where samples vary, but it multiplies cost. Reserve it for high-stakes steps where a single sample is risky." },
|
|
68
|
+
{ "q": "How do I combine parallel results?", "a": "Depending on the case: concatenate sections, take a majority vote, union the findings, or use a judge model to synthesize." }
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
"es": {
|
|
72
|
+
"name": "Paralelización (Parallelization)",
|
|
73
|
+
"summary": "La paralelización ejecuta varias llamadas al LLM a la vez y agrega los resultados. Dos variantes: seccionado (dividir una tarea en subtareas independientes en paralelo) y votación (ejecutar la misma tarea varias veces para mejorar fiabilidad o cobertura). Reduce la latencia y puede subir la calidad.",
|
|
74
|
+
"problem": "Ejecutar subtareas independientes una tras otra desperdicia tiempo, y una sola muestra de una tarea difícil puede ser poco fiable.",
|
|
75
|
+
"context": "Usa la paralelización cuando las subtareas son independientes (seccionado), o cuando varios intentos de la misma tarea mejoran la confianza o cobertura (votación).",
|
|
76
|
+
"solution": [
|
|
77
|
+
"Seccionado: divide el trabajo en piezas independientes, ejecútalas en paralelo y combina las salidas. Votación: ejecuta el mismo prompt varias veces (o con variaciones) y agrega por mayoría, unión o un juez.",
|
|
78
|
+
"Ambas reducen el tiempo real frente a la ejecución secuencial; la votación además cambia coste extra por mayor fiabilidad en tareas donde una sola muestra es arriesgada."
|
|
79
|
+
],
|
|
80
|
+
"components": ["Divisor de tareas", "Trabajadores concurrentes", "Agregador (fusión / voto / juez)"],
|
|
81
|
+
"benefits": [
|
|
82
|
+
"Menor latencia al ejecutar llamadas en concurrencia.",
|
|
83
|
+
"La votación mejora la fiabilidad y la cobertura.",
|
|
84
|
+
"Cada llamada paralela se mantiene simple y enfocada."
|
|
85
|
+
],
|
|
86
|
+
"risks": [
|
|
87
|
+
"La votación multiplica el coste de tokens.",
|
|
88
|
+
"La lógica de agregación puede ser difícil de acertar.",
|
|
89
|
+
"Subtareas asumidas independientes pueden interactuar en realidad."
|
|
90
|
+
],
|
|
91
|
+
"whenNot": [
|
|
92
|
+
"Cuando las subtareas dependen de la salida de otra: encadénalas.",
|
|
93
|
+
"Cuando el coste es ajustado y basta una sola llamada.",
|
|
94
|
+
"Cuando los resultados no se pueden agregar de forma significativa."
|
|
95
|
+
],
|
|
96
|
+
"examples": [
|
|
97
|
+
"Resumir muchos documentos a la vez y luego fusionar los resúmenes.",
|
|
98
|
+
"Ejecutar una comprobación de seguridad en paralelo con la respuesta principal.",
|
|
99
|
+
"Muestrear una respuesta varias veces y tomar la mayoría."
|
|
100
|
+
],
|
|
101
|
+
"kpis": [
|
|
102
|
+
{ "metric": "Reducción de latencia vs. secuencial", "note": "Tiempo ahorrado al ejecutar llamadas en paralelo; la razón de ser del patrón." },
|
|
103
|
+
{ "metric": "Calidad de la agregación", "note": "Si combinar las salidas paralelas preserva la corrección; lo difícil es la unión, no el fan-out." },
|
|
104
|
+
{ "metric": "Coste de concurrencia", "note": "Tokens totales de todas las ramas paralelas; cambias dinero por velocidad, vigila el multiplicador." },
|
|
105
|
+
{ "metric": "Tasa de límite de tasa / throttle", "note": "Con qué frecuencia las llamadas paralelas chocan con los límites del proveedor, que las serializa o falla en silencio." }
|
|
106
|
+
],
|
|
107
|
+
"failureModes": [
|
|
108
|
+
"Errores de agregación: resultados paralelos correctos por separado pero mal combinados (doble conteo, contradicciones).",
|
|
109
|
+
"El límite de tasa convierte el paralelismo previsto en llamadas lentas y serializadas.",
|
|
110
|
+
"Sorpresa de coste: N ramas paralelas cuestan N× aunque solo se use un resultado.",
|
|
111
|
+
"Manejo de fallo parcial: una rama falla y el agregador o se bloquea o la descarta en silencio."
|
|
112
|
+
],
|
|
113
|
+
"lessons": [
|
|
114
|
+
"Diseña primero el paso de agregación: combinar bien los resultados es más difícil que dividir el trabajo.",
|
|
115
|
+
"Respeta los límites de tasa del proveedor con batching o backoff, o el paralelismo se evapora.",
|
|
116
|
+
"Paraleliza solo subtareas independientes; las dependencias fuerzan una secuencia de todos modos.",
|
|
117
|
+
"Decide explícitamente cómo se manejan los fallos parciales antes de que ocurran en producción."
|
|
118
|
+
],
|
|
119
|
+
"faqs": [
|
|
120
|
+
{ "q": "¿Diferencia entre seccionado y votación?", "a": "El seccionado divide una tarea en subtareas independientes distintas; la votación ejecuta la misma tarea varias veces para agregar por fiabilidad." },
|
|
121
|
+
{ "q": "¿La votación siempre mejora la calidad?", "a": "A menudo, en tareas donde las muestras varían, pero multiplica el coste. Resérvala para pasos críticos donde una sola muestra es arriesgada." },
|
|
122
|
+
{ "q": "¿Cómo combino resultados paralelos?", "a": "Según el caso: concatenar secciones, tomar voto mayoritario, unir los hallazgos o usar un modelo juez para sintetizar." }
|
|
123
|
+
]
|
|
124
|
+
},
|
|
125
|
+
"pt": {
|
|
126
|
+
"name": "Paralelização (Parallelization)",
|
|
127
|
+
"summary": "A paralelização executa várias chamadas ao LLM ao mesmo tempo e agrega os resultados. Duas variantes: seccionamento (dividir uma tarefa em subtarefas independentes em paralelo) e votação (executar a mesma tarefa várias vezes para melhorar confiabilidade ou cobertura). Reduz a latência e pode aumentar a qualidade.",
|
|
128
|
+
"problem": "Executar subtarefas independentes uma após a outra desperdiça tempo, e uma única amostra de uma tarefa difícil pode ser pouco confiável.",
|
|
129
|
+
"context": "Use a paralelização quando as subtarefas são independentes (seccionamento), ou quando várias tentativas da mesma tarefa melhoram a confiança ou cobertura (votação).",
|
|
130
|
+
"solution": [
|
|
131
|
+
"Seccionamento: divida o trabalho em peças independentes, execute-as em paralelo e combine as saídas. Votação: execute o mesmo prompt várias vezes (ou com variações) e agregue por maioria, união ou um juiz.",
|
|
132
|
+
"Ambas reduzem o tempo real frente à execução sequencial; a votação além disso troca custo extra por maior confiabilidade em tarefas em que uma única amostra é arriscada."
|
|
133
|
+
],
|
|
134
|
+
"components": ["Divisor de tarefas", "Trabalhadores concorrentes", "Agregador (fusão / voto / juiz)"],
|
|
135
|
+
"benefits": [
|
|
136
|
+
"Menor latência ao executar chamadas em concorrência.",
|
|
137
|
+
"A votação melhora a confiabilidade e a cobertura.",
|
|
138
|
+
"Cada chamada paralela se mantém simples e focada."
|
|
139
|
+
],
|
|
140
|
+
"risks": [
|
|
141
|
+
"A votação multiplica o custo de tokens.",
|
|
142
|
+
"A lógica de agregação pode ser difícil de acertar.",
|
|
143
|
+
"Subtarefas assumidas independentes podem interagir na realidade."
|
|
144
|
+
],
|
|
145
|
+
"whenNot": [
|
|
146
|
+
"Quando as subtarefas dependem da saída de outra: encadeie-as.",
|
|
147
|
+
"Quando o custo é apertado e basta uma única chamada.",
|
|
148
|
+
"Quando os resultados não podem ser agregados de forma significativa."
|
|
149
|
+
],
|
|
150
|
+
"examples": [
|
|
151
|
+
"Resumir muitos documentos ao mesmo tempo e depois fundir os resumos.",
|
|
152
|
+
"Executar uma verificação de segurança em paralelo com a resposta principal.",
|
|
153
|
+
"Amostrar uma resposta várias vezes e tomar a maioria."
|
|
154
|
+
],
|
|
155
|
+
"kpis": [
|
|
156
|
+
{ "metric": "Redução de latência vs. sequencial", "note": "Tempo economizado ao executar chamadas em paralelo; a razão de ser do padrão." },
|
|
157
|
+
{ "metric": "Qualidade da agregação", "note": "Se combinar as saídas paralelas preserva a correção; o difícil é a junção, não o fan-out." },
|
|
158
|
+
{ "metric": "Custo de concorrência", "note": "Tokens totais de todas as ramificações paralelas; você troca dinheiro por velocidade, vigie o multiplicador." },
|
|
159
|
+
{ "metric": "Taxa de rate limit / throttle", "note": "Com que frequência as chamadas paralelas batem nos limites do provedor, que as serializa ou falha em silêncio." }
|
|
160
|
+
],
|
|
161
|
+
"failureModes": [
|
|
162
|
+
"Erros de agregação: resultados paralelos corretos isoladamente mas mal combinados (dupla contagem, contradições).",
|
|
163
|
+
"O rate limit transforma o paralelismo pretendido em chamadas lentas e serializadas.",
|
|
164
|
+
"Surpresa de custo: N ramificações paralelas custam N× mesmo quando só um resultado é usado.",
|
|
165
|
+
"Tratamento de falha parcial: uma ramificação falha e o agregador ou bloqueia ou a descarta em silêncio."
|
|
166
|
+
],
|
|
167
|
+
"lessons": [
|
|
168
|
+
"Projete primeiro o passo de agregação: combinar bem os resultados é mais difícil que dividir o trabalho.",
|
|
169
|
+
"Respeite os limites de taxa do provedor com batching ou backoff, ou o paralelismo evapora.",
|
|
170
|
+
"Paralelize só subtarefas independentes; dependências forçam uma sequência de qualquer forma.",
|
|
171
|
+
"Decida explicitamente como as falhas parciais são tratadas antes que ocorram em produção."
|
|
172
|
+
],
|
|
173
|
+
"faqs": [
|
|
174
|
+
{ "q": "Diferença entre seccionamento e votação?", "a": "O seccionamento divide uma tarefa em subtarefas independentes distintas; a votação executa a mesma tarefa várias vezes para agregar por confiabilidade." },
|
|
175
|
+
{ "q": "A votação sempre melhora a qualidade?", "a": "Muitas vezes, em tarefas em que as amostras variam, mas multiplica o custo. Reserve-a para passos críticos em que uma única amostra é arriscada." },
|
|
176
|
+
{ "q": "Como combino resultados paralelos?", "a": "Conforme o caso: concatenar seções, tomar voto majoritário, unir os achados ou usar um modelo juiz para sintetizar." }
|
|
177
|
+
]
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "prompt-chaining",
|
|
3
|
+
"category": "orchestration",
|
|
4
|
+
"updated": "2026-06-21",
|
|
5
|
+
"version": "1.0",
|
|
6
|
+
"featured": true,
|
|
7
|
+
"technologies": ["LangGraph", "OpenAI Agents SDK", "Claude Agent SDK", "Workflow engines"],
|
|
8
|
+
"related": ["routing", "orchestrator-workers", "evaluator-optimizer"],
|
|
9
|
+
"references": [
|
|
10
|
+
{ "title": "Anthropic — Building Effective Agents (2024)", "url": "https://www.anthropic.com/research/building-effective-agents" }
|
|
11
|
+
],
|
|
12
|
+
"evidence": {
|
|
13
|
+
"evidenceLevel": "industry_observation",
|
|
14
|
+
"confidenceLevel": "high",
|
|
15
|
+
"sourceType": ["industry_observation", "paper"]
|
|
16
|
+
},
|
|
17
|
+
"locales": {
|
|
18
|
+
"en": {
|
|
19
|
+
"name": "Prompt Chaining",
|
|
20
|
+
"summary": "Prompt chaining decomposes a task into a fixed sequence of LLM calls, where each step works on the output of the previous one. It trades a little latency for much higher accuracy and control, and is the simplest workflow pattern: use it whenever a task cleanly splits into ordered subtasks.",
|
|
21
|
+
"problem": "A single prompt asked to do several things at once produces lower-quality, harder-to-control output, and is difficult to debug when it goes wrong.",
|
|
22
|
+
"context": "Use prompt chaining when a task decomposes into a clear, ordered sequence of subtasks — for example outline, then draft, then edit — and each step benefits from the previous step's result.",
|
|
23
|
+
"solution": [
|
|
24
|
+
"Break the task into discrete steps and run one LLM call per step, passing each output to the next. Optionally add programmatic checks (gates) between steps to validate intermediate results before continuing.",
|
|
25
|
+
"Because each call has one focused job, prompts are simpler, outputs are more reliable, and failures are localized to a specific step that you can inspect and fix."
|
|
26
|
+
],
|
|
27
|
+
"components": ["Ordered steps", "Per-step prompt", "Inter-step gates / validation", "State passed between steps"],
|
|
28
|
+
"benefits": [
|
|
29
|
+
"Higher accuracy by giving each call one focused job.",
|
|
30
|
+
"Easier to debug — failures localize to a step.",
|
|
31
|
+
"Validation gates can catch errors between steps."
|
|
32
|
+
],
|
|
33
|
+
"risks": [
|
|
34
|
+
"Higher total latency from sequential calls.",
|
|
35
|
+
"Errors can compound down the chain if not checked.",
|
|
36
|
+
"Too many steps add cost and brittleness."
|
|
37
|
+
],
|
|
38
|
+
"whenNot": [
|
|
39
|
+
"When the task is simple enough for a single call.",
|
|
40
|
+
"When subtasks are independent — parallelize instead.",
|
|
41
|
+
"When the path is unknown up front — use an agent loop."
|
|
42
|
+
],
|
|
43
|
+
"examples": [
|
|
44
|
+
"Generate an outline, then write each section, then revise for tone.",
|
|
45
|
+
"Extract structured fields, then validate them, then summarize.",
|
|
46
|
+
"Translate a document, then check the translation against the source."
|
|
47
|
+
],
|
|
48
|
+
"kpis": [
|
|
49
|
+
{ "metric": "End-to-end success rate", "note": "Share of chains that produce a correct final result; errors compound across steps." },
|
|
50
|
+
{ "metric": "Per-step error rate", "note": "Failure rate at each link — a 95%-reliable step chained five times yields ~77% end to end." },
|
|
51
|
+
{ "metric": "Total latency & cost", "note": "Sum across every call in the chain; more steps mean more of both." },
|
|
52
|
+
{ "metric": "Recovery rate", "note": "How often a failed intermediate step is caught and corrected rather than silently propagated." }
|
|
53
|
+
],
|
|
54
|
+
"failureModes": [
|
|
55
|
+
"Error propagation: a mistake early in the chain corrupts every downstream step.",
|
|
56
|
+
"Latency and cost accumulation as the chain grows longer.",
|
|
57
|
+
"Brittle hand-offs when one step's output format doesn't match the next step's expected input.",
|
|
58
|
+
"Lost context across steps, so later links forget constraints set earlier."
|
|
59
|
+
],
|
|
60
|
+
"lessons": [
|
|
61
|
+
"Validate or gate-check between steps so errors are caught before they propagate.",
|
|
62
|
+
"Keep chains as short as the task allows; every extra step multiplies failure probability.",
|
|
63
|
+
"Pin the output contract of each step so hand-offs don't break silently.",
|
|
64
|
+
"Use chaining for genuinely sequential work; parallelize independent steps instead."
|
|
65
|
+
],
|
|
66
|
+
"faqs": [
|
|
67
|
+
{ "q": "How is prompt chaining different from an agent?", "a": "Prompt chaining follows a fixed, predefined sequence. An agent decides its own steps dynamically. Prefer chaining when the path is known in advance." },
|
|
68
|
+
{ "q": "When should I add gates between steps?", "a": "Whenever an intermediate result must meet a condition before proceeding — it stops errors from propagating down the chain." },
|
|
69
|
+
{ "q": "Does chaining increase cost?", "a": "Yes, modestly — more calls mean more tokens and latency — but the gain in reliability usually outweighs it for multi-part tasks." }
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
"es": {
|
|
73
|
+
"name": "Encadenamiento de Prompts (Prompt Chaining)",
|
|
74
|
+
"summary": "El encadenamiento de prompts descompone una tarea en una secuencia fija de llamadas al LLM, donde cada paso trabaja sobre la salida del anterior. Cambia algo de latencia por mucha más precisión y control, y es el patrón de flujo más simple: úsalo cuando una tarea se divide limpiamente en subtareas ordenadas.",
|
|
75
|
+
"problem": "Un solo prompt al que se le pide hacer varias cosas a la vez produce salidas de menor calidad, más difíciles de controlar y de depurar cuando fallan.",
|
|
76
|
+
"context": "Usa el encadenamiento cuando una tarea se descompone en una secuencia clara y ordenada de subtareas —por ejemplo esquema, luego borrador, luego edición— y cada paso se beneficia del resultado del anterior.",
|
|
77
|
+
"solution": [
|
|
78
|
+
"Divide la tarea en pasos discretos y ejecuta una llamada al LLM por paso, pasando cada salida a la siguiente. Opcionalmente añade comprobaciones programáticas (gates) entre pasos para validar resultados intermedios antes de continuar.",
|
|
79
|
+
"Como cada llamada tiene un único trabajo enfocado, los prompts son más simples, las salidas más fiables y los fallos quedan localizados en un paso concreto que puedes inspeccionar y corregir."
|
|
80
|
+
],
|
|
81
|
+
"components": ["Pasos ordenados", "Prompt por paso", "Gates / validación entre pasos", "Estado pasado entre pasos"],
|
|
82
|
+
"benefits": [
|
|
83
|
+
"Mayor precisión al dar a cada llamada un único trabajo enfocado.",
|
|
84
|
+
"Más fácil de depurar: los fallos se localizan en un paso.",
|
|
85
|
+
"Los gates de validación pueden atrapar errores entre pasos."
|
|
86
|
+
],
|
|
87
|
+
"risks": [
|
|
88
|
+
"Mayor latencia total por las llamadas secuenciales.",
|
|
89
|
+
"Los errores pueden acumularse en la cadena si no se comprueban.",
|
|
90
|
+
"Demasiados pasos añaden coste y fragilidad."
|
|
91
|
+
],
|
|
92
|
+
"whenNot": [
|
|
93
|
+
"Cuando la tarea es lo bastante simple para una sola llamada.",
|
|
94
|
+
"Cuando las subtareas son independientes: paraleliza en su lugar.",
|
|
95
|
+
"Cuando el camino no se conoce de antemano: usa un bucle de agente."
|
|
96
|
+
],
|
|
97
|
+
"examples": [
|
|
98
|
+
"Generar un esquema, luego escribir cada sección, luego revisar el tono.",
|
|
99
|
+
"Extraer campos estructurados, luego validarlos, luego resumir.",
|
|
100
|
+
"Traducir un documento, luego comprobar la traducción contra el original."
|
|
101
|
+
],
|
|
102
|
+
"kpis": [
|
|
103
|
+
{ "metric": "Tasa de éxito de extremo a extremo", "note": "Proporción de cadenas que producen un resultado final correcto; los errores se acumulan entre pasos." },
|
|
104
|
+
{ "metric": "Tasa de error por paso", "note": "Fallo en cada eslabón: un paso fiable al 95% encadenado cinco veces da ~77% de extremo a extremo." },
|
|
105
|
+
{ "metric": "Latencia y coste totales", "note": "Suma de todas las llamadas de la cadena; más pasos significan más de ambos." },
|
|
106
|
+
{ "metric": "Tasa de recuperación", "note": "Con qué frecuencia un paso intermedio fallido se detecta y corrige en vez de propagarse en silencio." }
|
|
107
|
+
],
|
|
108
|
+
"failureModes": [
|
|
109
|
+
"Propagación de errores: un fallo temprano en la cadena corrompe todos los pasos posteriores.",
|
|
110
|
+
"Acumulación de latencia y coste a medida que la cadena se alarga.",
|
|
111
|
+
"Transferencias frágiles cuando el formato de salida de un paso no coincide con la entrada esperada del siguiente.",
|
|
112
|
+
"Pérdida de contexto entre pasos, de modo que eslabones posteriores olvidan restricciones fijadas antes."
|
|
113
|
+
],
|
|
114
|
+
"lessons": [
|
|
115
|
+
"Valida o verifica entre pasos para detectar errores antes de que se propaguen.",
|
|
116
|
+
"Mantén las cadenas tan cortas como permita la tarea; cada paso extra multiplica la probabilidad de fallo.",
|
|
117
|
+
"Fija el contrato de salida de cada paso para que las transferencias no se rompan en silencio.",
|
|
118
|
+
"Usa el encadenamiento para trabajo genuinamente secuencial; paraleliza los pasos independientes."
|
|
119
|
+
],
|
|
120
|
+
"faqs": [
|
|
121
|
+
{ "q": "¿En qué se diferencia del agente?", "a": "El encadenamiento sigue una secuencia fija predefinida. Un agente decide sus propios pasos de forma dinámica. Prefiere el encadenamiento cuando el camino se conoce de antemano." },
|
|
122
|
+
{ "q": "¿Cuándo debo añadir gates entre pasos?", "a": "Siempre que un resultado intermedio deba cumplir una condición antes de seguir: evita que los errores se propaguen por la cadena." },
|
|
123
|
+
{ "q": "¿El encadenamiento aumenta el coste?", "a": "Sí, moderadamente —más llamadas significan más tokens y latencia— pero la ganancia en fiabilidad suele compensarlo en tareas de varias partes." }
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
"pt": {
|
|
127
|
+
"name": "Encadeamento de Prompts (Prompt Chaining)",
|
|
128
|
+
"summary": "O encadeamento de prompts decompõe uma tarefa numa sequência fixa de chamadas ao LLM, em que cada passo trabalha sobre a saída do anterior. Troca um pouco de latência por muito mais precisão e controle, e é o padrão de fluxo mais simples: use-o quando uma tarefa se divide limpamente em subtarefas ordenadas.",
|
|
129
|
+
"problem": "Um único prompt ao qual se pede fazer várias coisas ao mesmo tempo produz saídas de menor qualidade, mais difíceis de controlar e de depurar quando falham.",
|
|
130
|
+
"context": "Use o encadeamento quando uma tarefa se decompõe numa sequência clara e ordenada de subtarefas — por exemplo esboço, depois rascunho, depois edição — e cada passo se beneficia do resultado do anterior.",
|
|
131
|
+
"solution": [
|
|
132
|
+
"Divida a tarefa em passos discretos e execute uma chamada ao LLM por passo, passando cada saída à seguinte. Opcionalmente adicione verificações programáticas (gates) entre passos para validar resultados intermediários antes de continuar.",
|
|
133
|
+
"Como cada chamada tem um único trabalho focado, os prompts são mais simples, as saídas mais confiáveis e as falhas ficam localizadas num passo concreto que você pode inspecionar e corrigir."
|
|
134
|
+
],
|
|
135
|
+
"components": ["Passos ordenados", "Prompt por passo", "Gates / validação entre passos", "Estado passado entre passos"],
|
|
136
|
+
"benefits": [
|
|
137
|
+
"Maior precisão ao dar a cada chamada um único trabalho focado.",
|
|
138
|
+
"Mais fácil de depurar: as falhas se localizam num passo.",
|
|
139
|
+
"Os gates de validação podem capturar erros entre passos."
|
|
140
|
+
],
|
|
141
|
+
"risks": [
|
|
142
|
+
"Maior latência total pelas chamadas sequenciais.",
|
|
143
|
+
"Os erros podem se acumular na cadeia se não forem verificados.",
|
|
144
|
+
"Passos demais adicionam custo e fragilidade."
|
|
145
|
+
],
|
|
146
|
+
"whenNot": [
|
|
147
|
+
"Quando a tarefa é simples o bastante para uma única chamada.",
|
|
148
|
+
"Quando as subtarefas são independentes: paralelize em vez disso.",
|
|
149
|
+
"Quando o caminho não é conhecido de antemão: use um laço de agente."
|
|
150
|
+
],
|
|
151
|
+
"examples": [
|
|
152
|
+
"Gerar um esboço, depois escrever cada seção, depois revisar o tom.",
|
|
153
|
+
"Extrair campos estruturados, depois validá-los, depois resumir.",
|
|
154
|
+
"Traduzir um documento, depois verificar a tradução contra o original."
|
|
155
|
+
],
|
|
156
|
+
"kpis": [
|
|
157
|
+
{ "metric": "Taxa de sucesso ponta a ponta", "note": "Proporção de cadeias que produzem um resultado final correto; os erros se acumulam entre passos." },
|
|
158
|
+
{ "metric": "Taxa de erro por passo", "note": "Falha em cada elo: um passo confiável a 95% encadeado cinco vezes dá ~77% ponta a ponta." },
|
|
159
|
+
{ "metric": "Latência e custo totais", "note": "Soma de todas as chamadas da cadeia; mais passos significam mais de ambos." },
|
|
160
|
+
{ "metric": "Taxa de recuperação", "note": "Com que frequência um passo intermediário falho é detectado e corrigido em vez de propagado em silêncio." }
|
|
161
|
+
],
|
|
162
|
+
"failureModes": [
|
|
163
|
+
"Propagação de erros: uma falha cedo na cadeia corrompe todos os passos seguintes.",
|
|
164
|
+
"Acúmulo de latência e custo à medida que a cadeia se alonga.",
|
|
165
|
+
"Transferências frágeis quando o formato de saída de um passo não coincide com a entrada esperada do seguinte.",
|
|
166
|
+
"Perda de contexto entre passos, de modo que elos posteriores esquecem restrições fixadas antes."
|
|
167
|
+
],
|
|
168
|
+
"lessons": [
|
|
169
|
+
"Valide ou verifique entre passos para detectar erros antes que se propaguem.",
|
|
170
|
+
"Mantenha as cadeias tão curtas quanto a tarefa permitir; cada passo extra multiplica a probabilidade de falha.",
|
|
171
|
+
"Fixe o contrato de saída de cada passo para que as transferências não quebrem em silêncio.",
|
|
172
|
+
"Use o encadeamento para trabalho genuinamente sequencial; paralelize os passos independentes."
|
|
173
|
+
],
|
|
174
|
+
"faqs": [
|
|
175
|
+
{ "q": "Como difere de um agente?", "a": "O encadeamento segue uma sequência fixa predefinida. Um agente decide seus próprios passos de forma dinâmica. Prefira o encadeamento quando o caminho é conhecido de antemão." },
|
|
176
|
+
{ "q": "Quando devo adicionar gates entre passos?", "a": "Sempre que um resultado intermediário precise cumprir uma condição antes de prosseguir: evita que os erros se propaguem pela cadeia." },
|
|
177
|
+
{ "q": "O encadeamento aumenta o custo?", "a": "Sim, moderadamente — mais chamadas significam mais tokens e latência — mas o ganho em confiabilidade costuma compensar em tarefas de várias partes." }
|
|
178
|
+
]
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|