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.
Files changed (182) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +62 -0
  3. package/content/CONVENTIONS.md +77 -0
  4. package/content/LICENSE +55 -0
  5. package/content/architectures/ai-workforce.json +280 -0
  6. package/content/architectures/customer-service-agent.json +292 -0
  7. package/content/architectures/enterprise-knowledge-assistant.json +292 -0
  8. package/content/architectures/operations-center.json +280 -0
  9. package/content/architectures/sales-copilot.json +280 -0
  10. package/content/governance/agentic-ai-governance-checklist.json +323 -0
  11. package/content/governance/audit-framework-for-agentic-systems.json +280 -0
  12. package/content/governance/enterprise-ai-governance-framework.json +277 -0
  13. package/content/governance/eu-ai-act.json +162 -0
  14. package/content/governance/human-oversight-and-accountability-policy.json +275 -0
  15. package/content/governance/iso-42001.json +161 -0
  16. package/content/governance/mitre-atlas.json +280 -0
  17. package/content/governance/nist-ai-rmf.json +161 -0
  18. package/content/governance/owasp-llm-top10.json +301 -0
  19. package/content/harness/HRN-001-definition-and-overview.es.md +76 -0
  20. package/content/harness/HRN-001-definition-and-overview.md +125 -0
  21. package/content/harness/HRN-001-definition-and-overview.pt.md +76 -0
  22. package/content/harness/HRN-002-a-brief-history-of-harness-engineering.es.md +83 -0
  23. package/content/harness/HRN-002-a-brief-history-of-harness-engineering.md +113 -0
  24. package/content/harness/HRN-002-a-brief-history-of-harness-engineering.pt.md +83 -0
  25. package/content/harness/HRN-003-the-harness-taxonomy.es.md +105 -0
  26. package/content/harness/HRN-003-the-harness-taxonomy.md +158 -0
  27. package/content/harness/HRN-003-the-harness-taxonomy.pt.md +105 -0
  28. package/content/harness/HRN-004-harness-engineering-principles.es.md +91 -0
  29. package/content/harness/HRN-004-harness-engineering-principles.md +135 -0
  30. package/content/harness/HRN-004-harness-engineering-principles.pt.md +91 -0
  31. package/content/harness/HRN-005-memory-in-agentic-systems.es.md +98 -0
  32. package/content/harness/HRN-005-memory-in-agentic-systems.md +145 -0
  33. package/content/harness/HRN-005-memory-in-agentic-systems.pt.md +98 -0
  34. package/content/harness/HRN-006-observability-for-agentic-systems.es.md +97 -0
  35. package/content/harness/HRN-006-observability-for-agentic-systems.md +139 -0
  36. package/content/harness/HRN-006-observability-for-agentic-systems.pt.md +97 -0
  37. package/content/harness/HRN-007-evaluation-of-agentic-systems.es.md +96 -0
  38. package/content/harness/HRN-007-evaluation-of-agentic-systems.md +145 -0
  39. package/content/harness/HRN-007-evaluation-of-agentic-systems.pt.md +96 -0
  40. package/content/harness/HRN-008-governance-within-the-harness.es.md +105 -0
  41. package/content/harness/HRN-008-governance-within-the-harness.md +146 -0
  42. package/content/harness/HRN-008-governance-within-the-harness.pt.md +105 -0
  43. package/content/harness/HRN-009-planning-and-goal-management.es.md +102 -0
  44. package/content/harness/HRN-009-planning-and-goal-management.md +142 -0
  45. package/content/harness/HRN-009-planning-and-goal-management.pt.md +102 -0
  46. package/content/harness/HRN-010-orchestration.es.md +107 -0
  47. package/content/harness/HRN-010-orchestration.md +149 -0
  48. package/content/harness/HRN-010-orchestration.pt.md +107 -0
  49. package/content/harness/HRN-011-security-for-agentic-systems.es.md +107 -0
  50. package/content/harness/HRN-011-security-for-agentic-systems.md +147 -0
  51. package/content/harness/HRN-011-security-for-agentic-systems.pt.md +107 -0
  52. package/content/harness/HRN-012-case-studies-in-harness-engineering.es.md +120 -0
  53. package/content/harness/HRN-012-case-studies-in-harness-engineering.md +157 -0
  54. package/content/harness/HRN-012-case-studies-in-harness-engineering.pt.md +120 -0
  55. package/content/harness/HRN-013-glossary.es.md +109 -0
  56. package/content/harness/HRN-013-glossary.md +124 -0
  57. package/content/harness/HRN-013-glossary.pt.md +109 -0
  58. package/content/harness/HRN-014-bibliography.es.md +89 -0
  59. package/content/harness/HRN-014-bibliography.md +109 -0
  60. package/content/harness/HRN-014-bibliography.pt.md +89 -0
  61. package/content/homeric/episodes/achilles-and-hector.json +139 -0
  62. package/content/homeric/episodes/aeolus-and-the-winds.json +131 -0
  63. package/content/homeric/episodes/agamemnons-murder.json +162 -0
  64. package/content/homeric/episodes/calypso-ogygia.json +157 -0
  65. package/content/homeric/episodes/catalogue-of-ships.json +177 -0
  66. package/content/homeric/episodes/cattle-of-the-sun.json +131 -0
  67. package/content/homeric/episodes/chryse-and-the-plague.json +131 -0
  68. package/content/homeric/episodes/cicones-at-ismarus.json +131 -0
  69. package/content/homeric/episodes/circe-on-aeaea.json +131 -0
  70. package/content/homeric/episodes/cyclops-polyphemus.json +162 -0
  71. package/content/homeric/episodes/laestrygonians.json +153 -0
  72. package/content/homeric/episodes/lotus-eaters.json +138 -0
  73. package/content/homeric/episodes/menelaus-and-proteus.json +130 -0
  74. package/content/homeric/episodes/nekyia.json +160 -0
  75. package/content/homeric/episodes/phaeacians-on-scheria.json +129 -0
  76. package/content/homeric/episodes/priams-ransom.json +131 -0
  77. package/content/homeric/episodes/return-to-ithaca.json +167 -0
  78. package/content/homeric/episodes/scylla-and-charybdis.json +131 -0
  79. package/content/homeric/episodes/suitors-ambush-at-asteris.json +131 -0
  80. package/content/homeric/episodes/telemachus-at-pylos.json +130 -0
  81. package/content/homeric/episodes/telemachus-in-sparta.json +130 -0
  82. package/content/homeric/episodes/the-achaean-camp.json +138 -0
  83. package/content/homeric/episodes/the-sirens.json +129 -0
  84. package/content/homeric/episodes/wooden-horse.json +168 -0
  85. package/content/homeric/places/aeaea.json +129 -0
  86. package/content/homeric/places/aeolia.json +161 -0
  87. package/content/homeric/places/asteris.json +120 -0
  88. package/content/homeric/places/aulis.json +122 -0
  89. package/content/homeric/places/cape-malea.json +126 -0
  90. package/content/homeric/places/chryse.json +120 -0
  91. package/content/homeric/places/dodona.json +129 -0
  92. package/content/homeric/places/dulichium.json +177 -0
  93. package/content/homeric/places/egypt.json +125 -0
  94. package/content/homeric/places/ephyra-acheron.json +127 -0
  95. package/content/homeric/places/hellespont.json +125 -0
  96. package/content/homeric/places/house-of-hades.json +91 -0
  97. package/content/homeric/places/ismarus.json +120 -0
  98. package/content/homeric/places/ithaca.json +240 -0
  99. package/content/homeric/places/knossos.json +132 -0
  100. package/content/homeric/places/laestrygonia.json +168 -0
  101. package/content/homeric/places/land-of-the-cyclopes.json +169 -0
  102. package/content/homeric/places/land-of-the-lotus-eaters.json +122 -0
  103. package/content/homeric/places/mount-ida.json +126 -0
  104. package/content/homeric/places/mycenae.json +152 -0
  105. package/content/homeric/places/ogygia.json +125 -0
  106. package/content/homeric/places/pharos.json +120 -0
  107. package/content/homeric/places/planctae.json +77 -0
  108. package/content/homeric/places/pylos.json +188 -0
  109. package/content/homeric/places/same.json +177 -0
  110. package/content/homeric/places/scheria.json +129 -0
  111. package/content/homeric/places/scylla-and-charybdis.json +135 -0
  112. package/content/homeric/places/sirens.json +127 -0
  113. package/content/homeric/places/sparta.json +179 -0
  114. package/content/homeric/places/tenedos.json +129 -0
  115. package/content/homeric/places/thrinacia.json +116 -0
  116. package/content/homeric/places/tiryns.json +123 -0
  117. package/content/homeric/places/troy.json +224 -0
  118. package/content/homeric/places/zacynthus.json +126 -0
  119. package/content/homeric/routes/achaean-expedition.json +132 -0
  120. package/content/homeric/routes/nostoi-of-the-others.json +205 -0
  121. package/content/homeric/routes/odysseus-nostos.json +307 -0
  122. package/content/homeric/routes/telemachy.json +134 -0
  123. package/content/knowledge/agent-memory.json +153 -0
  124. package/content/knowledge/agentic-ai.json +158 -0
  125. package/content/knowledge/agentic-evaluation.json +156 -0
  126. package/content/knowledge/agentic-threat-model.json +287 -0
  127. package/content/knowledge/ai-agent.json +153 -0
  128. package/content/knowledge/ai-cyberdefense.json +274 -0
  129. package/content/knowledge/ai-governance.json +155 -0
  130. package/content/knowledge/ai-observability.json +156 -0
  131. package/content/knowledge/context-engineering.json +153 -0
  132. package/content/knowledge/embeddings.json +153 -0
  133. package/content/knowledge/enterprise-rag.json +154 -0
  134. package/content/knowledge/fine-tuning.json +153 -0
  135. package/content/knowledge/foundation-models.json +154 -0
  136. package/content/knowledge/guardrails.json +153 -0
  137. package/content/knowledge/harness-engineering.json +158 -0
  138. package/content/knowledge/human-in-the-loop.json +153 -0
  139. package/content/knowledge/mcp-security.json +284 -0
  140. package/content/knowledge/model-context-protocol.json +154 -0
  141. package/content/knowledge/multi-agent-architecture.json +153 -0
  142. package/content/knowledge/prompt-engineering.json +153 -0
  143. package/content/knowledge/prompt-injection.json +138 -0
  144. package/content/knowledge/reasoning-models.json +153 -0
  145. package/content/knowledge/tool-use.json +156 -0
  146. package/content/library/cognitive-architecture-emergent-ai.md +15 -0
  147. package/content/library/devready-ep108-ai-customer-experiences.md +14 -0
  148. package/content/library/how-genai-impact-business.md +12 -0
  149. package/content/library/lmm-reshaping-industries-2024.md +12 -0
  150. package/content/library/rethinking-ai-pause.md +12 -0
  151. package/content/library/rise-of-agentic-ai.md +16 -0
  152. package/content/library/self-improving-autonomous-ai.md +16 -0
  153. package/content/library/the-stopwatch-and-the-exam.md +12 -0
  154. package/content/library/unlock-gpt4-secrets.md +12 -0
  155. package/content/library/vibe-coding-enterprise.md +15 -0
  156. package/content/library/video-transformando-negocios-genai.md +14 -0
  157. package/content/library/video-volando-alto-sky-airlines.md +13 -0
  158. package/content/matrix/agentic-control-matrix.json +967 -0
  159. package/content/patterns/attributed-memory.json +237 -0
  160. package/content/patterns/context-compression.json +304 -0
  161. package/content/patterns/egress-allowlist.json +310 -0
  162. package/content/patterns/evaluator-optimizer.json +180 -0
  163. package/content/patterns/goal-decomposition.json +290 -0
  164. package/content/patterns/human-approval-gate.json +311 -0
  165. package/content/patterns/human-escalation.json +288 -0
  166. package/content/patterns/least-privilege-tooling.json +333 -0
  167. package/content/patterns/long-term-memory.json +305 -0
  168. package/content/patterns/orchestrator-workers.json +202 -0
  169. package/content/patterns/parallelization.json +180 -0
  170. package/content/patterns/prompt-chaining.json +181 -0
  171. package/content/patterns/recovery-strategy.json +305 -0
  172. package/content/patterns/reflection.json +298 -0
  173. package/content/patterns/routing.json +294 -0
  174. package/content/patterns/sandboxed-execution.json +311 -0
  175. package/content/patterns/semantic-caching.json +201 -0
  176. package/content/patterns/supervisor-agent.json +290 -0
  177. package/content/patterns/task-prioritization.json +307 -0
  178. package/dist/content.js +181 -0
  179. package/dist/index.js +27 -0
  180. package/dist/shape.js +649 -0
  181. package/dist/tools.js +652 -0
  182. package/package.json +47 -0
