<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://cognilium.ai/</loc>
    <image:image>
      <image:loc>https://cognilium.ai/assets/Cognilium-logo/Cognilium-logo-blue.png</image:loc>
      <image:title>Cognilium AI logo</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/order-batching</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/c57809e0ad6c58cda863dae630208acb091bf281-1200x630.png?w=1200&amp;auto=format</image:loc>
      <image:title>A diagram titled &quot;Many orders, one walk&quot; with two floor-plan panels holding the same four single-item orders and one pack station. On the left, labelled four walks, each order is picked separately, so four trips fan out from the pack station to four locations and back. On the right, labelled one walk, the four orders are batched into a single tour that threads all four locations and returns once, with four order totes shown on the cart. A footer reads: Batching amortises the walk. It does not remove it.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/slotting-vs-routing</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/bbc9f436afd7b61dd648e3287b614a1614c7c5d6-1200x630.png?w=1200&amp;auto=format</image:loc>
      <image:title>A diagram titled &quot;Routing shortens the trip, slotting removes it&quot; with two floor-plan panels holding the same four order lines. On the left, labelled Routing, four scattered stops across the aisles have been resequenced into the shortest path, which still crosses the floor. On the right, labelled Slotting, the same four items have been moved into a single aisle beside the pack station, so the walk barely leaves it. A footer reads: Routing improves a trip. Slotting can eliminate it.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/cube-per-order-index</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/c4a0169e7c4905d9671bf6a1d55a1d31a9874546-1200x630.png?w=1200&amp;auto=format</image:loc>
      <image:title>A diagram titled &quot;Space per pick decides the slot.&quot; Three items are ranked by cube-per-order index. On the left, a small box picked often has a low index and is tagged for the front slot nearest shipping. In the middle, a medium box picked some has a mid index. On the right, a bulky box picked rarely has a high index and goes to the back. A footer notes that COI ranks each item on its own, space divided by picks, and cannot see which items ship together.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/measure-warehouse-travel-waste</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/2ddd9b4ac9e41e19bb6daf473611b7329bbfbb80-1200x630.png?w=1200&amp;auto=format</image:loc>
      <image:title>A diagram titled &quot;Two walks, one order.&quot; Two schematic floor plans hold the same single order of five numbered items and the same pack station. On the left, &quot;today’s placement,&quot; the five items are scattered across four aisles and the walked path is long. On the right, &quot;placed from the order history,&quot; the same five items are clustered near the pack station and the path is short. A note reads that the gap between the two paths is the travel waste, and that you rebuild it from a year of orders rather than time it with a stopwatch.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/dynamics-365-dynamic-item-placement-slotting</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/063140404b3365257d0b45fa3c684d48e9cf6497-1200x630.png?w=1200&amp;auto=format</image:loc>
      <image:title>A mock Dynamics 365 Warehouse and item storage policy row. The columns are Item, Preferred location, and Target quantity, with the values AISLE-02-A and 40 highlighted, under a note reading &quot;you type these in, this is the slotting decision.&quot; Beside it, a tick that the feature holds inbound stock to your numbers automatically, and a cross that it works out whether those numbers are right. The caption reads that the last question is slotting, it lives in your order history, and the feature never reads it.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/warehouse-slotting-congestion</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/430763fabb755f48df720b468e68f669742adb4a-1200x630.png?w=1200&amp;auto=format</image:loc>
      <image:title>Two warehouse floors compared. On the left, the fastest movers are piled into a single aisle crowded with four pickers, labelled forty of every hundred picks and about seven pairs of pickers in the aisle at once. On the right, the same items are spread across four calmer aisles with one picker each, labelled fifteen in the busiest and about one pair. The caption reads that the work did not change, only where it sits, and the travel report shows a short route either way.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/warehouse-location-accuracy</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/f2c2afa7da9bf2dcc67d40d196efedfb791b0175-1200x630.png?w=1200&amp;auto=format</image:loc>
      <image:title>A sample of 100 warehouse bays drawn as a ten by ten grid with eight marked as disagreeing with the system. Beside it, three confidence bands on a shared axis show that the same result gives a plausible range of 0 to 18 in 100 from a 30 bay sample, 3 to 13 from 100 bays, and 5 to 11 from 400 bays.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/warehouse-slotting-data-requirements</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/27ef9cf540668bf20ce134c7af0d903926b55ce6-1200x630.png?w=1200&amp;auto=format</image:loc>
      <image:title>Two spreadsheet extracts of the same picking history side by side. The left one is summarised by item, with the order column struck out and hatched away. The right one keeps one row per line picked, with the order number column highlighted and repeating across rows.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/abc-analysis-dollars-vs-picks</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/e4d93fa4ce36809f1f21710ad5806168df129d0b-1880x1253.jpg?w=1200&amp;auto=format</image:loc>
      <image:title>Cartons sorted into groups, illustrating how items are ranked into A, B and C classes</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/d365-dynamic-item-placement</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/76847fa6a37d028634ed796a62b442a6b5aafecd-1880x1253.jpg?w=1200&amp;auto=format</image:loc>
      <image:title>A worker placing cartons into a storage location during put-away</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/d365-location-directives</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/a67536149f8f5c7006f71d82273fe2523021cb87-1880x1253.jpg?w=1200&amp;auto=format</image:loc>
      <image:title>Barcoded location labels on warehouse racking, the addresses a location directive resolves to</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/does-spatial-location-do-slotting</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/9eeccca6a482f7ab4a795c808ff629e871e0ca6a-1880x1058.jpg?w=1200&amp;auto=format</image:loc>
      <image:title>Overhead view of a warehouse floor, the physical space that coordinates describe</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/dynamics-365-2026-wave-1-warehouse-management</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/3b197a69878f814180d54146e9861a036cf6285c-1200x630.png?w=1200&amp;auto=format</image:loc>
      <image:title>The eight warehouse management features in the Dynamics 365 2026 release wave 1 plan, each with its general availability date, with archiving load data and worker ID capture marked as having had their dates moved.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/exporting-order-lines-from-d365</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/aa72b901c0e3e433e4e8ec3af1cd0dcbc58f0985-1880x1253.jpg?w=1200&amp;auto=format</image:loc>
      <image:title>Rows of tabular data on screen, the order-line export a slotting analysis starts from</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/net-of-restock</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/5da14e28f97f3820ebd395e5a10643753f940821-1880x1253.jpg?w=1200&amp;auto=format</image:loc>
      <image:title>A pallet being moved to replenish a pick face, the hidden cost that offsets placement savings</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/travel-statistic-provenance</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/146d8fcf854efe245423ff1648b840c65671a593-1880x1253.jpg?w=1200&amp;auto=format</image:loc>
      <image:title>Archive shelves of bound volumes, standing in for the citation trail behind a widely repeated warehouse statistic</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/what-is-warehouse-slotting</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/bbc9f436afd7b61dd648e3287b614a1614c7c5d6-1200x630.png?w=1200&amp;auto=format</image:loc>
      <image:title>Two warehouse layouts compared. On the left, routing finds the shortest path between four scattered locations. On the right, slotting has moved two of the items together so there are fewer locations to visit at all.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/who-can-help-dynamics-365-slotting</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/941a0bc83684aa0446e631ce7bd4bccc09cd38a0-1880x1253.jpg?w=1200&amp;auto=format</image:loc>
      <image:title>A warehouse manager reviewing inventory on a tablet beside racking</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/can-dynamics-365-optimize-inventory-placement</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/80acfc1ea099738153b3582118c1aca529dad6fd-1200x630.png?w=1200&amp;auto=format</image:loc>
      <image:title>Diagram showing that the Dynamics 365 Warehouse slotting feature reads three live demand states, Ordered, Reserved and Released, and produces a replenishment plan. Shipment history is not an input.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/warehouse-pickup-optimization-guide</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/13e0d5dd3db56a6721acf092f699a71de8c71e33-1600x900.png?w=1200&amp;auto=format</image:loc>
      <image:title>Warehouse pickup optimization field guide: a dark warehouse floor with shelf racks and a single glowing serpentine pick path leading from the dock. Cognilium AI.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/knowledge-graph-construction</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/dabca03a1a3201cd46e854470a59b173f3fbf48d-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>You cannot retrieve your way out of a bad graph. In a GraphRAG system, answer quality is decided at construction, not retrieval, because the graph is built once and queried forever. Where quality is won, in four points: schema first, with typed nodes and typed edges; extraction as a pipeline of eight stages, not one prompt; entity resolution at write time, so one entity becomes one node; and provenance on every edge, so every claim is one you can check. Build it like it matters.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/multi-agent-latency</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/001f10b5da25839814ff4af189a10d69d57deb3d-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>You built a line when the work was a graph. Your latency is the longest path through the graph, not the sum of the agents. Where the seconds go, in four points: six round-trips, run one at a time for about twelve seconds; the critical path, the longest chain of dependencies, which sets the floor; parallel branches, where independent agents run at once; and the tail compounds, because every hop multiplies the chance of a slow run. Shorten the path, not the agents.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/multi-agent-change-management</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/bc291485cf28d316e8bee66d8b0f3e3d7e783f2e-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>There is no such thing as a local change. Change one agent and you change every agent below it, so the unit of change is the pipeline, not the agent. Why a change spreads, in four steps: output is input, because one agent feeds the next; there is no typed contract, because outputs are natural language; coupling propagates, because a tweak shifts the whole chain; so you re-test the graph, not just the agent. Ship the pipeline, not the agent.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/multi-agent-cost-optimization</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/6f89f6ee30240bfb1c162ae94244643cdaf3fb07-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>You pay for the same context fourteen times. A single call you pay for once. A naive multi-agent run re-reads the same context on every call. Where the bill goes, in four steps: input dominates, about eighty percent of the tokens are prompt and not output; context accumulates, each handoff adds to it; it is re-sent on every call, so fourteen calls read the same context; and the result is about fifteen times a single call, not six times for six agents. Cut the tokens per call, not the number of agents.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/multi-agent-reliability</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/c776342cad241bdd74da272c5d70c6ad93abf86b-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Your retry just sent the email twice. A single call fails all at once, so a retry is safe. A multi-agent run fails in the middle, and the retry fires again. How a retry duplicates, in four steps: the run fails mid-way when finalize times out, the retry replays and re-runs steps one to five, the email sends again because the tool holds no idempotency key, and the result is two identical filings while no metric flags it. Make the replay safe, or the retry doubles the damage.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/multi-agent-security-trust-boundaries</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/8457a5d7be769c177d8bedcada4b48f93ef97ffb-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>One poisoned agent poisons the chain. A prompt injection does not stop at the agent that reads it, and in a multi-agent system one untrusted document can reach every tool you have. How one document wins, in four hops: an agent reads the poisoned chunk, the instruction rides the hand-off as its provenance is dropped, it reaches the privileged agent that holds the dangerous tool, and the data is sent out while no system metric flags it. Scope the tools, or one document owns them all.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/multi-agent-observability</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/0d973cf62add2ba58c25d80667261ca4f814cdd0-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Your multi-agent system is a black box. A broken microservice returns a 500, but a broken agent returns a 200 OK and a confident wrong answer, so your dashboard stays green while the system is wrong. Four things you cannot see without instrumenting the run: who spent the tokens, where it broke, whether the run is healthy, and whether the brakes tripped. Instrument it, or you are flying blind and calling it production.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/multi-agent-control-termination</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/8090fd8b2df4e341e9f7d1591faf84baee4f09dd-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Your multi-agent system has no brakes. You designed which agents exist and how they connect, but not the thing that decides when they stop, and in most systems nothing does. Control is emergent: it falls out of agents calling each other, so the system stops only when something runs out. Four ways control fails: non-termination, where the loop never ends; premature stop, where an agent&apos;s &quot;done&quot; was not actually done; mis-routing, where the task orbits and never lands; and no budget, where the rare tail run wrecks the bill. The fix is explicit control, not a smarter agent.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/multi-agent-context-handoffs</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/fcaa1a6764e2a615e576e58fbc27fadea7145e7d-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Your agents do not share a brain, they pass notes. Every hand-off compresses one agent&apos;s full working state into a message, and the next agent acts on that message alone, so the context one agent has is not the context the next one gets. Four ways a hand-off fails: context loss, where the sender drops what you needed; semantic drift, where the same words carry a different meaning; error laundering, where an uncertain guess arrives as a clean fact; and the coordination tax, where re-sending the accumulated context makes token cost grow quadratically. The fix is a shared store, not a better message.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/evaluating-multi-agent-systems</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/6726555fef94c3729875491a93fd677ef742c8ba-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>When a multi-agent system fails, which agent broke? The final answer will not tell you, because a multi-agent system fails in the seams between agents rather than inside any one of them. Evaluate in three layers: outcome, which answers whether it failed; component, which answers which parts work and gives the per-agent reliability; and trajectory, which answers where in the flow it broke and is the layer most teams skip.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/multi-agent-architecture-patterns</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/03015cc962eac405a84168b339c05275494ba05c-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>It is not how many agents, it is how you wire them. The same agents wired two ways differ by about forty points of reliability and ten times the cost, so pick the topology from the task dependency graph. Four topology glyphs: a sequential line, an orchestrator fanning out to workers, a hierarchical tree of supervisors, and a fully connected network mesh. Topology is the decision, head count is a consequence.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/multi-agent-vs-single-agent</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/7fa4d50744c85fcb3e839118dad146ac902735f9-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>A second agent is a cost, not an upgrade. Multi-agent architecture buys parallelism and isolation and charges tokens, coordination, and compounding failure, and most teams pay without the gain. A default one-agent design, cheap and consistent with one context and one writer, gives way through a gate only when you can prove you need more to a many-agent design that costs roughly fifteen times the tokens with coordination conflicts and reliability decay.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/evaluating-agent-memory</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/569f63259522a542b6c735d132af5b42a91b4137-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>A leaderboard rank is not an evaluation. The public agent-memory benchmarks are broken and contested, so a serious team builds the test on its own data, with its own metrics, including the checks the leaderboard skips. A suspect leaderboard score gives way to a scorecard of retrieval, consistency, recency, abstention, and cost measured on your own data.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/agent-memory-consolidation</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/dd0ad2f7afe62a8ce956dcdb07a30d70d595ae93-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>An agent that saves everything remembers nothing. A raw log is not a memory; the write path makes one by extracting the facts, reconciling the conflicts, and retiring the stale. A growing, noisy raw history is consolidated into a clean, current memory of a knowledge graph and a fact table that the agent can actually query.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/agent-working-memory-context-window</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/12e6fb39c23943fda7ed75db7efeb298cf1c3945-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Why a bigger context window will not save your agent. The context window is a cache, not a memory: finite and expensive, used less reliably as it fills. At scale the eviction and compaction policy that decides what stays in the window matters more than the size of the window. Pin the invariants, keep recent turns, compact the warm middle, and offload the rest to an external store you re-retrieve from.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/agent-memory-retrieval-ranking</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/7c1a60a2e8347cb2b1ecbe95d095f40f0b61b0b0-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Why your agent retrieves the wrong memory: top-k similarity search is a lookup with one signal, while production memory retrieval ranks candidates on many signals including relevance, recency, and importance, composing them into one score.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/mem0-vs-graphiti-agent-memory</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/791aecc9b2c1f165c637c5f902e561e03d33655a-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Mem0 vs Graphiti vs building your own graph: three agent-memory options shown as cards, with the choice driven by whether the facts your agent remembers change over time.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/agent-memory-why-agents-forget</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/a02481cf98f6895ded65fe7c8c85d78cfd5fcf45-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Why your AI agent keeps forgetting: a memory stack where the top working-memory layer dissolves into particles, showing that a context window is ephemeral, not durable memory.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/knowledge-graph-health-check</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/fd4d12f0e9b1246fdad0c6fab9df650246b83da9-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>The 20-minute knowledge graph health check: a graph of nodes with three flagged in amber, the rot the check catches before AI agents serve a wrong answer.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/agent-orchestration-vs-knowledge-graph</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/9c775c4049c7ad038fb07989c4cb640226c44d3e-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>What 23 agents taught us about knowledge graphs: a network of agent nodes, showing that an orchestration graph of agents is not the same as a knowledge graph of facts.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/do-you-need-a-knowledge-graph</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/531fa644348961e7cf6d256cf67efe0ce1f52452-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>A decision fork: your hardest question splits toward a vector database for content questions or a knowledge graph for connected ones.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/keeping-knowledge-graph-fresh-incremental-updates</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/4ef35175cbdaf7e234062ee12793a9fb0eb334dc-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>A new document flowing into a knowledge graph, with one node refreshed by an incremental update.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/scoring-knowledge-graph-before-agents</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/87fd635e91cb58d9f021326aa6fd11b7c80e8e0d-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>A small knowledge graph feeding a score gauge reading 94 out of 100.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/mislink-detection-knowledge-graph</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/632b4cccce5234ad86063a2005ad01905f01b61a-1200x675.svg?w=1200&amp;auto=format</image:loc>
      <image:title>A knowledge graph with valid edges in purple and one wrong, unsupported edge in red, labelled no source.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/entity-resolution-knowledge-graph</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/4164f20ce09b2879b185536f5260792e2bcb9f5e-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Eleven name-nodes converging into one resolved company node — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/graph-rot-knowledge-graph-quality</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/af910e0726625b55428aa3ed34a6b02afce36433-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Graph rot: a knowledge graph with a duplicate node and a wrong edge — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/8-stage-docint-pipeline</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/a54d7dfc8a6fb616da28d99984e375bf7df0c1e5-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>The 8-Stage Document Intelligence Pipeline — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/agent-pipeline-failure-recovery-dynamodb-sqs</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/8f38143972084258b9de91fd4caba21e5356fdc1-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Surviving Partial Failure in a 3,300-Call Agent Pipeline — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/anti-hallucination-domain-vocabulary-grounding</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/8d8911b7e4bfa46271519557a48ba225c6db77d0-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Anti-Hallucination via Runtime Grounding Against a Domain Vocabulary — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/bias-detection-multi-agent-evaluation</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/dbf0daa9e1f036ff9065176b7f201a47af09c0c4-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Bias-Detection Alerts on a 4-Agent Candidate Evaluation Pipeline — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/gemini-entity-disambiguation-mislink-detection</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/ef76f8c0342b585052647b91bf4257833eb34f2b-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Gemini-Driven Entity Disambiguation With Post-Creation Mislink Detection — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/google-adk-supervisor-multi-tenant-tool-registration</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/4cc176c0ec9de5edf20ae569d7dbeb34524c1c78-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Supervisor-Router on Google ADK with Per-Org Tool Registration — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/hybrid-retrieval-prefetch-metadata-filtering</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/a9115c0e2fd75c35b5f90617065e864b34254cd6-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Hybrid Retrieval With Prefetch-Time Metadata Filtering — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/llm-judge-temperature-escalation-retry</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/8fe5acfdcfdafcb88c3ab103473eb879c35a4806-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>LLM-as-Judge With Temperature-Escalation Retry Inside a 60-Second Budget — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/organizational-memory-rag-slack-confluence-loom</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/46aa6b521c1426b711747f1c539e82d6c7923c2b-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Organizational Memory: RAG Across Slack, Confluence, and Loom — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/production-llmops-stack</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/58de33d568bc7063d6094bfaacd11e2332ab9011-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>The Production LLMOps Stack: Evals, Judges, Retries, Circuit Breakers — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/sentiment-escalation-22-language-voice-support</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/7f8d6eb0d307fbcb07469ff482fd1fb182ccf6d0-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Sentiment-Driven Escalation in a 22-Language Voice Support Agent — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/smart-category-routing-contract-review</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/33ac75502bf253939f349a00812cdec76bd37de7-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Smart Category Routing for Contract Review — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/smart-category-score-routing-cost</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/1bff98125ad5e9c67e09a896848d4b4607c3f5b3-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Smart Category-Score Routing That Cuts LLM Cost ~75% — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/sqs-fifo-vs-standard-agent-pipeline-design</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/925e6279410782f33735abbb81ff16472a793ea9-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>When to Mix SQS FIFO and Standard Queues in an Agent Pipeline — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/ultravox-non-scripted-voice-interview-agent</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/12fe2fef7dbb81e65112618bc3aab8b645919359-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Designing a Non-Scripted Voice Interview Agent on Ultravox — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/voice-ai-latency-budget-deep-dive</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/6e54246e09013a4240008c56f1253fc556316719-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Voice AI Latency Budget Deep Dive: Where the 1.5 Seconds Goes — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/zero-trust-multi-tenant-firestore</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/01dfe6f9822a8e2e6069a250f47da59b768382e1-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Zero-Trust Multi-Tenant Firestore: Middleware, Claims, and 60+ Wildcard Permissions — Cognilium AI</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/enterprise-voice-ai-guide</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/144bd08e30408e9204737431c8c36f3d33ef02f4-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Voice AI architecture diagram showing Twilio call routing into Whisper STT, an LLM, and ElevenLabs TTS with the per-stage latency budget.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/multi-agent-orchestration-aws</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/57d40c4b39b46f5e1194dff22891255b667cd838-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Diagram of supervisor-specialist multi-agent orchestration on AWS Bedrock AgentCore.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/blogs/rag-vs-graphrag</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/438c99022e47e27d34e376b927ad7da9cd433ccf-1200x630.svg?w=1200&amp;auto=format</image:loc>
      <image:title>Architecture diagram showing the retrieval ceiling between plain vector RAG and GraphRAG hybrid retrieval pipelines.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/tech-news/claude-fable-5-back-online-what-changed</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/2880c6288cf38f914742ebe455a89b1bb995112e-1200x675.png?w=1200&amp;auto=format</image:loc>
      <image:title>Dark navy poster with &quot;Claude Fable 5 is back online&quot; as the headline and a five-node horizontal timeline: June 9 launch, June 12 suspended (red), June 26 approved for select US orgs, June 30 export controls lifted, July 1 redeployed (green). Cognilium AI branding.</image:title>
      <image:caption>The 20-day arc: Fable 5 launched June 9, suspended June 12 after an Amazon jailbreak report plus US export controls, restored July 1 with a targeted safety classifier.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/tech-news/ai-agents-silent-join-failure</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/f9ec655383b02d9b29af37b05e6cb3aa3530ab07-1731x909.png?w=1200&amp;auto=format</image:loc>
      <image:title>A lone figure stands on a thin glowing bridge of light over a dark sea, with ruined structures hidden below the surface, a metaphor for decisions built on a fragile unseen data foundation</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/tech-news/claude-fable-5-mythos-5-two-tier-release</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/c49ce70a885152ee421353c9de79fd299ab21cc7-1200x675.jpg?w=1200&amp;auto=format</image:loc>
      <image:title>Anthropic just shipped two new Claude models. The interesting one isn’t generally available.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://cognilium.ai/tech-news/graphrag-vs-flat-vector-rag-2026-default</loc>
    <image:image>
      <image:loc>https://cdn.sanity.io/images/dvtayvlm/production/fc7f2b84936f7d69407063d860764d2c89962020-1672x941.png?w=1200&amp;auto=format</image:loc>
      <image:title>Side-by-side comparison: scattered grey dots labelled flat-vector RAG embedding space on the left, an interconnected knowledge graph with blue nodes and labelled relationships (AUTHORED_BY, CITES, USES, PUBLISHED_IN) on the right, illustrating why graph retrieval beats flat-vector for relationship-heavy enterprise corpora in 2026.</image:title>
      <image:caption>Flat-vector RAG retrieves passages by similarity. GraphRAG retrieves passages by structure — and at 2026 cost levels, structure wins for any corpus where relationships matter more than text proximity.</image:caption>
    </image:image>
  </url>
</urlset>