{
    "componentChunkName": "component---src-templates-tags-template-js",
    "path": "/tag/design-patterns/",
    "result": {"data":{"allMdx":{"totalCount":1,"edges":[{"node":{"excerpt":"","fields":{"slug":"/posts/2026-06-07-ai-agent-design-patterns/"},"frontmatter":{"title":"AI Agent Design Patterns","date":"07-June-2026"},"body":"var _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"AI Agent Design Patterns\",\n  \"date\": \"2026-06-07T00:00:00.000Z\",\n  \"published\": true,\n  \"categories\": [\"Design Patterns\", \"AI\", \"AI Agent\", \"LLM\"],\n  \"tags\": [\"design-patterns\", \"ai\", \"ai-agent\", \"llm\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, mdx(\"b\", null, \"ReAct (Reason + Act)\")), mdx(\"p\", null, \"Concept: Alternate between reasoning steps and taking actions (tool calls, API calls, etc.)\"), mdx(\"p\", null, \"Flow:\"), mdx(\"ol\", null, mdx(\"li\", null, \"LLM generates reasoning / thought\"), mdx(\"li\", null, \"Take action (call a tool or external system)\"), mdx(\"li\", null, \"Observe output and feed it back into reasoning\")), mdx(\"p\", null, \"Strengths: Multi-step problem solving, tool orchestration, grounded responses\"), mdx(\"p\", null, \"Use case: Complex question answering, multi-tool agents, decision-making systems\"), mdx(\"p\", null, mdx(\"b\", null, \"Tool-Calling / Tool-Augmented Agents\")), mdx(\"p\", null, \"Concept: The LLM acts as a controller that decides whether to call external tools\"), mdx(\"p\", null, \"Flow:\"), mdx(\"ol\", null, mdx(\"li\", null, \"LLM receives input\"), mdx(\"li\", null, \"LLM selects which tool(s) to call\"), mdx(\"li\", null, \"Execute tool(s)\"), mdx(\"li\", null, \"Synthesize final answer from tool output\")), mdx(\"p\", null, \"Strengths: Reduces hallucinations, improves grounding, enables use of APIs and external systems\"), mdx(\"p\", null, \"Use case: Wikipedia-style assistants, math solvers, structured data retrieval\"), mdx(\"p\", null, mdx(\"b\", null, \"Reflex / Reactive Agents\")), mdx(\"p\", null, \"Concept: Immediate response without planning or multi-step reasoning\"), mdx(\"p\", null, \"Flow: Input \\u2192 Response\"), mdx(\"p\", null, \"Strengths: Very fast, low complexity, low cost\"), mdx(\"p\", null, \"Use case: Chatbots, simple Q&A systems\"), mdx(\"p\", null, mdx(\"b\", null, \"Plan-and-Execute / Hierarchical Planning Agents\")), mdx(\"p\", null, \"Concept: The agent first creates a plan, then executes steps sequentially\"), mdx(\"p\", null, \"Flow:\"), mdx(\"ol\", null, mdx(\"li\", null, \"LLM generates a plan\"), mdx(\"li\", null, \"Execute each step using tools or computations\"), mdx(\"li\", null, \"Return final result\")), mdx(\"p\", null, \"Strengths: Strong for complex workflows and multi-step tasks\"), mdx(\"p\", null, \"Use case: Automation systems, workflow orchestration, research agents\"), mdx(\"p\", null, mdx(\"b\", null, \"Debate / Self-Reflection Agents\")), mdx(\"p\", null, \"Concept: Multiple candidate outputs are generated and evaluated before final selection\"), mdx(\"p\", null, \"Flow:\"), mdx(\"ol\", null, mdx(\"li\", null, \"Generate multiple candidate answers\"), mdx(\"li\", null, \"Critique or evaluate each candidate\"), mdx(\"li\", null, \"Select the best final output\")), mdx(\"p\", null, \"Strengths: Reduces errors, improves reliability, reduces hallucinations\"), mdx(\"p\", null, \"Use case: Code review, summarization, high-accuracy Q&A\"), mdx(\"p\", null, mdx(\"b\", null, \"Memory-Augmented Agents\")), mdx(\"p\", null, \"Concept: The agent stores and retrieves long-term memory to maintain context\"), mdx(\"p\", null, \"Flow:\"), mdx(\"ol\", null, mdx(\"li\", null, \"Retrieve relevant past memory\"), mdx(\"li\", null, \"Reason using current input + memory\"), mdx(\"li\", null, \"Update memory with new information\")), mdx(\"p\", null, \"Strengths: Personalization, continuity, long-term context awareness\"), mdx(\"p\", null, \"Use case: Personal assistants, long-running agents, adaptive systems\"), mdx(\"div\", null, \"Summary\"), mdx(\"ul\", null, mdx(\"li\", null, \"ReAct: reasoning + acting with tools in loops\"), mdx(\"li\", null, \"Tool-Calling: LLM chooses external tools\"), mdx(\"li\", null, \"Reflex: direct single-step response\"), mdx(\"li\", null, \"Plan-and-Execute: plan first, then execute steps\"), mdx(\"li\", null, \"Debate: multiple outputs + self-evaluation\"), mdx(\"li\", null, \"Memory-Augmented: persistent context over time\")));\n}\n;\nMDXContent.isMDXComponent = true;"}}]}},"pageContext":{"tag":"design-patterns"}},
    "staticQueryHashes": ["4278130389"]}