@@ -0,0 +1,305 @@
1
+ {
2
+ "slug": "recovery-strategy",
3
+ "category": "reliability",
4
+ "updated": "2026-06-24",
5
+ "version": "1.1",
6
+ "featured": false,
7
+ "technologies": [
8
+ "Retries with backoff",
9
+ "Circuit breakers",
10
+ "Checkpointing",
11
+ "Compensating actions"
12
+ ],
13
+ "related": [
14
+ "reflection",
15
+ "human-escalation",
16
+ "evaluator-optimizer"
17
+ ],
18
+ "references": [
19
+ {
20
+ "title": "Anthropic — Building Effective Agents (2024)",
21
+ "url": "https://www.anthropic.com/research/building-effective-agents"
22
+ },
23
+ {
24
+ "title": "Google SRE Book — Handling Overload & Cascading Failures",
25
+ "url": "https://sre.google/sre-book/handling-overload/"
26
+ }
27
+ ],
28
+ "evidence": {
29
+ "evidenceLevel": "production",
30
+ "confidenceLevel": "low",
31
+ "sourceType": ["production_system", "personal_experience", "industry_observation"]
32
+ },
33
+ "locales": {
34
+ "en": {
35
+ "name": "Recovery Strategy",
36
+ "summary": "Give the agent an explicit plan for when things break. Detect failures by validating outputs and catching tool errors; then retry with adjustment, fall back to an alternative path, roll back partial actions, or escalate. Bound retries to avoid runaway loops and cost, make actions idempotent, and distinguish transient from permanent failures. The goal is graceful degradation instead of crashes or silently wrong results.",
37
+ "problem": "Agents fail constantly: tools time out, APIs return errors, models emit malformed output, plans hit dead-ends, and multi-step workflows leave partial side effects behind. Without an explicit recovery path, an agent either crashes on the first error or — worse — plows ahead on bad data and silently produces confidently wrong results. Naive retry loops make it worse, hammering a failing dependency, burning tokens, and spinning forever. The hard part is not catching one error; it is deciding what kind of failure it is and what response is safe.",
38
+ "context": "Use this pattern in any agent that calls external tools, runs multi-step plans, or takes consequential actions where partial completion is possible. It matters most for long-running or autonomous workflows that no human watches in real time, and for actions with side effects (payments, writes, emails) where a blind retry could duplicate work. It assumes you can validate outputs against some contract and that at least some operations can be made idempotent or compensated. It is less relevant for single-shot, read-only, low-stakes prompts.",
39
+ "solution": [
40
+ "Treat recovery as a first-class control loop layered around the agent's normal execution. Every tool call and model output passes through a validation gate: catch exceptions and timeouts, and check outputs against a schema or contract before trusting them. On failure, classify it. Transient failures (timeouts, rate limits, 5xx) get a bounded retry with exponential backoff and jitter, ideally against an idempotent operation so a duplicate request is harmless. Permanent failures (invalid arguments, auth errors, contract violations) skip retries and move straight to an alternative: a different tool, a simpler plan, or a fallback answer.\n\nWhen progress matters, checkpoint state so the agent can resume from the last good step rather than restarting. When a step has already produced side effects and cannot proceed, run compensating actions to roll back — cancel the order, delete the draft, reverse the charge. Wrap the whole loop in hard budgets: maximum attempts, maximum wall-clock time, and a cost ceiling, plus a circuit breaker that stops calling a dependency that keeps failing. When all recovery options are exhausted, escalate cleanly — surface the failure to a human or a supervising agent with enough context to act, rather than guessing."
41
+ ],
42
+ "components": [
43
+ "Validation gate",
44
+ "Failure classifier",
45
+ "Bounded retry with backoff",
46
+ "Fallback router",
47
+ "Checkpoint store",
48
+ "Compensation handler"
49
+ ],
50
+ "benefits": [
51
+ "The agent produces a partial or fallback result and a clear status instead of crashing or returning confident garbage.",
52
+ "Hard attempt, time, and cost limits stop runaway retry loops from burning budget on a failing dependency.",
53
+ "Compensating actions and checkpoints keep external systems and task state coherent when a workflow stops midway.",
54
+ "When recovery fails, the agent hands off with enough context for a human or supervisor to act, rather than guessing."
55
+ ],
56
+ "risks": [
57
+ "Aggressive retries against a struggling dependency add load and can turn a brief blip into a cascading outage.",
58
+ "Retrying a non-idempotent action can double-charge, double-send, or double-write if request keys are not used.",
59
+ "Over-eager fallbacks can hide systematic failures, so a broken tool looks healthy while quietly degrading every result.",
60
+ "Rollback logic is often incomplete or itself fails, leaving systems in an inconsistent state that is hard to detect."
61
+ ],
62
+ "whenNot": [
63
+ "For low-stakes prompts with no side effects and no multi-step plan, a simple retry-or-fail is enough; full recovery machinery is overhead.",
64
+ "When a failure means the task is genuinely impossible (missing permission, deprecated API), retry and fallback only waste time — fail fast and escalate.",
65
+ "If a side effect is irreversible and cannot be made idempotent, do not auto-retry across it; require confirmation or human approval instead."
66
+ ],
67
+ "examples": [
68
+ "A research agent's search tool returns a 503; the agent retries with backoff, succeeds on the third attempt, and continues without crashing the run.",
69
+ "A code agent generates JSON that fails schema validation; the validation gate rejects it and re-prompts with the error, instead of passing malformed data downstream.",
70
+ "A booking agent reserves a flight but the hotel step fails permanently; the compensation handler cancels the reservation and escalates rather than leaving a half-booked trip."
71
+ ],
72
+ "productionEvidence": {
73
+ "context": "Single-operator, local-first OpenClaw deployment observed over 57 days (161 sessions / 2,776 turns), aggregated from the agent's own trajectory traces.",
74
+ "scenario": "Errors, aborts and timeouts during autonomous turns are absorbed by retry/backoff and a model-fallback chain so the agent keeps running.",
75
+ "technology": "retryAsync with exponential backoff and jitter, runWithModelFallback, abort propagation, and cron self-protection against refire loops.",
76
+ "load": "2,942 terminal turns; 52 errors, 126 aborts, 120 timeouts and 31 prompt-errors observed.",
77
+ "results": "A 1.77% terminal-error rate across 2,942 turns; recovery primitives absorbed transient failures and the deployment held 98.8% session success. Single-operator local-first deployment."
78
+ },
79
+ "kpis": [
80
+ {
81
+ "metric": "Recovery success rate",
82
+ "note": "Share of failures resolved automatically by retry or fallback without human help; a healthy value is high and stable, with no quiet downward drift."
83
+ },
84
+ {
85
+ "metric": "Mean attempts per successful task",
86
+ "note": "How many tries it takes to succeed; watch for creep, which signals a degrading dependency rather than genuine recovery."
87
+ },
88
+ {
89
+ "metric": "Unbounded-loop / budget-breach rate",
90
+ "note": "How often runs hit retry, time, or cost ceilings; this should be rare, and spikes mean limits or classification need tuning."
91
+ },
92
+ {
93
+ "metric": "Compensation completeness",
94
+ "note": "Fraction of failed multi-step workflows that end in a consistent state; the target is full rollback with no orphaned side effects."
95
+ }
96
+ ],
97
+ "failureModes": [
98
+ "Missing or too-high attempt caps let the agent retry a permanent failure forever, burning cost and never making progress.",
99
+ "Treating a permanent error as transient wastes retries; treating a transient error as permanent gives up too early and triggers needless fallbacks.",
100
+ "A fallback path returns a plausible but wrong answer with no signal that recovery occurred, so downstream consumers trust bad output.",
101
+ "The agent fails after a write or external action but before compensation runs, leaving duplicate or dangling records."
102
+ ],
103
+ "lessons": [
104
+ "The retry/fallback/escalate decision hinges on transient versus permanent; invest in clear classification before tuning backoff curves.",
105
+ "Idempotency keys turn a risky retry into a safe one; design for it up front rather than bolting on dedup later.",
106
+ "Hard caps on attempts, time, and cost are non-negotiable; an agent without them will eventually find a way to run forever.",
107
+ "Log every retry, fallback, and compensation so silent degradation surfaces as a metric instead of a surprise incident."
108
+ ],
109
+ "faqs": [
110
+ {
111
+ "q": "How is this different from just adding try/except and a retry loop?",
112
+ "a": "Try/except handles one error; a recovery strategy decides what kind of failure it is and chooses among retry, fallback, rollback, and escalation under hard budgets. The control logic and idempotency, not the exception handling, are the substance."
113
+ },
114
+ {
115
+ "q": "How many retries should I allow?",
116
+ "a": "Few — typically a small fixed cap with exponential backoff and jitter, plus separate time and cost ceilings. The exact number depends on the dependency, but the loop must always terminate, and permanent failures should not be retried at all."
117
+ },
118
+ {
119
+ "q": "What if an action cannot be undone or made idempotent?",
120
+ "a": "Do not auto-retry across it. Checkpoint before the irreversible step, and on failure escalate to a human or supervising agent rather than guessing. Irreversibility is a signal to slow down, not to retry harder."
121
+ }
122
+ ]
123
+ },
124
+ "es": {
125
+ "name": "Estrategia de recuperación",
126
+ "summary": "Da al agente un plan explícito para cuando algo falla. Detecta fallos validando salidas y capturando errores de herramientas; luego reintenta con ajuste, recurre a una ruta alternativa, revierte acciones parciales o escala. Acota los reintentos para evitar bucles y costes descontrolados, haz las acciones idempotentes y distingue fallos transitorios de permanentes. El objetivo es una degradación elegante en lugar de caídas o resultados silenciosamente erróneos.",
127
+ "problem": "Los agentes fallan constantemente: las herramientas expiran, las API devuelven errores, los modelos emiten salidas mal formadas, los planes llegan a callejones sin salida y los flujos de varios pasos dejan efectos secundarios parciales. Sin una ruta de recuperación explícita, un agente o bien se cae al primer error o — peor — sigue adelante con datos malos y produce en silencio resultados erróneos con aparente seguridad. Los bucles de reintento ingenuos lo empeoran, golpeando una dependencia que falla, quemando tokens y girando sin fin. Lo difícil no es capturar un error; es decidir de qué tipo de fallo se trata y qué respuesta es segura.",
128
+ "context": "Usa este patrón en cualquier agente que llame a herramientas externas, ejecute planes de varios pasos o realice acciones con consecuencias donde sea posible una finalización parcial. Importa sobre todo en flujos largos o autónomos que ningún humano vigila en tiempo real, y en acciones con efectos secundarios (pagos, escrituras, correos) donde un reintento ciego podría duplicar el trabajo. Supone que puedes validar las salidas contra algún contrato y que al menos algunas operaciones pueden hacerse idempotentes o compensables. Es menos relevante para indicaciones de un solo paso, de solo lectura y de bajo riesgo.",
129
+ "solution": [
130
+ "Trata la recuperación como un bucle de control de primera clase que envuelve la ejecución normal del agente. Cada llamada a herramienta y cada salida del modelo pasa por una puerta de validación: captura excepciones y tiempos de espera, y comprueba las salidas contra un esquema o contrato antes de confiar en ellas. Ante un fallo, clasifícalo. Los fallos transitorios (tiempos de espera, límites de tasa, 5xx) reciben un reintento acotado con retroceso exponencial y jitter, idealmente contra una operación idempotente para que una petición duplicada sea inofensiva. Los fallos permanentes (argumentos inválidos, errores de autenticación, violaciones de contrato) omiten los reintentos y pasan directamente a una alternativa: otra herramienta, un plan más simple o una respuesta de reserva.\n\nCuando el progreso importa, guarda puntos de control del estado para que el agente pueda reanudar desde el último paso correcto en lugar de reiniciar. Cuando un paso ya produjo efectos secundarios y no puede continuar, ejecuta acciones de compensación para revertir: cancela el pedido, elimina el borrador, revierte el cargo. Envuelve todo el bucle en presupuestos estrictos: número máximo de intentos, tiempo máximo de reloj y un techo de coste, además de un cortacircuitos que deje de llamar a una dependencia que sigue fallando. Cuando se agotan todas las opciones de recuperación, escala con limpieza: expón el fallo a un humano o a un agente supervisor con contexto suficiente para actuar, en lugar de adivinar."
131
+ ],
132
+ "components": [
133
+ "Puerta de validación",
134
+ "Clasificador de fallos",
135
+ "Reintento acotado con retroceso",
136
+ "Enrutador de reserva",
137
+ "Almacén de puntos de control",
138
+ "Manejador de compensación"
139
+ ],
140
+ "benefits": [
141
+ "El agente produce un resultado parcial o de reserva y un estado claro en lugar de caerse o devolver basura con apariencia de seguridad.",
142
+ "Los límites estrictos de intentos, tiempo y coste detienen los bucles de reintento descontrolados que queman presupuesto en una dependencia que falla.",
143
+ "Las acciones de compensación y los puntos de control mantienen coherentes los sistemas externos y el estado de la tarea cuando un flujo se detiene a medias.",
144
+ "Cuando la recuperación falla, el agente delega con contexto suficiente para que un humano o supervisor actúe, en lugar de adivinar."
145
+ ],
146
+ "risks": [
147
+ "Los reintentos agresivos contra una dependencia que sufre añaden carga y pueden convertir un breve fallo en una caída en cascada.",
148
+ "Reintentar una acción no idempotente puede cobrar, enviar o escribir por duplicado si no se usan claves de petición.",
149
+ "Las reservas demasiado ansiosas pueden ocultar fallos sistemáticos, de modo que una herramienta rota parece sana mientras degrada cada resultado en silencio.",
150
+ "La lógica de reversión suele estar incompleta o fallar ella misma, dejando los sistemas en un estado incoherente difícil de detectar."
151
+ ],
152
+ "whenNot": [
153
+ "Para indicaciones de bajo riesgo sin efectos secundarios ni plan de varios pasos, basta con reintentar o fallar; toda la maquinaria de recuperación es sobrecarga.",
154
+ "Cuando un fallo significa que la tarea es realmente imposible (permiso ausente, API obsoleta), reintentar y recurrir a alternativas solo pierde tiempo: falla rápido y escala.",
155
+ "Si un efecto secundario es irreversible y no puede hacerse idempotente, no reintentes automáticamente sobre él; exige confirmación o aprobación humana en su lugar."
156
+ ],
157
+ "examples": [
158
+ "La herramienta de búsqueda de un agente de investigación devuelve un 503; el agente reintenta con retroceso, lo logra al tercer intento y continúa sin tumbar la ejecución.",
159
+ "Un agente de código genera JSON que falla la validación de esquema; la puerta de validación lo rechaza y vuelve a indicar con el error, en lugar de pasar datos mal formados aguas abajo.",
160
+ "Un agente de reservas reserva un vuelo pero el paso del hotel falla de forma permanente; el manejador de compensación cancela la reserva y escala en lugar de dejar un viaje a medio reservar."
161
+ ],
162
+ "productionEvidence": {
163
+ "context": "Despliegue OpenClaw local-first y mono-operador observado durante 57 días (161 sesiones / 2.776 turnos), agregado desde las propias trazas del agente.",
164
+ "scenario": "Los errores, abortos y timeouts en turnos autónomos se absorben con retry/backoff y una cadena de modelo de respaldo para que el agente siga funcionando.",
165
+ "technology": "retryAsync con backoff exponencial y jitter, runWithModelFallback, propagación de abort y autoprotección de cron contra bucles de re-disparo.",
166
+ "load": "2.942 turnos terminales; 52 errores, 126 abortos, 120 timeouts y 31 prompt-errors observados.",
167
+ "results": "Tasa de error terminal del 1,77% sobre 2.942 turnos; las primitivas de recuperación absorbieron los fallos transitorios y el despliegue mantuvo 98,8% de éxito por sesión. Despliegue local-first mono-operador."
168
+ },
169
+ "kpis": [
170
+ {
171
+ "metric": "Tasa de éxito de recuperación",
172
+ "note": "Proporción de fallos resueltos automáticamente por reintento o reserva sin ayuda humana; un valor sano es alto y estable, sin una caída silenciosa."
173
+ },
174
+ {
175
+ "metric": "Media de intentos por tarea exitosa",
176
+ "note": "Cuántos intentos cuesta tener éxito; vigila el aumento gradual, que señala una dependencia que se degrada más que una recuperación genuina."
177
+ },
178
+ {
179
+ "metric": "Tasa de bucle ilimitado / ruptura de presupuesto",
180
+ "note": "Con qué frecuencia las ejecuciones alcanzan los techos de reintento, tiempo o coste; debería ser raro, y los picos indican que los límites o la clasificación necesitan ajuste."
181
+ },
182
+ {
183
+ "metric": "Completitud de la compensación",
184
+ "note": "Fracción de flujos de varios pasos fallidos que terminan en un estado coherente; el objetivo es una reversión total sin efectos secundarios huérfanos."
185
+ }
186
+ ],
187
+ "failureModes": [
188
+ "La ausencia de límites de intentos o límites demasiado altos dejan que el agente reintente un fallo permanente para siempre, quemando coste sin avanzar.",
189
+ "Tratar un error permanente como transitorio desperdicia reintentos; tratar uno transitorio como permanente se rinde demasiado pronto y dispara reservas innecesarias.",
190
+ "Una ruta de reserva devuelve una respuesta plausible pero errónea sin señal de que hubo recuperación, así que los consumidores aguas abajo confían en una salida mala.",
191
+ "El agente falla después de una escritura o acción externa pero antes de que corra la compensación, dejando registros duplicados o colgantes."
192
+ ],
193
+ "lessons": [
194
+ "La decisión de reintentar/recurrir/escalar depende de transitorio frente a permanente; invierte en una clasificación clara antes de ajustar las curvas de retroceso.",
195
+ "Las claves de idempotencia convierten un reintento arriesgado en uno seguro; diséñalo desde el principio en lugar de añadir deduplicación después.",
196
+ "Los límites estrictos de intentos, tiempo y coste son innegociables; un agente sin ellos acabará por encontrar la forma de correr para siempre.",
197
+ "Registra cada reintento, reserva y compensación para que la degradación silenciosa aflore como una métrica en lugar de un incidente sorpresa."
198
+ ],
199
+ "faqs": [
200
+ {
201
+ "q": "¿En qué se diferencia esto de solo añadir try/except y un bucle de reintento?",
202
+ "a": "Try/except maneja un error; una estrategia de recuperación decide de qué tipo de fallo se trata y elige entre reintento, reserva, reversión y escalado bajo presupuestos estrictos. La lógica de control y la idempotencia, no el manejo de excepciones, son la sustancia."
203
+ },
204
+ {
205
+ "q": "¿Cuántos reintentos debería permitir?",
206
+ "a": "Pocos — normalmente un límite fijo pequeño con retroceso exponencial y jitter, más techos separados de tiempo y coste. El número exacto depende de la dependencia, pero el bucle siempre debe terminar, y los fallos permanentes no deberían reintentarse en absoluto."
207
+ },
208
+ {
209
+ "q": "¿Y si una acción no puede deshacerse ni hacerse idempotente?",
210
+ "a": "No reintentes automáticamente sobre ella. Guarda un punto de control antes del paso irreversible, y ante un fallo escala a un humano o agente supervisor en lugar de adivinar. La irreversibilidad es una señal para ir más despacio, no para reintentar con más fuerza."
211
+ }
212
+ ]
213
+ },
214
+ "pt": {
215
+ "name": "Estratégia de recuperação",
216
+ "summary": "Dê ao agente um plano explícito para quando algo falha. Detecte falhas validando saídas e capturando erros de ferramentas; depois reenvie com ajuste, recorra a um caminho alternativo, reverta ações parciais ou escale. Limite as retentativas para evitar laços e custos descontrolados, torne as ações idempotentes e distinga falhas transitórias de permanentes. O objetivo é uma degradação elegante em vez de quedas ou resultados silenciosamente errados.",
217
+ "problem": "Agentes falham constantemente: ferramentas expiram, APIs retornam erros, modelos emitem saídas malformadas, planos chegam a becos sem saída e fluxos de várias etapas deixam efeitos colaterais parciais. Sem um caminho de recuperação explícito, um agente ou cai no primeiro erro ou — pior — segue em frente com dados ruins e produz, em silêncio, resultados errados com aparente confiança. Laços de retentativa ingênuos pioram tudo, martelando uma dependência que falha, queimando tokens e girando sem fim. O difícil não é capturar um erro; é decidir que tipo de falha é e qual resposta é segura.",
218
+ "context": "Use este padrão em qualquer agente que chame ferramentas externas, execute planos de várias etapas ou tome ações com consequências em que uma conclusão parcial seja possível. Importa sobretudo em fluxos longos ou autônomos que nenhum humano observa em tempo real, e em ações com efeitos colaterais (pagamentos, escritas, e-mails) em que uma retentativa cega poderia duplicar o trabalho. Pressupõe que você consiga validar as saídas contra algum contrato e que ao menos algumas operações possam ser tornadas idempotentes ou compensáveis. É menos relevante para prompts de uma só etapa, somente leitura e de baixo risco.",
219
+ "solution": [
220
+ "Trate a recuperação como um laço de controle de primeira classe que envolve a execução normal do agente. Cada chamada de ferramenta e cada saída do modelo passa por um portão de validação: capture exceções e tempos esgotados, e verifique as saídas contra um esquema ou contrato antes de confiar nelas. Diante de uma falha, classifique-a. Falhas transitórias (timeouts, limites de taxa, 5xx) recebem uma retentativa limitada com recuo exponencial e jitter, idealmente contra uma operação idempotente para que uma requisição duplicada seja inofensiva. Falhas permanentes (argumentos inválidos, erros de autenticação, violações de contrato) pulam as retentativas e vão direto para uma alternativa: outra ferramenta, um plano mais simples ou uma resposta de reserva.\n\nQuando o progresso importa, salve pontos de verificação do estado para que o agente possa retomar a partir da última etapa boa em vez de recomeçar. Quando uma etapa já produziu efeitos colaterais e não pode prosseguir, execute ações de compensação para reverter: cancele o pedido, exclua o rascunho, estorne a cobrança. Envolva todo o laço em orçamentos rígidos: número máximo de tentativas, tempo máximo de relógio e um teto de custo, além de um disjuntor que pare de chamar uma dependência que continua falhando. Quando todas as opções de recuperação se esgotam, escale de forma limpa: exponha a falha a um humano ou a um agente supervisor com contexto suficiente para agir, em vez de adivinhar."
221
+ ],
222
+ "components": [
223
+ "Portão de validação",
224
+ "Classificador de falhas",
225
+ "Retentativa limitada com recuo",
226
+ "Roteador de reserva",
227
+ "Repositório de pontos de verificação",
228
+ "Manipulador de compensação"
229
+ ],
230
+ "benefits": [
231
+ "O agente produz um resultado parcial ou de reserva e um status claro em vez de cair ou devolver lixo com aparência de confiança.",
232
+ "Limites rígidos de tentativas, tempo e custo barram os laços de retentativa descontrolados que queimam orçamento em uma dependência que falha.",
233
+ "Ações de compensação e pontos de verificação mantêm os sistemas externos e o estado da tarefa coerentes quando um fluxo para no meio.",
234
+ "Quando a recuperação falha, o agente repassa com contexto suficiente para que um humano ou supervisor aja, em vez de adivinhar."
235
+ ],
236
+ "risks": [
237
+ "Retentativas agressivas contra uma dependência em sofrimento acrescentam carga e podem transformar uma falha breve em uma queda em cascata.",
238
+ "Refazer uma ação não idempotente pode cobrar, enviar ou escrever em duplicidade se chaves de requisição não forem usadas.",
239
+ "Reservas ansiosas demais podem esconder falhas sistemáticas, fazendo uma ferramenta quebrada parecer saudável enquanto degrada cada resultado em silêncio.",
240
+ "A lógica de reversão costuma estar incompleta ou falhar ela mesma, deixando os sistemas em um estado inconsistente difícil de detectar."
241
+ ],
242
+ "whenNot": [
243
+ "Para prompts de baixo risco sem efeitos colaterais e sem plano de várias etapas, basta retentar ou falhar; toda a maquinaria de recuperação é sobrecarga.",
244
+ "Quando uma falha significa que a tarefa é genuinamente impossível (permissão ausente, API obsoleta), retentar e recorrer a alternativas só desperdiça tempo — falhe rápido e escale.",
245
+ "Se um efeito colateral é irreversível e não pode ser tornado idempotente, não retente automaticamente sobre ele; exija confirmação ou aprovação humana."
246
+ ],
247
+ "examples": [
248
+ "A ferramenta de busca de um agente de pesquisa retorna um 503; o agente retenta com recuo, consegue na terceira tentativa e continua sem derrubar a execução.",
249
+ "Um agente de código gera JSON que falha na validação de esquema; o portão de validação o rejeita e refaz o prompt com o erro, em vez de passar dados malformados a jusante.",
250
+ "Um agente de reservas reserva um voo, mas a etapa do hotel falha de forma permanente; o manipulador de compensação cancela a reserva e escala em vez de deixar uma viagem reservada pela metade."
251
+ ],
252
+ "productionEvidence": {
253
+ "context": "Implantação OpenClaw local-first e de operador único observada por 57 dias (161 sessões / 2.776 turnos), agregada a partir dos próprios rastros do agente.",
254
+ "scenario": "Erros, abortos e timeouts em turnos autônomos são absorvidos por retry/backoff e uma cadeia de modelo de fallback para que o agente continue rodando.",
255
+ "technology": "retryAsync com backoff exponencial e jitter, runWithModelFallback, propagação de abort e autoproteção de cron contra loops de redisparo.",
256
+ "load": "2.942 turnos terminais; 52 erros, 126 abortos, 120 timeouts e 31 prompt-errors observados.",
257
+ "results": "Taxa de erro terminal de 1,77% em 2.942 turnos; as primitivas de recuperação absorveram as falhas transitórias e a implantação manteve 98,8% de sucesso por sessão. Implantação local-first de operador único."
258
+ },
259
+ "kpis": [
260
+ {
261
+ "metric": "Taxa de sucesso de recuperação",
262
+ "note": "Proporção de falhas resolvidas automaticamente por retentativa ou reserva sem ajuda humana; um valor saudável é alto e estável, sem queda silenciosa."
263
+ },
264
+ {
265
+ "metric": "Média de tentativas por tarefa bem-sucedida",
266
+ "note": "Quantas tentativas custa ter sucesso; observe o aumento gradual, que sinaliza uma dependência em degradação mais do que recuperação genuína."
267
+ },
268
+ {
269
+ "metric": "Taxa de laço ilimitado / estouro de orçamento",
270
+ "note": "Com que frequência as execuções atingem os tetos de retentativa, tempo ou custo; deve ser raro, e picos indicam que limites ou classificação precisam de ajuste."
271
+ },
272
+ {
273
+ "metric": "Completude da compensação",
274
+ "note": "Fração de fluxos de várias etapas que falham e terminam em estado consistente; o alvo é reversão total sem efeitos colaterais órfãos."
275
+ }
276
+ ],
277
+ "failureModes": [
278
+ "Limites de tentativa ausentes ou altos demais deixam o agente retentar uma falha permanente para sempre, queimando custo sem avançar.",
279
+ "Tratar um erro permanente como transitório desperdiça retentativas; tratar um transitório como permanente desiste cedo demais e dispara reservas desnecessárias.",
280
+ "Um caminho de reserva devolve uma resposta plausível mas errada sem sinal de que houve recuperação, então consumidores a jusante confiam em saída ruim.",
281
+ "O agente falha depois de uma escrita ou ação externa, mas antes de a compensação rodar, deixando registros duplicados ou pendentes."
282
+ ],
283
+ "lessons": [
284
+ "A decisão de retentar/recorrer/escalar depende de transitório versus permanente; invista em classificação clara antes de ajustar curvas de recuo.",
285
+ "Chaves de idempotência transformam uma retentativa arriscada em uma segura; projete para isso desde o início em vez de acoplar deduplicação depois.",
286
+ "Tetos rígidos de tentativas, tempo e custo são inegociáveis; um agente sem eles acabará achando um jeito de rodar para sempre.",
287
+ "Registre cada retentativa, reserva e compensação para que a degradação silenciosa apareça como métrica em vez de incidente surpresa."
288
+ ],
289
+ "faqs": [
290
+ {
291
+ "q": "Como isso difere de apenas adicionar try/except e um laço de retentativa?",
292
+ "a": "Try/except trata um erro; uma estratégia de recuperação decide que tipo de falha é e escolhe entre retentativa, reserva, reversão e escalada sob orçamentos rígidos. A lógica de controle e a idempotência, não o tratamento de exceções, são a substância."
293
+ },
294
+ {
295
+ "q": "Quantas retentativas devo permitir?",
296
+ "a": "Poucas — em geral um limite fixo pequeno com recuo exponencial e jitter, mais tetos separados de tempo e custo. O número exato depende da dependência, mas o laço sempre deve terminar, e falhas permanentes não deveriam ser retentadas de forma alguma."
297
+ },
298
+ {
299
+ "q": "E se uma ação não puder ser desfeita nem tornada idempotente?",
300
+ "a": "Não retente automaticamente sobre ela. Salve um ponto de verificação antes da etapa irreversível e, diante de uma falha, escale para um humano ou agente supervisor em vez de adivinhar. A irreversibilidade é um sinal para ir mais devagar, não para retentar com mais força."
301
+ }
302
+ ]
303
+ }
304
+ }
305
+ }
@@ -0,0 +1,298 @@
1
+ {
2
+ "slug": "reflection",
3
+ "category": "reliability",
4
+ "updated": "2026-06-21",
5
+ "version": "1.0",
6
+ "technologies": [
7
+ "LangGraph",
8
+ "Agent frameworks",
9
+ "LLM-as-judge"
10
+ ],
11
+ "related": [
12
+ "evaluator-optimizer",
13
+ "prompt-chaining"
14
+ ],
15
+ "references": [
16
+ {
17
+ "title": "Shinn et al. — Reflexion: Language Agents with Verbal Reinforcement Learning (2023)",
18
+ "url": "https://arxiv.org/abs/2303.11366"
19
+ }
20
+ ],
21
+ "evidence": {
22
+ "evidenceLevel": "industry_observation",
23
+ "confidenceLevel": "high",
24
+ "sourceType": [
25
+ "industry_observation",
26
+ "paper"
27
+ ]
28
+ },
29
+ "locales": {
30
+ "en": {
31
+ "name": "Reflection",
32
+ "summary": "Reflection has a model critique its own output and then revise it, using the critique as feedback. It is a lightweight, single-model way to catch mistakes and improve quality on reasoning, coding and writing tasks — at the cost of extra calls.",
33
+ "definition": "Reflection is a pattern in which a model reviews and critiques its own output against explicit criteria and then revises it, trading extra inference for higher quality.",
34
+ "problem": "Models often produce a flawed first answer they could improve if prompted to review their own work, but a single pass gives them no chance to.",
35
+ "context": "Use reflection when a self-review step measurably improves output and you want a simpler alternative to a two-model evaluator loop — common in reasoning and coding tasks.",
36
+ "solution": [
37
+ "After generating an answer, prompt the same model to critique it against the goal (and any tool feedback such as test results or errors), then to produce a revised answer informed by that critique. Repeat for a bounded number of iterations.",
38
+ "Reflection works best when grounded in real signals — execution errors, test output, retrieved facts — rather than pure self-assessment, which can be overconfident."
39
+ ],
40
+ "components": [
41
+ "Initial generation",
42
+ "Self-critique step",
43
+ "Grounding signal (errors / tests / facts)",
44
+ "Revision",
45
+ "Iteration budget"
46
+ ],
47
+ "benefits": [
48
+ "Improves quality with a single model — no second system.",
49
+ "Effective when grounded in tool or test feedback.",
50
+ "Simple to add to an existing call."
51
+ ],
52
+ "risks": [
53
+ "Self-critique can be overconfident or miss its own errors.",
54
+ "Extra calls add latency and cost.",
55
+ "Without grounding, gains are limited."
56
+ ],
57
+ "whenNot": [
58
+ "When you have an objective external check — use evaluator-optimizer.",
59
+ "When a single pass already meets the bar.",
60
+ "When latency budgets are very tight."
61
+ ],
62
+ "examples": [
63
+ "A coding agent reading test failures and fixing its own patch.",
64
+ "A reasoning task where the model rechecks its steps before answering.",
65
+ "A draft the model reviews for gaps before finalizing."
66
+ ],
67
+ "productionEvidence": {
68
+ "context": "Tasks where output quality matters more than latency or cost — drafting, code generation, analysis — and where errors are detectable on review.",
69
+ "scenario": "After producing a first answer, the model (or a separate critic) evaluates it against concrete criteria and produces a revised version; the loop is capped at one or two passes.",
70
+ "technology": "A critique-then-revise prompt chain, ideally backed by external signals (tests, tools, a separate evaluator) for high-stakes work.",
71
+ "load": "Each reflection pass at least doubles calls, so it is applied selectively to the outputs that justify the overhead.",
72
+ "results": "Observed pattern: reflection lifts quality where the model can actually detect its own errors, but it can over-revise correct answers and at least doubles cost. Measure the quality lift against an eval set before trusting it, and prefer external signals when stakes are high."
73
+ },
74
+ "kpis": [
75
+ {
76
+ "metric": "Quality lift from reflection",
77
+ "note": "Measured improvement in output quality with the reflection step versus without; if it's not measurable, the step isn't earning its cost."
78
+ },
79
+ {
80
+ "metric": "Self-correction rate",
81
+ "note": "Share of genuine errors the model catches and fixes on review — distinct from cosmetic edits."
82
+ },
83
+ {
84
+ "metric": "Added latency & cost",
85
+ "note": "Reflection at least doubles calls; track the overhead against the quality it buys."
86
+ },
87
+ {
88
+ "metric": "Over-revision rate",
89
+ "note": "How often reflection degrades an already-good answer by second-guessing it."
90
+ }
91
+ ],
92
+ "failureModes": [
93
+ "Self-evaluation blind spots: a model often can't see its own errors, so reflection misses them.",
94
+ "Over-revision: the model 'fixes' a correct answer into a worse one.",
95
+ "Cost and latency double (or more) for marginal or no quality gain.",
96
+ "False confidence: the model asserts the output is now correct when it isn't."
97
+ ],
98
+ "lessons": [
99
+ "Measure the lift; reflection is worth it only where it demonstrably improves quality.",
100
+ "Prefer external signals (tests, tools, a separate evaluator) over pure self-critique when stakes are high.",
101
+ "Cap reflection to one or two passes — returns diminish fast and cost compounds.",
102
+ "Give the reflection step concrete criteria, not a vague 'improve this'."
103
+ ],
104
+ "faqs": [
105
+ {
106
+ "q": "Reflection or evaluator-optimizer?",
107
+ "a": "Reflection uses one model to self-critique (simpler); evaluator-optimizer uses a separate evaluator (sharper, less biased). Choose by how reliable self-assessment is for your task."
108
+ },
109
+ {
110
+ "q": "Does reflection always help?",
111
+ "a": "It helps most when grounded in real feedback like test results or errors. Pure self-assessment can be overconfident and add little."
112
+ },
113
+ {
114
+ "q": "How many reflection rounds?",
115
+ "a": "Keep it bounded — often one or two. Diminishing returns and rising cost make long loops rarely worth it."
116
+ }
117
+ ]
118
+ },
119
+ "es": {
120
+ "name": "Reflexión (Reflection)",
121
+ "summary": "La reflexión hace que un modelo critique su propia salida y luego la revise, usando la crítica como feedback. Es una forma ligera, de un solo modelo, de atrapar errores y mejorar la calidad en tareas de razonamiento, código y escritura, a costa de llamadas extra.",
122
+ "definition": "La reflexión es un patrón en el que un modelo revisa y critica su propia salida frente a criterios explícitos y luego la corrige, cambiando inferencia adicional por mayor calidad.",
123
+ "problem": "Los modelos a menudo producen una primera respuesta defectuosa que podrían mejorar si se les pide revisar su propio trabajo, pero una sola pasada no les da la oportunidad.",
124
+ "context": "Usa la reflexión cuando un paso de autorrevisión mejore la salida de forma medible y quieras una alternativa más simple al bucle evaluador de dos modelos —común en tareas de razonamiento y código.",
125
+ "solution": [
126
+ "Tras generar una respuesta, pide al mismo modelo que la critique frente al objetivo (y cualquier feedback de herramientas como resultados de tests o errores), y luego que produzca una respuesta revisada informada por esa crítica. Repite un número acotado de iteraciones.",
127
+ "La reflexión funciona mejor anclada en señales reales —errores de ejecución, salida de tests, hechos recuperados— que en la pura autoevaluación, que puede ser demasiado confiada."
128
+ ],
129
+ "components": [
130
+ "Generación inicial",
131
+ "Paso de autocrítica",
132
+ "Señal de anclaje (errores / tests / hechos)",
133
+ "Revisión",
134
+ "Presupuesto de iteración"
135
+ ],
136
+ "benefits": [
137
+ "Mejora la calidad con un solo modelo, sin segundo sistema.",
138
+ "Eficaz cuando se ancla en feedback de herramientas o tests.",
139
+ "Simple de añadir a una llamada existente."
140
+ ],
141
+ "risks": [
142
+ "La autocrítica puede ser demasiado confiada o no ver sus errores.",
143
+ "Las llamadas extra añaden latencia y coste.",
144
+ "Sin anclaje, las ganancias son limitadas."
145
+ ],
146
+ "whenNot": [
147
+ "Cuando tienes una comprobación externa objetiva: usa evaluador-optimizador.",
148
+ "Cuando una sola pasada ya alcanza el nivel.",
149
+ "Cuando los presupuestos de latencia son muy ajustados."
150
+ ],
151
+ "examples": [
152
+ "Un agente de código que lee fallos de tests y corrige su propio parche.",
153
+ "Una tarea de razonamiento donde el modelo revisa sus pasos antes de responder.",
154
+ "Un borrador que el modelo revisa en busca de lagunas antes de finalizar."
155
+ ],
156
+ "productionEvidence": {
157
+ "context": "Tareas donde la calidad importa más que la latencia o el coste —redacción, generación de código, análisis— y donde los errores son detectables al revisar.",
158
+ "scenario": "Tras producir una primera respuesta, el modelo (o un crítico aparte) la evalúa frente a criterios concretos y produce una versión revisada; el bucle se limita a una o dos pasadas.",
159
+ "technology": "Una cadena de prompts criticar-luego-revisar, idealmente respaldada por señales externas (tests, herramientas, un evaluador aparte) para el trabajo de alto riesgo.",
160
+ "load": "Cada pasada de reflexión al menos duplica las llamadas, así que se aplica de forma selectiva a las salidas que justifican el sobrecoste.",
161
+ "results": "Patrón observado: la reflexión mejora la calidad donde el modelo puede de verdad detectar sus propios errores, pero puede sobrerrevisar respuestas correctas y al menos duplica el coste. Mide la mejora frente a un conjunto de evaluación antes de confiar en ella, y prefiere señales externas cuando hay mucho en juego."
162
+ },
163
+ "kpis": [
164
+ {
165
+ "metric": "Mejora de calidad por reflexión",
166
+ "note": "Mejora medida en la calidad con el paso de reflexión frente a sin él; si no es medible, el paso no justifica su coste."
167
+ },
168
+ {
169
+ "metric": "Tasa de autocorrección",
170
+ "note": "Proporción de errores reales que el modelo detecta y corrige al revisar, distinta de ediciones cosméticas."
171
+ },
172
+ {
173
+ "metric": "Latencia y coste añadidos",
174
+ "note": "La reflexión al menos duplica las llamadas; vigila el sobrecoste frente a la calidad que aporta."
175
+ },
176
+ {
177
+ "metric": "Tasa de sobrerrevisión",
178
+ "note": "Con qué frecuencia la reflexión degrada una respuesta ya buena al cuestionarla en exceso."
179
+ }
180
+ ],
181
+ "failureModes": [
182
+ "Puntos ciegos de autoevaluación: un modelo suele no ver sus propios errores, así que la reflexión los pasa por alto.",
183
+ "Sobrerrevisión: el modelo 'corrige' una respuesta correcta y la empeora.",
184
+ "Coste y latencia se duplican (o más) para una ganancia de calidad marginal o nula.",
185
+ "Falsa confianza: el modelo afirma que la salida ya es correcta cuando no lo es."
186
+ ],
187
+ "lessons": [
188
+ "Mide la mejora; la reflexión vale la pena solo donde mejora la calidad de forma demostrable.",
189
+ "Prefiere señales externas (tests, herramientas, un evaluador aparte) sobre la pura autocrítica cuando hay mucho en juego.",
190
+ "Limita la reflexión a una o dos pasadas: los rendimientos caen rápido y el coste se acumula.",
191
+ "Da al paso de reflexión criterios concretos, no un vago 'mejora esto'."
192
+ ],
193
+ "faqs": [
194
+ {
195
+ "q": "¿Reflexión o evaluador-optimizador?",
196
+ "a": "La reflexión usa un modelo para autocriticarse (más simple); el evaluador-optimizador usa un evaluador separado (más afilado, menos sesgado). Elige según cuán fiable sea la autoevaluación en tu tarea."
197
+ },
198
+ {
199
+ "q": "¿La reflexión siempre ayuda?",
200
+ "a": "Ayuda más cuando se ancla en feedback real como resultados de tests o errores. La pura autoevaluación puede ser demasiado confiada y aportar poco."
201
+ },
202
+ {
203
+ "q": "¿Cuántas rondas de reflexión?",
204
+ "a": "Mantenlo acotado, a menudo una o dos. Los rendimientos decrecientes y el coste creciente hacen que los bucles largos rara vez compensen."
205
+ }
206
+ ]
207
+ },
208
+ "pt": {
209
+ "name": "Reflexão (Reflection)",
210
+ "summary": "A reflexão faz um modelo criticar sua própria saída e depois revisá-la, usando a crítica como feedback. É uma forma leve, de um único modelo, de capturar erros e melhorar a qualidade em tarefas de raciocínio, código e escrita, ao custo de chamadas extras.",
211
+ "definition": "A reflexão é um padrão em que um modelo revisa e critica a própria saída frente a critérios explícitos e depois a corrige, trocando inferência adicional por mais qualidade.",
212
+ "problem": "Os modelos muitas vezes produzem uma primeira resposta defeituosa que poderiam melhorar se solicitados a revisar o próprio trabalho, mas uma única passagem não lhes dá a chance.",
213
+ "context": "Use a reflexão quando um passo de autorrevisão melhore a saída de forma mensurável e você queira uma alternativa mais simples ao laço avaliador de dois modelos — comum em tarefas de raciocínio e código.",
214
+ "solution": [
215
+ "Após gerar uma resposta, peça ao mesmo modelo que a critique frente ao objetivo (e qualquer feedback de ferramentas como resultados de testes ou erros), e depois que produza uma resposta revisada informada por essa crítica. Repita um número limitado de iterações.",
216
+ "A reflexão funciona melhor ancorada em sinais reais — erros de execução, saída de testes, fatos recuperados — que na pura autoavaliação, que pode ser confiante demais."
217
+ ],
218
+ "components": [
219
+ "Geração inicial",
220
+ "Passo de autocrítica",
221
+ "Sinal de ancoragem (erros / testes / fatos)",
222
+ "Revisão",
223
+ "Orçamento de iteração"
224
+ ],
225
+ "benefits": [
226
+ "Melhora a qualidade com um único modelo, sem segundo sistema.",
227
+ "Eficaz quando ancorada em feedback de ferramentas ou testes.",
228
+ "Simples de adicionar a uma chamada existente."
229
+ ],
230
+ "risks": [
231
+ "A autocrítica pode ser confiante demais ou não ver seus erros.",
232
+ "As chamadas extras adicionam latência e custo.",
233
+ "Sem ancoragem, os ganhos são limitados."
234
+ ],
235
+ "whenNot": [
236
+ "Quando você tem uma verificação externa objetiva: use avaliador-otimizador.",
237
+ "Quando uma única passagem já alcança o nível.",
238
+ "Quando os orçamentos de latência são muito apertados."
239
+ ],
240
+ "examples": [
241
+ "Um agente de código que lê falhas de testes e corrige seu próprio patch.",
242
+ "Uma tarefa de raciocínio em que o modelo revisa seus passos antes de responder.",
243
+ "Um rascunho que o modelo revisa em busca de lacunas antes de finalizar."
244
+ ],
245
+ "productionEvidence": {
246
+ "context": "Tarefas onde a qualidade importa mais que latência ou custo —redação, geração de código, análise— e onde os erros são detectáveis na revisão.",
247
+ "scenario": "Após produzir uma primeira resposta, o modelo (ou um crítico à parte) a avalia frente a critérios concretos e produz uma versão revisada; o laço é limitado a uma ou duas passagens.",
248
+ "technology": "Uma cadeia de prompts criticar-depois-revisar, idealmente apoiada por sinais externos (testes, ferramentas, um avaliador à parte) para o trabalho de alto risco.",
249
+ "load": "Cada passagem de reflexão ao menos duplica as chamadas, então é aplicada de forma seletiva às saídas que justificam o sobrecusto.",
250
+ "results": "Padrão observado: a reflexão melhora a qualidade onde o modelo consegue de fato detectar os próprios erros, mas pode sobrerrevisar respostas corretas e ao menos duplica o custo. Meça o ganho frente a um conjunto de avaliação antes de confiar nela, e prefira sinais externos quando há muito em jogo."
251
+ },
252
+ "kpis": [
253
+ {
254
+ "metric": "Ganho de qualidade pela reflexão",
255
+ "note": "Melhoria medida na qualidade com o passo de reflexão versus sem ele; se não for mensurável, o passo não justifica seu custo."
256
+ },
257
+ {
258
+ "metric": "Taxa de autocorreção",
259
+ "note": "Proporção de erros reais que o modelo detecta e corrige ao revisar, distinta de edições cosméticas."
260
+ },
261
+ {
262
+ "metric": "Latência e custo adicionados",
263
+ "note": "A reflexão ao menos duplica as chamadas; vigie o sobrecusto frente à qualidade que traz."
264
+ },
265
+ {
266
+ "metric": "Taxa de sobrerrevisão",
267
+ "note": "Com que frequência a reflexão degrada uma resposta já boa ao questioná-la em excesso."
268
+ }
269
+ ],
270
+ "failureModes": [
271
+ "Pontos cegos de autoavaliação: um modelo costuma não ver os próprios erros, então a reflexão os ignora.",
272
+ "Sobrerrevisão: o modelo 'corrige' uma resposta correta e a piora.",
273
+ "Custo e latência dobram (ou mais) para um ganho de qualidade marginal ou nulo.",
274
+ "Falsa confiança: o modelo afirma que a saída já está correta quando não está."
275
+ ],
276
+ "lessons": [
277
+ "Meça o ganho; a reflexão vale a pena só onde melhora a qualidade de forma demonstrável.",
278
+ "Prefira sinais externos (testes, ferramentas, um avaliador à parte) à pura autocrítica quando há muito em jogo.",
279
+ "Limite a reflexão a uma ou duas passagens: os retornos caem rápido e o custo se acumula.",
280
+ "Dê ao passo de reflexão critérios concretos, não um vago 'melhore isto'."
281
+ ],
282
+ "faqs": [
283
+ {
284
+ "q": "Reflexão ou avaliador-otimizador?",
285
+ "a": "A reflexão usa um modelo para se autocriticar (mais simples); o avaliador-otimizador usa um avaliador separado (mais afiado, menos enviesado). Escolha conforme quão confiável é a autoavaliação na sua tarefa."
286
+ },
287
+ {
288
+ "q": "A reflexão sempre ajuda?",
289
+ "a": "Ajuda mais quando ancorada em feedback real como resultados de testes ou erros. A pura autoavaliação pode ser confiante demais e agregar pouco."
290
+ },
291
+ {
292
+ "q": "Quantas rodadas de reflexão?",
293
+ "a": "Mantenha limitado, muitas vezes uma ou duas. Os retornos decrescentes e o custo crescente fazem laços longos raramente valerem a pena."
294
+ }
295
+ ]
296
+ }
297
+ }
298
+ }