Pinned Tweet
Last week I released the first article in my hands-on ๐๐๐ถ๐น๐ฑ๐ถ๐ป๐ด ๐๐ ๐๐ด๐ฒ๐ป๐๐ ๐๐ฟ๐ผ๐บ ๐ฆ๐ฐ๐ฟ๐ฎ๐๐ฐ๐ต series. It covers the tool use element of an Agent.
I wanted to do this for quite some time now and finally the time has arrived!
If you are using any orchestration applications, you might be abstracted away from what using a tool really means. I believe that understanding applications from the base building blocks is really important so we are implementing all of the abstractions from scratch.
After finishing the project you will learn:
โก๏ธ What AI Agents are.
โก๏ธ How the Tool usage in AI Agents actually works.
โก๏ธ How to build a decorator wrapper that extracts relevant details from a Python function to be passed to the LLM via system prompt.
โก๏ธ How to think about constructing effective system prompts that can be used for Agents.
โก๏ธ How to build an Agent class that is able to plan and execute actions using provided Tools.
You can find the article here: newsletter.swirlai.com/p/building-ai-โฆ
You can also find a Jupyter notebook and python scripts that complement the article in a GitHub repo (links in the article).
Youtube videos coming soon!
If youโre looking for something to dig your hands into between holidays be sure to take a look!
Second part of the series is coming in a few weeks.
Let me know if there are any issues following the project. Feel free to DM me or leave comments here or under the article ๐
#AI #LLM #MachineLearning
I wanted to do this for quite some time now and finally the time has arrived!
If you are using any orchestration applications, you might be abstracted away from what using a tool really means. I believe that understanding applications from the base building blocks is really important so we are implementing all of the abstractions from scratch.
After finishing the project you will learn:
โก๏ธ What AI Agents are.
โก๏ธ How the Tool usage in AI Agents actually works.
โก๏ธ How to build a decorator wrapper that extracts relevant details from a Python function to be passed to the LLM via system prompt.
โก๏ธ How to think about constructing effective system prompts that can be used for Agents.
โก๏ธ How to build an Agent class that is able to plan and execute actions using provided Tools.
You can find the article here: newsletter.swirlai.com/p/building-ai-โฆ
You can also find a Jupyter notebook and python scripts that complement the article in a GitHub repo (links in the article).
Youtube videos coming soon!
If youโre looking for something to dig your hands into between holidays be sure to take a look!
Second part of the series is coming in a few weeks.
Let me know if there are any issues following the project. Feel free to DM me or leave comments here or under the article ๐
#AI #LLM #MachineLearning
38
198
1,155
98,861
Aurimas Griciลซnas retweeted
This is how you measure your AI system as an AI Engineer ๐
For regular software you would track metrics like uptime, error rate, p95 latency. However, they say little about whether the system is fast where users feel it, affordable at scale or correct.
Here are the metrics we systems. It is useful to group them by the question they answer:
๐ญ. ๐๐ ๐ถ๐ ๐ณ๐ฎ๐๐? (๐๐ฎ๐๐ฒ๐ป๐ฐ๐)
โก๏ธ Time to first token (TTFT): how long the user is exposed to a blank screen, the number that defines perceived latency.
โก๏ธ Inter-token latency (ITL): how smoothly tokens stream after the first one.
โก๏ธ End-to-end latency at p50 / p95 / p99, dominated by output length, track it per use case rather than globally.
๐ฎ. ๐๐ฎ๐ป ๐ถ๐ ๐๐ฐ๐ฎ๐น๐ฒ? (๐ง๐ต๐ฟ๐ผ๐๐ด๐ต๐ฝ๐๐ ๐ฎ๐ป๐ฑ ๐ฐ๐ผ๐๐)
โก๏ธ Tokens per second per user vs total system throughput, the two trade off against each other on the same hardware.
โก๏ธ Input and output tokens per request to measure your unit economics.
โก๏ธ Cache hit rate - prompt caching is often the technique that reduces cost the most.
โก๏ธ Cost per successful task, not cost per request, a cheap request that fails is a waste.
๐ฏ. ๐๐ ๐ถ๐ ๐ฐ๐ผ๐ฟ๐ฟ๐ฒ๐ฐ๐? (๐ค๐๐ฎ๐น๐ถ๐๐)
โก๏ธ Task success rate on a labeled eval set, re-run on every prompt or model change.
โก๏ธ Groundedness for RAG - is the answer supported by the retrieved context.
โก๏ธ Retrieval precision@k and recall@k - generation cannot fix what retrieval never surfaced.
โก๏ธ LLM-as-judge scores over time, calibrated against human labels.
โก๏ธ User feedback signals: thumbs, edits to generated output, free form feedback.
๐ฐ. ๐๐ผ๐ฒ๐ ๐ถ๐ ๐ต๐ผ๐น๐ฑ ๐๐ฝ? (๐ฅ๐ฒ๐น๐ถ๐ฎ๐ฏ๐ถ๐น๐ถ๐๐)
โก๏ธ Error, timeout and rate-limit rates per provider.
โก๏ธ Retry and fallback rate - how often you silently switch to a backup model.
โก๏ธ Guardrail trigger and refusal rates.
๐ฑ. ๐๐ผ๐ ๐ฑ๐ผ๐ฒ๐ ๐๐ผ๐๐ฟ ๐ฎ๐ด๐ฒ๐ป๐ ๐ฏ๐ฒ๐ต๐ฎ๐๐ฒ? (๐๐ด๐ฒ๐ป๐ ๐บ๐ฒ๐๐ฟ๐ถ๐ฐ๐)
โก๏ธ Tool-call error rate.
โก๏ธ Steps and tokens per completed task - drift here means cost is rising while accuracy remains the same
โก๏ธ Context window utilization - the early warning for compaction and truncation issues.
โ๏ธ Latency and reliability show up on day one because standard infra emits them. Quality, cost per task, and agent behavior need deliberate instrumentation, and they are where AI systems fail in production.
Which metric caught a real problem for you that the standard dashboards missed? ๐
For regular software you would track metrics like uptime, error rate, p95 latency. However, they say little about whether the system is fast where users feel it, affordable at scale or correct.
Here are the metrics we systems. It is useful to group them by the question they answer:
๐ญ. ๐๐ ๐ถ๐ ๐ณ๐ฎ๐๐? (๐๐ฎ๐๐ฒ๐ป๐ฐ๐)
โก๏ธ Time to first token (TTFT): how long the user is exposed to a blank screen, the number that defines perceived latency.
โก๏ธ Inter-token latency (ITL): how smoothly tokens stream after the first one.
โก๏ธ End-to-end latency at p50 / p95 / p99, dominated by output length, track it per use case rather than globally.
๐ฎ. ๐๐ฎ๐ป ๐ถ๐ ๐๐ฐ๐ฎ๐น๐ฒ? (๐ง๐ต๐ฟ๐ผ๐๐ด๐ต๐ฝ๐๐ ๐ฎ๐ป๐ฑ ๐ฐ๐ผ๐๐)
โก๏ธ Tokens per second per user vs total system throughput, the two trade off against each other on the same hardware.
โก๏ธ Input and output tokens per request to measure your unit economics.
โก๏ธ Cache hit rate - prompt caching is often the technique that reduces cost the most.
โก๏ธ Cost per successful task, not cost per request, a cheap request that fails is a waste.
๐ฏ. ๐๐ ๐ถ๐ ๐ฐ๐ผ๐ฟ๐ฟ๐ฒ๐ฐ๐? (๐ค๐๐ฎ๐น๐ถ๐๐)
โก๏ธ Task success rate on a labeled eval set, re-run on every prompt or model change.
โก๏ธ Groundedness for RAG - is the answer supported by the retrieved context.
โก๏ธ Retrieval precision@k and recall@k - generation cannot fix what retrieval never surfaced.
โก๏ธ LLM-as-judge scores over time, calibrated against human labels.
โก๏ธ User feedback signals: thumbs, edits to generated output, free form feedback.
๐ฐ. ๐๐ผ๐ฒ๐ ๐ถ๐ ๐ต๐ผ๐น๐ฑ ๐๐ฝ? (๐ฅ๐ฒ๐น๐ถ๐ฎ๐ฏ๐ถ๐น๐ถ๐๐)
โก๏ธ Error, timeout and rate-limit rates per provider.
โก๏ธ Retry and fallback rate - how often you silently switch to a backup model.
โก๏ธ Guardrail trigger and refusal rates.
๐ฑ. ๐๐ผ๐ ๐ฑ๐ผ๐ฒ๐ ๐๐ผ๐๐ฟ ๐ฎ๐ด๐ฒ๐ป๐ ๐ฏ๐ฒ๐ต๐ฎ๐๐ฒ? (๐๐ด๐ฒ๐ป๐ ๐บ๐ฒ๐๐ฟ๐ถ๐ฐ๐)
โก๏ธ Tool-call error rate.
โก๏ธ Steps and tokens per completed task - drift here means cost is rising while accuracy remains the same
โก๏ธ Context window utilization - the early warning for compaction and truncation issues.
โ๏ธ Latency and reliability show up on day one because standard infra emits them. Quality, cost per task, and agent behavior need deliberate instrumentation, and they are where AI systems fail in production.
Which metric caught a real problem for you that the standard dashboards missed? ๐
15
2
26
1,597
This is how you measure your AI system as an AI Engineer ๐
For regular software you would track metrics like uptime, error rate, p95 latency. However, they say little about whether the system is fast where users feel it, affordable at scale or correct.
Here are the metrics we systems. It is useful to group them by the question they answer:
๐ญ. ๐๐ ๐ถ๐ ๐ณ๐ฎ๐๐? (๐๐ฎ๐๐ฒ๐ป๐ฐ๐)
โก๏ธ Time to first token (TTFT): how long the user is exposed to a blank screen, the number that defines perceived latency.
โก๏ธ Inter-token latency (ITL): how smoothly tokens stream after the first one.
โก๏ธ End-to-end latency at p50 / p95 / p99, dominated by output length, track it per use case rather than globally.
๐ฎ. ๐๐ฎ๐ป ๐ถ๐ ๐๐ฐ๐ฎ๐น๐ฒ? (๐ง๐ต๐ฟ๐ผ๐๐ด๐ต๐ฝ๐๐ ๐ฎ๐ป๐ฑ ๐ฐ๐ผ๐๐)
โก๏ธ Tokens per second per user vs total system throughput, the two trade off against each other on the same hardware.
โก๏ธ Input and output tokens per request to measure your unit economics.
โก๏ธ Cache hit rate - prompt caching is often the technique that reduces cost the most.
โก๏ธ Cost per successful task, not cost per request, a cheap request that fails is a waste.
๐ฏ. ๐๐ ๐ถ๐ ๐ฐ๐ผ๐ฟ๐ฟ๐ฒ๐ฐ๐? (๐ค๐๐ฎ๐น๐ถ๐๐)
โก๏ธ Task success rate on a labeled eval set, re-run on every prompt or model change.
โก๏ธ Groundedness for RAG - is the answer supported by the retrieved context.
โก๏ธ Retrieval precision@k and recall@k - generation cannot fix what retrieval never surfaced.
โก๏ธ LLM-as-judge scores over time, calibrated against human labels.
โก๏ธ User feedback signals: thumbs, edits to generated output, free form feedback.
๐ฐ. ๐๐ผ๐ฒ๐ ๐ถ๐ ๐ต๐ผ๐น๐ฑ ๐๐ฝ? (๐ฅ๐ฒ๐น๐ถ๐ฎ๐ฏ๐ถ๐น๐ถ๐๐)
โก๏ธ Error, timeout and rate-limit rates per provider.
โก๏ธ Retry and fallback rate - how often you silently switch to a backup model.
โก๏ธ Guardrail trigger and refusal rates.
๐ฑ. ๐๐ผ๐ ๐ฑ๐ผ๐ฒ๐ ๐๐ผ๐๐ฟ ๐ฎ๐ด๐ฒ๐ป๐ ๐ฏ๐ฒ๐ต๐ฎ๐๐ฒ? (๐๐ด๐ฒ๐ป๐ ๐บ๐ฒ๐๐ฟ๐ถ๐ฐ๐)
โก๏ธ Tool-call error rate.
โก๏ธ Steps and tokens per completed task - drift here means cost is rising while accuracy remains the same
โก๏ธ Context window utilization - the early warning for compaction and truncation issues.
โ๏ธ Latency and reliability show up on day one because standard infra emits them. Quality, cost per task, and agent behavior need deliberate instrumentation, and they are where AI systems fail in production.
Which metric caught a real problem for you that the standard dashboards missed? ๐
For regular software you would track metrics like uptime, error rate, p95 latency. However, they say little about whether the system is fast where users feel it, affordable at scale or correct.
Here are the metrics we systems. It is useful to group them by the question they answer:
๐ญ. ๐๐ ๐ถ๐ ๐ณ๐ฎ๐๐? (๐๐ฎ๐๐ฒ๐ป๐ฐ๐)
โก๏ธ Time to first token (TTFT): how long the user is exposed to a blank screen, the number that defines perceived latency.
โก๏ธ Inter-token latency (ITL): how smoothly tokens stream after the first one.
โก๏ธ End-to-end latency at p50 / p95 / p99, dominated by output length, track it per use case rather than globally.
๐ฎ. ๐๐ฎ๐ป ๐ถ๐ ๐๐ฐ๐ฎ๐น๐ฒ? (๐ง๐ต๐ฟ๐ผ๐๐ด๐ต๐ฝ๐๐ ๐ฎ๐ป๐ฑ ๐ฐ๐ผ๐๐)
โก๏ธ Tokens per second per user vs total system throughput, the two trade off against each other on the same hardware.
โก๏ธ Input and output tokens per request to measure your unit economics.
โก๏ธ Cache hit rate - prompt caching is often the technique that reduces cost the most.
โก๏ธ Cost per successful task, not cost per request, a cheap request that fails is a waste.
๐ฏ. ๐๐ ๐ถ๐ ๐ฐ๐ผ๐ฟ๐ฟ๐ฒ๐ฐ๐? (๐ค๐๐ฎ๐น๐ถ๐๐)
โก๏ธ Task success rate on a labeled eval set, re-run on every prompt or model change.
โก๏ธ Groundedness for RAG - is the answer supported by the retrieved context.
โก๏ธ Retrieval precision@k and recall@k - generation cannot fix what retrieval never surfaced.
โก๏ธ LLM-as-judge scores over time, calibrated against human labels.
โก๏ธ User feedback signals: thumbs, edits to generated output, free form feedback.
๐ฐ. ๐๐ผ๐ฒ๐ ๐ถ๐ ๐ต๐ผ๐น๐ฑ ๐๐ฝ? (๐ฅ๐ฒ๐น๐ถ๐ฎ๐ฏ๐ถ๐น๐ถ๐๐)
โก๏ธ Error, timeout and rate-limit rates per provider.
โก๏ธ Retry and fallback rate - how often you silently switch to a backup model.
โก๏ธ Guardrail trigger and refusal rates.
๐ฑ. ๐๐ผ๐ ๐ฑ๐ผ๐ฒ๐ ๐๐ผ๐๐ฟ ๐ฎ๐ด๐ฒ๐ป๐ ๐ฏ๐ฒ๐ต๐ฎ๐๐ฒ? (๐๐ด๐ฒ๐ป๐ ๐บ๐ฒ๐๐ฟ๐ถ๐ฐ๐)
โก๏ธ Tool-call error rate.
โก๏ธ Steps and tokens per completed task - drift here means cost is rising while accuracy remains the same
โก๏ธ Context window utilization - the early warning for compaction and truncation issues.
โ๏ธ Latency and reliability show up on day one because standard infra emits them. Quality, cost per task, and agent behavior need deliberate instrumentation, and they are where AI systems fail in production.
Which metric caught a real problem for you that the standard dashboards missed? ๐
15
2
26
1,597
Aurimas Griciลซnas retweeted
๐ก๐ถ๐ป๐ฒ ๐ฝ๐น๐ฎ๐ฐ๐ฒ๐ ๐๐ผ ๐๐๐ฒ ๐๐ฒ๐ฐ๐ถ๐๐ถ๐ผ๐ป ๐ ๐ผ๐ฑ๐ฒ๐น๐ (๐๐ฒ๐) ๐ถ๐ป ๐๐ด๐ฒ๐ป๐๐ถ๐ฐ ๐ฅ๐๐ ๐๐๐๐๐ฒ๐บ front to back ๐
๐ญ. ๐ ๐ผ๐ฑ๐ฒ๐น ๐ฟ๐ผ๐๐๐ถ๐ป๐ด. The prompt goes to a decision model, it picks the tier. Cheap models for lookups, expensive for what you cannot afford ๐ฎ๐ถ๐น๐. A separate yes-or-no per potential hazard. Before the LLM sees the input or on the answer that has been produced.
๐ฏ. ๐ฅ๐ฒ๐๐ฟ๐ถ๐ฒ๐๐ฎ๐น ๐๐๐ณ๐ณ๐ถ๐ฐ๐ถ๐ฒ๐ป๐ฐ๐. Is what came back enough to answer, or should we search again.
๐ฐ. ๐ฃ๐ฎ๐๐๐ฎ๐ด๐ฒ ๐ณ๐ถ๐น๐๐ฒ๐ฟ๐ถ๐ป๐ด ๐ฎ๐ป๐ฑ ๐ฟ๐ฒ๐ฟ๐ฎ๐ป๐ธ๐ถ๐ป๐ด. Does this passage answer the question or is it only keyword-adjacent. Apply per candidate and sort by probability.
๐ฑ. ๐๐ถ๐๐ฎ๐๐ถ๐ผ๐ป ๐ฐ๐ต๐ฒ๐ฐ๐ธ๐ถ๐ป๐ด. Does this source support the claim, contradict it, or fail to address it.
๐ฒ. ๐ง๐ผ๐ผ๐น-๐ฐ๐ฎ๐น๐น ๐ด๐ฎ๐๐ถ๐ป๐ด. Allow, ask or deny per call, with the bands in your code.
๐ณ. ๐๐ผ๐ผ๐ฝ ๐๐ฒ๐ฟ๐บ๐ถ๐ป๐ฎ๐๐ถ๐ผ๐ป. Does the result actually satisfy the acceptance criteria?
๐ด. ๐๐ผ๐ป๐๐ฒ๐ ๐ ๐ฐ๐ผ๐บ๐ฝ๐ฎ๐ฐ๐๐ถ๐ผ๐ป. Score each piece of context and drop the stale ones instead of summarising them.
๐ต. ๐๐๐ฎ๐น๐ ๐ฎ๐ ๐ณ๐๐น๐น ๐ฐ๐ผ๐๐ฒ๐ฟ๐ฎ๐ด๐ฒ. Significantly cheaper per verdict than an LLM judge. Potentially unlocks the ability to grade every trace instead of sampling.
Outside the Agentic RAG loop there are so many other use cases:
โก๏ธ Bulk labeling.
โก๏ธ Inbox triage.
โก๏ธ Secret detection in diffs.
โก๏ธ โฆ
What to watch out for:
โ You still need to eval your decision model use.
โ Closely monitor your thresholds and version them as code.
โ Decision models do not return an explanation, only which outputs are bad. If you require an explanation, fall back to an LLM judge.
๐ Generation is one call in most systems. The decisions around it are the other twenty, and that is where this pays.
What else belongs on the list? ๐
๐ญ. ๐ ๐ผ๐ฑ๐ฒ๐น ๐ฟ๐ผ๐๐๐ถ๐ป๐ด. The prompt goes to a decision model, it picks the tier. Cheap models for lookups, expensive for what you cannot afford ๐ฎ๐ถ๐น๐. A separate yes-or-no per potential hazard. Before the LLM sees the input or on the answer that has been produced.
๐ฏ. ๐ฅ๐ฒ๐๐ฟ๐ถ๐ฒ๐๐ฎ๐น ๐๐๐ณ๐ณ๐ถ๐ฐ๐ถ๐ฒ๐ป๐ฐ๐. Is what came back enough to answer, or should we search again.
๐ฐ. ๐ฃ๐ฎ๐๐๐ฎ๐ด๐ฒ ๐ณ๐ถ๐น๐๐ฒ๐ฟ๐ถ๐ป๐ด ๐ฎ๐ป๐ฑ ๐ฟ๐ฒ๐ฟ๐ฎ๐ป๐ธ๐ถ๐ป๐ด. Does this passage answer the question or is it only keyword-adjacent. Apply per candidate and sort by probability.
๐ฑ. ๐๐ถ๐๐ฎ๐๐ถ๐ผ๐ป ๐ฐ๐ต๐ฒ๐ฐ๐ธ๐ถ๐ป๐ด. Does this source support the claim, contradict it, or fail to address it.
๐ฒ. ๐ง๐ผ๐ผ๐น-๐ฐ๐ฎ๐น๐น ๐ด๐ฎ๐๐ถ๐ป๐ด. Allow, ask or deny per call, with the bands in your code.
๐ณ. ๐๐ผ๐ผ๐ฝ ๐๐ฒ๐ฟ๐บ๐ถ๐ป๐ฎ๐๐ถ๐ผ๐ป. Does the result actually satisfy the acceptance criteria?
๐ด. ๐๐ผ๐ป๐๐ฒ๐ ๐ ๐ฐ๐ผ๐บ๐ฝ๐ฎ๐ฐ๐๐ถ๐ผ๐ป. Score each piece of context and drop the stale ones instead of summarising them.
๐ต. ๐๐๐ฎ๐น๐ ๐ฎ๐ ๐ณ๐๐น๐น ๐ฐ๐ผ๐๐ฒ๐ฟ๐ฎ๐ด๐ฒ. Significantly cheaper per verdict than an LLM judge. Potentially unlocks the ability to grade every trace instead of sampling.
Outside the Agentic RAG loop there are so many other use cases:
โก๏ธ Bulk labeling.
โก๏ธ Inbox triage.
โก๏ธ Secret detection in diffs.
โก๏ธ โฆ
What to watch out for:
โ You still need to eval your decision model use.
โ Closely monitor your thresholds and version them as code.
โ Decision models do not return an explanation, only which outputs are bad. If you require an explanation, fall back to an LLM judge.
๐ Generation is one call in most systems. The decisions around it are the other twenty, and that is where this pays.
What else belongs on the list? ๐
18
24
135
4,903
๐ก๐ถ๐ป๐ฒ ๐ฝ๐น๐ฎ๐ฐ๐ฒ๐ ๐๐ผ ๐๐๐ฒ ๐๐ฒ๐ฐ๐ถ๐๐ถ๐ผ๐ป ๐ ๐ผ๐ฑ๐ฒ๐น๐ (๐๐ฒ๐) ๐ถ๐ป ๐๐ด๐ฒ๐ป๐๐ถ๐ฐ ๐ฅ๐๐ ๐๐๐๐๐ฒ๐บ front to back ๐
๐ญ. ๐ ๐ผ๐ฑ๐ฒ๐น ๐ฟ๐ผ๐๐๐ถ๐ป๐ด. The prompt goes to a decision model, it picks the tier. Cheap models for lookups, expensive for what you cannot afford ๐ฎ๐ถ๐น๐. A separate yes-or-no per potential hazard. Before the LLM sees the input or on the answer that has been produced.
๐ฏ. ๐ฅ๐ฒ๐๐ฟ๐ถ๐ฒ๐๐ฎ๐น ๐๐๐ณ๐ณ๐ถ๐ฐ๐ถ๐ฒ๐ป๐ฐ๐. Is what came back enough to answer, or should we search again.
๐ฐ. ๐ฃ๐ฎ๐๐๐ฎ๐ด๐ฒ ๐ณ๐ถ๐น๐๐ฒ๐ฟ๐ถ๐ป๐ด ๐ฎ๐ป๐ฑ ๐ฟ๐ฒ๐ฟ๐ฎ๐ป๐ธ๐ถ๐ป๐ด. Does this passage answer the question or is it only keyword-adjacent. Apply per candidate and sort by probability.
๐ฑ. ๐๐ถ๐๐ฎ๐๐ถ๐ผ๐ป ๐ฐ๐ต๐ฒ๐ฐ๐ธ๐ถ๐ป๐ด. Does this source support the claim, contradict it, or fail to address it.
๐ฒ. ๐ง๐ผ๐ผ๐น-๐ฐ๐ฎ๐น๐น ๐ด๐ฎ๐๐ถ๐ป๐ด. Allow, ask or deny per call, with the bands in your code.
๐ณ. ๐๐ผ๐ผ๐ฝ ๐๐ฒ๐ฟ๐บ๐ถ๐ป๐ฎ๐๐ถ๐ผ๐ป. Does the result actually satisfy the acceptance criteria?
๐ด. ๐๐ผ๐ป๐๐ฒ๐ ๐ ๐ฐ๐ผ๐บ๐ฝ๐ฎ๐ฐ๐๐ถ๐ผ๐ป. Score each piece of context and drop the stale ones instead of summarising them.
๐ต. ๐๐๐ฎ๐น๐ ๐ฎ๐ ๐ณ๐๐น๐น ๐ฐ๐ผ๐๐ฒ๐ฟ๐ฎ๐ด๐ฒ. Significantly cheaper per verdict than an LLM judge. Potentially unlocks the ability to grade every trace instead of sampling.
Outside the Agentic RAG loop there are so many other use cases:
โก๏ธ Bulk labeling.
โก๏ธ Inbox triage.
โก๏ธ Secret detection in diffs.
โก๏ธ โฆ
What to watch out for:
โ You still need to eval your decision model use.
โ Closely monitor your thresholds and version them as code.
โ Decision models do not return an explanation, only which outputs are bad. If you require an explanation, fall back to an LLM judge.
๐ Generation is one call in most systems. The decisions around it are the other twenty, and that is where this pays.
What else belongs on the list? ๐
๐ญ. ๐ ๐ผ๐ฑ๐ฒ๐น ๐ฟ๐ผ๐๐๐ถ๐ป๐ด. The prompt goes to a decision model, it picks the tier. Cheap models for lookups, expensive for what you cannot afford ๐ฎ๐ถ๐น๐. A separate yes-or-no per potential hazard. Before the LLM sees the input or on the answer that has been produced.
๐ฏ. ๐ฅ๐ฒ๐๐ฟ๐ถ๐ฒ๐๐ฎ๐น ๐๐๐ณ๐ณ๐ถ๐ฐ๐ถ๐ฒ๐ป๐ฐ๐. Is what came back enough to answer, or should we search again.
๐ฐ. ๐ฃ๐ฎ๐๐๐ฎ๐ด๐ฒ ๐ณ๐ถ๐น๐๐ฒ๐ฟ๐ถ๐ป๐ด ๐ฎ๐ป๐ฑ ๐ฟ๐ฒ๐ฟ๐ฎ๐ป๐ธ๐ถ๐ป๐ด. Does this passage answer the question or is it only keyword-adjacent. Apply per candidate and sort by probability.
๐ฑ. ๐๐ถ๐๐ฎ๐๐ถ๐ผ๐ป ๐ฐ๐ต๐ฒ๐ฐ๐ธ๐ถ๐ป๐ด. Does this source support the claim, contradict it, or fail to address it.
๐ฒ. ๐ง๐ผ๐ผ๐น-๐ฐ๐ฎ๐น๐น ๐ด๐ฎ๐๐ถ๐ป๐ด. Allow, ask or deny per call, with the bands in your code.
๐ณ. ๐๐ผ๐ผ๐ฝ ๐๐ฒ๐ฟ๐บ๐ถ๐ป๐ฎ๐๐ถ๐ผ๐ป. Does the result actually satisfy the acceptance criteria?
๐ด. ๐๐ผ๐ป๐๐ฒ๐ ๐ ๐ฐ๐ผ๐บ๐ฝ๐ฎ๐ฐ๐๐ถ๐ผ๐ป. Score each piece of context and drop the stale ones instead of summarising them.
๐ต. ๐๐๐ฎ๐น๐ ๐ฎ๐ ๐ณ๐๐น๐น ๐ฐ๐ผ๐๐ฒ๐ฟ๐ฎ๐ด๐ฒ. Significantly cheaper per verdict than an LLM judge. Potentially unlocks the ability to grade every trace instead of sampling.
Outside the Agentic RAG loop there are so many other use cases:
โก๏ธ Bulk labeling.
โก๏ธ Inbox triage.
โก๏ธ Secret detection in diffs.
โก๏ธ โฆ
What to watch out for:
โ You still need to eval your decision model use.
โ Closely monitor your thresholds and version them as code.
โ Decision models do not return an explanation, only which outputs are bad. If you require an explanation, fall back to an LLM judge.
๐ Generation is one call in most systems. The decisions around it are the other twenty, and that is where this pays.
What else belongs on the list? ๐
18
24
135
4,903
Aurimas Griciลซnas retweeted
๐๐๐๐๐ถ๐ป๐ด ๐ฎ๐ป ๐๐ ๐ฏ๐ถ๐น๐น ๐๐๐๐ฎ๐น๐น๐ ๐๐๐ฎ๐ฟ๐๐ ๐๐ถ๐๐ต ๐๐ผ๐ธ๐ฒ๐ป ๐ฐ๐ฎ๐ฝ๐ ๐ฎ๐ป๐ฑ ๐ฐ๐ต๐ฒ๐ฎ๐ฝ๐ฒ๐ฟ ๐บ๐ผ๐ฑ๐ฒ๐น๐, ๐๐ต๐ถ๐ฐ๐ต ๐น๐ผ๐๐ฒ๐ฟ๐ ๐๐ต๐ฒ ๐ฝ๐ฟ๐ผ๐ฑ๐๐ฐ๐ ๐พ๐๐ฎ๐น๐ถ๐๐ ๐ฎ๐น๐ผ๐ป๐ด ๐๐ถ๐๐ต ๐๐ต๐ฒ ๐๐ฝ๐ฒ๐ป๐ฑ.
There is a different place to look at first. In most share of the cost comes from the work the system has already done and is paying for again:
โก๏ธ The same question arrives in different words, so an exact-match cache never sees it and the model answers it from scratch every time
โก๏ธ The agent drops context between turns and sessions, so it re-retrieves what it had and asks the user for what it was already told
โก๏ธ All of that state, cache entries, session history, memory vectors, features, has to stay fast, and memory is the most expensive thing in the rack
None of those are model problems. They are caching, memory and storage decisions, which is the part of an AI system that gets the least design attention and ramps up the spend significantly.
I have been reading through how Redis approaches this. They offer three mechanisms that tackle the above problems in a single platform:
โ Semantic caching: embed the incoming prompt, search prior prompts by meaning, and serve the stored response when it is close enough. Redis reports cache hits up to 15x faster and token spend down by up to 70%
โ Agent memory: live session state with a TTL, plus facts extracted out of conversations into long-term memory as vectors, with the extraction running in the background instead of in the request (hot) path
โ Flex: one database moving both keys and values between RAM and NVMe SSD storage tiers. You can adjust RAM ratio 10% and 50% per workload. Redis states this costs up to 80% less per gigabyte than running all-RAM, with no code change
The part I find interesting is that memory architecture is usually treated as a quality feature, something that makes the agent feel coherent. It is also a cost lever - an agent that forgets incurs the price twice for the same context.
๐ Here is their cost optimisation guide: fandf.co/3TVKDxt
Huge shoutout to @Redisinc for partnering on this post!
What share of your production traffic is a repeat of a question you have already answered? I rarely run into a team that is actually measuring this! ๐
There is a different place to look at first. In most share of the cost comes from the work the system has already done and is paying for again:
โก๏ธ The same question arrives in different words, so an exact-match cache never sees it and the model answers it from scratch every time
โก๏ธ The agent drops context between turns and sessions, so it re-retrieves what it had and asks the user for what it was already told
โก๏ธ All of that state, cache entries, session history, memory vectors, features, has to stay fast, and memory is the most expensive thing in the rack
None of those are model problems. They are caching, memory and storage decisions, which is the part of an AI system that gets the least design attention and ramps up the spend significantly.
I have been reading through how Redis approaches this. They offer three mechanisms that tackle the above problems in a single platform:
โ Semantic caching: embed the incoming prompt, search prior prompts by meaning, and serve the stored response when it is close enough. Redis reports cache hits up to 15x faster and token spend down by up to 70%
โ Agent memory: live session state with a TTL, plus facts extracted out of conversations into long-term memory as vectors, with the extraction running in the background instead of in the request (hot) path
โ Flex: one database moving both keys and values between RAM and NVMe SSD storage tiers. You can adjust RAM ratio 10% and 50% per workload. Redis states this costs up to 80% less per gigabyte than running all-RAM, with no code change
The part I find interesting is that memory architecture is usually treated as a quality feature, something that makes the agent feel coherent. It is also a cost lever - an agent that forgets incurs the price twice for the same context.
๐ Here is their cost optimisation guide: fandf.co/3TVKDxt
Huge shoutout to @Redisinc for partnering on this post!
What share of your production traffic is a repeat of a question you have already answered? I rarely run into a team that is actually measuring this! ๐
11
9
42
2,385
๐๐๐๐๐ถ๐ป๐ด ๐ฎ๐ป ๐๐ ๐ฏ๐ถ๐น๐น ๐๐๐๐ฎ๐น๐น๐ ๐๐๐ฎ๐ฟ๐๐ ๐๐ถ๐๐ต ๐๐ผ๐ธ๐ฒ๐ป ๐ฐ๐ฎ๐ฝ๐ ๐ฎ๐ป๐ฑ ๐ฐ๐ต๐ฒ๐ฎ๐ฝ๐ฒ๐ฟ ๐บ๐ผ๐ฑ๐ฒ๐น๐, ๐๐ต๐ถ๐ฐ๐ต ๐น๐ผ๐๐ฒ๐ฟ๐ ๐๐ต๐ฒ ๐ฝ๐ฟ๐ผ๐ฑ๐๐ฐ๐ ๐พ๐๐ฎ๐น๐ถ๐๐ ๐ฎ๐น๐ผ๐ป๐ด ๐๐ถ๐๐ต ๐๐ต๐ฒ ๐๐ฝ๐ฒ๐ป๐ฑ.
There is a different place to look at first. In most share of the cost comes from the work the system has already done and is paying for again:
โก๏ธ The same question arrives in different words, so an exact-match cache never sees it and the model answers it from scratch every time
โก๏ธ The agent drops context between turns and sessions, so it re-retrieves what it had and asks the user for what it was already told
โก๏ธ All of that state, cache entries, session history, memory vectors, features, has to stay fast, and memory is the most expensive thing in the rack
None of those are model problems. They are caching, memory and storage decisions, which is the part of an AI system that gets the least design attention and ramps up the spend significantly.
I have been reading through how Redis approaches this. They offer three mechanisms that tackle the above problems in a single platform:
โ Semantic caching: embed the incoming prompt, search prior prompts by meaning, and serve the stored response when it is close enough. Redis reports cache hits up to 15x faster and token spend down by up to 70%
โ Agent memory: live session state with a TTL, plus facts extracted out of conversations into long-term memory as vectors, with the extraction running in the background instead of in the request (hot) path
โ Flex: one database moving both keys and values between RAM and NVMe SSD storage tiers. You can adjust RAM ratio 10% and 50% per workload. Redis states this costs up to 80% less per gigabyte than running all-RAM, with no code change
The part I find interesting is that memory architecture is usually treated as a quality feature, something that makes the agent feel coherent. It is also a cost lever - an agent that forgets incurs the price twice for the same context.
๐ Here is their cost optimisation guide: fandf.co/3TVKDxt
Huge shoutout to @Redisinc for partnering on this post!
What share of your production traffic is a repeat of a question you have already answered? I rarely run into a team that is actually measuring this! ๐
There is a different place to look at first. In most share of the cost comes from the work the system has already done and is paying for again:
โก๏ธ The same question arrives in different words, so an exact-match cache never sees it and the model answers it from scratch every time
โก๏ธ The agent drops context between turns and sessions, so it re-retrieves what it had and asks the user for what it was already told
โก๏ธ All of that state, cache entries, session history, memory vectors, features, has to stay fast, and memory is the most expensive thing in the rack
None of those are model problems. They are caching, memory and storage decisions, which is the part of an AI system that gets the least design attention and ramps up the spend significantly.
I have been reading through how Redis approaches this. They offer three mechanisms that tackle the above problems in a single platform:
โ Semantic caching: embed the incoming prompt, search prior prompts by meaning, and serve the stored response when it is close enough. Redis reports cache hits up to 15x faster and token spend down by up to 70%
โ Agent memory: live session state with a TTL, plus facts extracted out of conversations into long-term memory as vectors, with the extraction running in the background instead of in the request (hot) path
โ Flex: one database moving both keys and values between RAM and NVMe SSD storage tiers. You can adjust RAM ratio 10% and 50% per workload. Redis states this costs up to 80% less per gigabyte than running all-RAM, with no code change
The part I find interesting is that memory architecture is usually treated as a quality feature, something that makes the agent feel coherent. It is also a cost lever - an agent that forgets incurs the price twice for the same context.
๐ Here is their cost optimisation guide: fandf.co/3TVKDxt
Huge shoutout to @Redisinc for partnering on this post!
What share of your production traffic is a repeat of a question you have already answered? I rarely run into a team that is actually measuring this! ๐
11
9
42
2,385
Aurimas Griciลซnas retweeted
๐ง๐ผ๐ผ๐น ๐๐ฎ๐น๐น๐ถ๐ป๐ด ๐๐ถ๐ฎ ๐ ๐๐ฃ vs. implementing it ๐ก๐ฎ๐๐ถ๐๐ฒ ๐๐ผ ๐๐ต๐ฒ ๐๐ด๐ฒ๐ป๐. What's the difference?
Recently there have been many MCP vs. Function Calling articles floating around. Letโs simplify.
โ๏ธ ๐๐น๐ฎ๐ฟ๐ถ๐ณ๐๐ถ๐ป๐ด ๐ผ๐ป๐ฒ ๐ฑ๐ฒ๐๐ฎ๐ถ๐น: Function Calling Systems are almost the same thing. You can implement tools via functions, the only difference is that functions are usually used to enforce stricter structure to the input and output schema.
๐๐ด๐ช๐ฏ๐จ ๐๐๐ ๐ต๐ฐ ๐ฆ๐น๐ฑ๐ฐ๐ด๐ฆ ๐ต๐ฐ๐ฐ๐ญ๐ด ๐ต๐ฐ ๐บ๐ฐ๐ถ๐ณ ๐๐จ๐ฆ๐ฏ๐ต๐ด:
โน๏ธ In this case your Agent becomes an MCP Host and implements one or more MCP Clients to communicate with MCP Servers.
๐ญ. User Query is passed to the Agent (usually a Python application).
๐ฎ. The application implements MCP Client and via it retrieves all available tools from the MCP servers.
๐ฏ. The list of available Tools is passed together with the User Query to a LLM via a prompt. The LLM figures out which tools need to be invoked and with what parameters.
๐ฐ. The Agent application communicates with the MCP server (via MCP Client) again and sends the tool execution request. After execution completes the Agent receives the required data.
๐ฑ. User Query is sent to the LLM together with the data retrieved by the Tool calls.
๐ฒ. The answer is constructed and returned to the user via the Agent.
๐๐ด๐ช๐ฏ๐จ ๐๐ข๐ต๐ช๐ท๐ฆ ๐๐ถ๐ฏ๐ค๐ต๐ช๐ฐ๐ฏ ๐๐ข๐ญ๐ญ๐ช๐ฏ๐จ:
๐ญ. User Query is passed to the Agent (usually a Python application).
๐ฎ. All of the available Functions/Tools are defined as part of the Agent code (procedural memory).
๐ฏ. The list of available Tools is passed together with the User Query to a LLM via a prompt. The LLM figures out which functions need to be invoked and with what parameters.
๐ฐ. The Agent application directly executes the functions.
๐ฑ. User Query is sent to the LLM together with the data retrieved after function execution.
๐ฒ. The answer is constructed and returned to the user via the Agent.
๐ ๐ ๐๐ต๐ผ๐๐ด๐ต๐๐:
โ๏ธ From the trenches, it looks like we have place for both methods of tool calling, only standardise behind MCP servers if necessary.
โ๏ธ I see more practitioners abandoning MCP due to the lack of flexibility and additional failure points.
Are you using MCP already to expose Tools to your Agents? Let me know in the comments. ๐
Recently there have been many MCP vs. Function Calling articles floating around. Letโs simplify.
โ๏ธ ๐๐น๐ฎ๐ฟ๐ถ๐ณ๐๐ถ๐ป๐ด ๐ผ๐ป๐ฒ ๐ฑ๐ฒ๐๐ฎ๐ถ๐น: Function Calling Systems are almost the same thing. You can implement tools via functions, the only difference is that functions are usually used to enforce stricter structure to the input and output schema.
๐๐ด๐ช๐ฏ๐จ ๐๐๐ ๐ต๐ฐ ๐ฆ๐น๐ฑ๐ฐ๐ด๐ฆ ๐ต๐ฐ๐ฐ๐ญ๐ด ๐ต๐ฐ ๐บ๐ฐ๐ถ๐ณ ๐๐จ๐ฆ๐ฏ๐ต๐ด:
โน๏ธ In this case your Agent becomes an MCP Host and implements one or more MCP Clients to communicate with MCP Servers.
๐ญ. User Query is passed to the Agent (usually a Python application).
๐ฎ. The application implements MCP Client and via it retrieves all available tools from the MCP servers.
๐ฏ. The list of available Tools is passed together with the User Query to a LLM via a prompt. The LLM figures out which tools need to be invoked and with what parameters.
๐ฐ. The Agent application communicates with the MCP server (via MCP Client) again and sends the tool execution request. After execution completes the Agent receives the required data.
๐ฑ. User Query is sent to the LLM together with the data retrieved by the Tool calls.
๐ฒ. The answer is constructed and returned to the user via the Agent.
๐๐ด๐ช๐ฏ๐จ ๐๐ข๐ต๐ช๐ท๐ฆ ๐๐ถ๐ฏ๐ค๐ต๐ช๐ฐ๐ฏ ๐๐ข๐ญ๐ญ๐ช๐ฏ๐จ:
๐ญ. User Query is passed to the Agent (usually a Python application).
๐ฎ. All of the available Functions/Tools are defined as part of the Agent code (procedural memory).
๐ฏ. The list of available Tools is passed together with the User Query to a LLM via a prompt. The LLM figures out which functions need to be invoked and with what parameters.
๐ฐ. The Agent application directly executes the functions.
๐ฑ. User Query is sent to the LLM together with the data retrieved after function execution.
๐ฒ. The answer is constructed and returned to the user via the Agent.
๐ ๐ ๐๐ต๐ผ๐๐ด๐ต๐๐:
โ๏ธ From the trenches, it looks like we have place for both methods of tool calling, only standardise behind MCP servers if necessary.
โ๏ธ I see more practitioners abandoning MCP due to the lack of flexibility and additional failure points.
Are you using MCP already to expose Tools to your Agents? Let me know in the comments. ๐
20
5
64
3,561
๐ง๐ผ๐ผ๐น ๐๐ฎ๐น๐น๐ถ๐ป๐ด ๐๐ถ๐ฎ ๐ ๐๐ฃ vs. implementing it ๐ก๐ฎ๐๐ถ๐๐ฒ ๐๐ผ ๐๐ต๐ฒ ๐๐ด๐ฒ๐ป๐. What's the difference?
Recently there have been many MCP vs. Function Calling articles floating around. Letโs simplify.
โ๏ธ ๐๐น๐ฎ๐ฟ๐ถ๐ณ๐๐ถ๐ป๐ด ๐ผ๐ป๐ฒ ๐ฑ๐ฒ๐๐ฎ๐ถ๐น: Function Calling Systems are almost the same thing. You can implement tools via functions, the only difference is that functions are usually used to enforce stricter structure to the input and output schema.
๐๐ด๐ช๐ฏ๐จ ๐๐๐ ๐ต๐ฐ ๐ฆ๐น๐ฑ๐ฐ๐ด๐ฆ ๐ต๐ฐ๐ฐ๐ญ๐ด ๐ต๐ฐ ๐บ๐ฐ๐ถ๐ณ ๐๐จ๐ฆ๐ฏ๐ต๐ด:
โน๏ธ In this case your Agent becomes an MCP Host and implements one or more MCP Clients to communicate with MCP Servers.
๐ญ. User Query is passed to the Agent (usually a Python application).
๐ฎ. The application implements MCP Client and via it retrieves all available tools from the MCP servers.
๐ฏ. The list of available Tools is passed together with the User Query to a LLM via a prompt. The LLM figures out which tools need to be invoked and with what parameters.
๐ฐ. The Agent application communicates with the MCP server (via MCP Client) again and sends the tool execution request. After execution completes the Agent receives the required data.
๐ฑ. User Query is sent to the LLM together with the data retrieved by the Tool calls.
๐ฒ. The answer is constructed and returned to the user via the Agent.
๐๐ด๐ช๐ฏ๐จ ๐๐ข๐ต๐ช๐ท๐ฆ ๐๐ถ๐ฏ๐ค๐ต๐ช๐ฐ๐ฏ ๐๐ข๐ญ๐ญ๐ช๐ฏ๐จ:
๐ญ. User Query is passed to the Agent (usually a Python application).
๐ฎ. All of the available Functions/Tools are defined as part of the Agent code (procedural memory).
๐ฏ. The list of available Tools is passed together with the User Query to a LLM via a prompt. The LLM figures out which functions need to be invoked and with what parameters.
๐ฐ. The Agent application directly executes the functions.
๐ฑ. User Query is sent to the LLM together with the data retrieved after function execution.
๐ฒ. The answer is constructed and returned to the user via the Agent.
๐ ๐ ๐๐ต๐ผ๐๐ด๐ต๐๐:
โ๏ธ From the trenches, it looks like we have place for both methods of tool calling, only standardise behind MCP servers if necessary.
โ๏ธ I see more practitioners abandoning MCP due to the lack of flexibility and additional failure points.
Are you using MCP already to expose Tools to your Agents? Let me know in the comments. ๐
Recently there have been many MCP vs. Function Calling articles floating around. Letโs simplify.
โ๏ธ ๐๐น๐ฎ๐ฟ๐ถ๐ณ๐๐ถ๐ป๐ด ๐ผ๐ป๐ฒ ๐ฑ๐ฒ๐๐ฎ๐ถ๐น: Function Calling Systems are almost the same thing. You can implement tools via functions, the only difference is that functions are usually used to enforce stricter structure to the input and output schema.
๐๐ด๐ช๐ฏ๐จ ๐๐๐ ๐ต๐ฐ ๐ฆ๐น๐ฑ๐ฐ๐ด๐ฆ ๐ต๐ฐ๐ฐ๐ญ๐ด ๐ต๐ฐ ๐บ๐ฐ๐ถ๐ณ ๐๐จ๐ฆ๐ฏ๐ต๐ด:
โน๏ธ In this case your Agent becomes an MCP Host and implements one or more MCP Clients to communicate with MCP Servers.
๐ญ. User Query is passed to the Agent (usually a Python application).
๐ฎ. The application implements MCP Client and via it retrieves all available tools from the MCP servers.
๐ฏ. The list of available Tools is passed together with the User Query to a LLM via a prompt. The LLM figures out which tools need to be invoked and with what parameters.
๐ฐ. The Agent application communicates with the MCP server (via MCP Client) again and sends the tool execution request. After execution completes the Agent receives the required data.
๐ฑ. User Query is sent to the LLM together with the data retrieved by the Tool calls.
๐ฒ. The answer is constructed and returned to the user via the Agent.
๐๐ด๐ช๐ฏ๐จ ๐๐ข๐ต๐ช๐ท๐ฆ ๐๐ถ๐ฏ๐ค๐ต๐ช๐ฐ๐ฏ ๐๐ข๐ญ๐ญ๐ช๐ฏ๐จ:
๐ญ. User Query is passed to the Agent (usually a Python application).
๐ฎ. All of the available Functions/Tools are defined as part of the Agent code (procedural memory).
๐ฏ. The list of available Tools is passed together with the User Query to a LLM via a prompt. The LLM figures out which functions need to be invoked and with what parameters.
๐ฐ. The Agent application directly executes the functions.
๐ฑ. User Query is sent to the LLM together with the data retrieved after function execution.
๐ฒ. The answer is constructed and returned to the user via the Agent.
๐ ๐ ๐๐ต๐ผ๐๐ด๐ต๐๐:
โ๏ธ From the trenches, it looks like we have place for both methods of tool calling, only standardise behind MCP servers if necessary.
โ๏ธ I see more practitioners abandoning MCP due to the lack of flexibility and additional failure points.
Are you using MCP already to expose Tools to your Agents? Let me know in the comments. ๐
20
5
64
3,561
Aurimas Griciลซnas retweeted
๐๐ฒ๐ฐ๐ถ๐๐ถ๐ผ๐ป ๐บ๐ผ๐ฑ๐ฒ๐น๐ (๐๐ฒ๐ ๐ฏ๐ฒ๐ถ๐ป๐ด ๐ผ๐ป๐ฒ ๐ผ๐ณ ๐๐ต๐ฒ๐บ) ๐๐ต๐ถ๐ฝ๐ฝ๐ฒ๐ฑ ๐ฎ๐ ๐ฎ ๐ฝ๐ฟ๐ผ๐ฑ๐๐ฐ๐ ๐ฐ๐ฎ๐๐ฒ๐ด๐ผ๐ฟ๐ ๐น๐ฎ๐๐ ๐บ๐ผ๐ป๐๐ต. Here is why they are different to LLMs even though both can achieve the same result ๐
In decision models, you pass state, text or ose answers you declare in code. You get back a probability over those answers. Thatโs it, and it is also the selling point, nothing to parse and validate.
On the other hand, asking an LLM for a bounded answer means:
๐ญ. Option list and rubric go in the prompt
๐ฎ. The model generates tokens, one forward pass each
๐ฏ. You parse the string, validate the schema, retry on invalidation
๐ฐ. The answer set is enforced after the text already exists
A decision model on the other hand makes the answer space an input, bounded before inference runs. With one scoring pass, you get a probability for every option you declare. Basically, a typed value with confidence attached.
Pros:
โ You get a distribution, not a label. Per-option probability allows you to write the decision policy once: act above a threshold, cheap second check in the middle band, escalate the tail.
โ Latency that significantly reduces the total latency of the loop. Jev runs P50 at 0.21 s and P95 at 0.34 s, and OpenAI advertises Decisions API to be close to 150 ms against roughly 1.6 s for the same model answering normally.
โ No cost on the output side. Jev is $0.042 per million input tokens with free output. Generally, output is the expensive half of a judgment.
What to be aware of:
โ Calibrated is a vendor claim. Check it against your own labelled set calibrate thresholds in house.
โ Accuracy degrades as irrelevant state grows. As always, keep your context as lean as possible.
โ Option names are more important for Decision Heads than the rubrics explaining them. Make sure to name them accordingly. I.e. refund_full_no_return instead of option_a.
๐ Count the model calls in your agent loop, e.g.:
โก๏ธ Routing
โก๏ธ Is the retrieved context sufficient
โก๏ธ Is the draft grounded
โก๏ธ Do we escalate
All of these have finite answer sets and run as full LLM calls with schema on top today. However, only one really needs to generate some text.
โ๏ธ There is still a lot of use case for complex structure outputs, not every problem can be solved with simple classifiers.
Looking forward to seeing decision models proliferate in architectures our clients are building!
Which decisions in your system are a full LLM call that did not need to be? ๐
In decision models, you pass state, text or ose answers you declare in code. You get back a probability over those answers. Thatโs it, and it is also the selling point, nothing to parse and validate.
On the other hand, asking an LLM for a bounded answer means:
๐ญ. Option list and rubric go in the prompt
๐ฎ. The model generates tokens, one forward pass each
๐ฏ. You parse the string, validate the schema, retry on invalidation
๐ฐ. The answer set is enforced after the text already exists
A decision model on the other hand makes the answer space an input, bounded before inference runs. With one scoring pass, you get a probability for every option you declare. Basically, a typed value with confidence attached.
Pros:
โ You get a distribution, not a label. Per-option probability allows you to write the decision policy once: act above a threshold, cheap second check in the middle band, escalate the tail.
โ Latency that significantly reduces the total latency of the loop. Jev runs P50 at 0.21 s and P95 at 0.34 s, and OpenAI advertises Decisions API to be close to 150 ms against roughly 1.6 s for the same model answering normally.
โ No cost on the output side. Jev is $0.042 per million input tokens with free output. Generally, output is the expensive half of a judgment.
What to be aware of:
โ Calibrated is a vendor claim. Check it against your own labelled set calibrate thresholds in house.
โ Accuracy degrades as irrelevant state grows. As always, keep your context as lean as possible.
โ Option names are more important for Decision Heads than the rubrics explaining them. Make sure to name them accordingly. I.e. refund_full_no_return instead of option_a.
๐ Count the model calls in your agent loop, e.g.:
โก๏ธ Routing
โก๏ธ Is the retrieved context sufficient
โก๏ธ Is the draft grounded
โก๏ธ Do we escalate
All of these have finite answer sets and run as full LLM calls with schema on top today. However, only one really needs to generate some text.
โ๏ธ There is still a lot of use case for complex structure outputs, not every problem can be solved with simple classifiers.
Looking forward to seeing decision models proliferate in architectures our clients are building!
Which decisions in your system are a full LLM call that did not need to be? ๐
3
3
14
1,243
๐๐ฒ๐ฐ๐ถ๐๐ถ๐ผ๐ป ๐บ๐ผ๐ฑ๐ฒ๐น๐ (๐๐ฒ๐ ๐ฏ๐ฒ๐ถ๐ป๐ด ๐ผ๐ป๐ฒ ๐ผ๐ณ ๐๐ต๐ฒ๐บ) ๐๐ต๐ถ๐ฝ๐ฝ๐ฒ๐ฑ ๐ฎ๐ ๐ฎ ๐ฝ๐ฟ๐ผ๐ฑ๐๐ฐ๐ ๐ฐ๐ฎ๐๐ฒ๐ด๐ผ๐ฟ๐ ๐น๐ฎ๐๐ ๐บ๐ผ๐ป๐๐ต. Here is why they are different to LLMs even though both can achieve the same result ๐
In decision models, you pass state, text or ose answers you declare in code. You get back a probability over those answers. Thatโs it, and it is also the selling point, nothing to parse and validate.
On the other hand, asking an LLM for a bounded answer means:
๐ญ. Option list and rubric go in the prompt
๐ฎ. The model generates tokens, one forward pass each
๐ฏ. You parse the string, validate the schema, retry on invalidation
๐ฐ. The answer set is enforced after the text already exists
A decision model on the other hand makes the answer space an input, bounded before inference runs. With one scoring pass, you get a probability for every option you declare. Basically, a typed value with confidence attached.
Pros:
โ You get a distribution, not a label. Per-option probability allows you to write the decision policy once: act above a threshold, cheap second check in the middle band, escalate the tail.
โ Latency that significantly reduces the total latency of the loop. Jev runs P50 at 0.21 s and P95 at 0.34 s, and OpenAI advertises Decisions API to be close to 150 ms against roughly 1.6 s for the same model answering normally.
โ No cost on the output side. Jev is $0.042 per million input tokens with free output. Generally, output is the expensive half of a judgment.
What to be aware of:
โ Calibrated is a vendor claim. Check it against your own labelled set calibrate thresholds in house.
โ Accuracy degrades as irrelevant state grows. As always, keep your context as lean as possible.
โ Option names are more important for Decision Heads than the rubrics explaining them. Make sure to name them accordingly. I.e. refund_full_no_return instead of option_a.
๐ Count the model calls in your agent loop, e.g.:
โก๏ธ Routing
โก๏ธ Is the retrieved context sufficient
โก๏ธ Is the draft grounded
โก๏ธ Do we escalate
All of these have finite answer sets and run as full LLM calls with schema on top today. However, only one really needs to generate some text.
โ๏ธ There is still a lot of use case for complex structure outputs, not every problem can be solved with simple classifiers.
Looking forward to seeing decision models proliferate in architectures our clients are building!
Which decisions in your system are a full LLM call that did not need to be? ๐
In decision models, you pass state, text or ose answers you declare in code. You get back a probability over those answers. Thatโs it, and it is also the selling point, nothing to parse and validate.
On the other hand, asking an LLM for a bounded answer means:
๐ญ. Option list and rubric go in the prompt
๐ฎ. The model generates tokens, one forward pass each
๐ฏ. You parse the string, validate the schema, retry on invalidation
๐ฐ. The answer set is enforced after the text already exists
A decision model on the other hand makes the answer space an input, bounded before inference runs. With one scoring pass, you get a probability for every option you declare. Basically, a typed value with confidence attached.
Pros:
โ You get a distribution, not a label. Per-option probability allows you to write the decision policy once: act above a threshold, cheap second check in the middle band, escalate the tail.
โ Latency that significantly reduces the total latency of the loop. Jev runs P50 at 0.21 s and P95 at 0.34 s, and OpenAI advertises Decisions API to be close to 150 ms against roughly 1.6 s for the same model answering normally.
โ No cost on the output side. Jev is $0.042 per million input tokens with free output. Generally, output is the expensive half of a judgment.
What to be aware of:
โ Calibrated is a vendor claim. Check it against your own labelled set calibrate thresholds in house.
โ Accuracy degrades as irrelevant state grows. As always, keep your context as lean as possible.
โ Option names are more important for Decision Heads than the rubrics explaining them. Make sure to name them accordingly. I.e. refund_full_no_return instead of option_a.
๐ Count the model calls in your agent loop, e.g.:
โก๏ธ Routing
โก๏ธ Is the retrieved context sufficient
โก๏ธ Is the draft grounded
โก๏ธ Do we escalate
All of these have finite answer sets and run as full LLM calls with schema on top today. However, only one really needs to generate some text.
โ๏ธ There is still a lot of use case for complex structure outputs, not every problem can be solved with simple classifiers.
Looking forward to seeing decision models proliferate in architectures our clients are building!
Which decisions in your system are a full LLM call that did not need to be? ๐
3
3
14
1,243
Aurimas Griciลซnas retweeted
Integrating ๐๐ด๐ฒ๐ป๐๐ถ๐ฐ ๐ฅ๐๐ Systems via ๐ ๐๐ฃ ๐
If you are building RAG systems and packing many data sources for retrieval, most likely there is some agency present at least at the data source selection for retrieval stage.
This is how MCP enriches the evolution of s in such case (๐ฑ๐ฐ๐ช๐ฏ๐ต 2.):
๐ญ. Analysis of the user query: we pass the original user query to a LLM based Agent for analysis. This is where:
โก๏ธ The original query can be rewritten, sometimes multiple times to create either a single or multiple queries to be passed down the pipeline.
โก๏ธ The agent decides if additional data sources are required to answer the query.
๐ฎ. If additional data is required, the Retrieval step is triggered. We could tap into variety of data types, few examples:
โก๏ธ Real time user data.
โก๏ธ Internal documents that a user might be interested in.
โก๏ธ Data available on the web.
โก๏ธ โฆ
๐ง๐ต๐ถ๐ ๐ถ๐ ๐๐ต๐ฒ๐ฟ๐ฒ ๐ ๐๐ฃ ๐ฐ๐ผ๐บ๐ฒ๐ ๐ถ๐ป:
โ Each data domain can manage their own MCP Servers. Exposing specific rules of how the data should be used.
โ Security and compliance can be ensured on the Servel level for each domain.
โ New data domains can be easily added to the MCP server pool in a standardised way with no Agent rewrite needed enabling decoupled evolution of the system in terms of ๐ฃ๐ฟ๐ผ๐ฐ๐ฒ๐ฑ๐๐ฟ๐ฎ๐น, ๐๐ฝ๐ถ๐๐ผ๐ฑ๐ถ๐ฐ ๐ฎ๐ป๐ฑ ๐ฆ๐ฒ๐บ๐ฎ๐ป๐๐ถ๐ฐ ๐ ๐ฒ๐บ๐ผ๐ฟ๐.
โ Platform builders can expose their data in a standardised way to external consumers. Enabling easy access to data on the web.
โ AI Engineers can continue to focus on the topology of the Agent.
Learn all of this Hands-On in my End-to-End AI Engineering Bootcamp: maven.com/swirl-ai/end-tโฆ . Next Cohort kicking off October 19th!
๐ Use code YEAREND15 for 15% off.
๐ฏ. Retrieved data is consolidated and Reranked by a more powerful model compared to regular embedder. Data points are significantly narrowed down.
๐ฐ. If there is no need for additional data, we try to compose the answer (or multiple answers or a set of actions) straight via an LLM.
๐ฑ. The answer gets analyzed, summarized and evaluated for correctness and relevance:
โก๏ธ If the Agent decides that the answer is good enough, it gets returned to the user.
โก๏ธ If the Agent decides that the answer needs improvement, we try to rewrite the user query and repeat the generation loop.
Are you using MCP in your Agentic RAG systems? Let me know about your experience in the comment section ๐
If you are building RAG systems and packing many data sources for retrieval, most likely there is some agency present at least at the data source selection for retrieval stage.
This is how MCP enriches the evolution of s in such case (๐ฑ๐ฐ๐ช๐ฏ๐ต 2.):
๐ญ. Analysis of the user query: we pass the original user query to a LLM based Agent for analysis. This is where:
โก๏ธ The original query can be rewritten, sometimes multiple times to create either a single or multiple queries to be passed down the pipeline.
โก๏ธ The agent decides if additional data sources are required to answer the query.
๐ฎ. If additional data is required, the Retrieval step is triggered. We could tap into variety of data types, few examples:
โก๏ธ Real time user data.
โก๏ธ Internal documents that a user might be interested in.
โก๏ธ Data available on the web.
โก๏ธ โฆ
๐ง๐ต๐ถ๐ ๐ถ๐ ๐๐ต๐ฒ๐ฟ๐ฒ ๐ ๐๐ฃ ๐ฐ๐ผ๐บ๐ฒ๐ ๐ถ๐ป:
โ Each data domain can manage their own MCP Servers. Exposing specific rules of how the data should be used.
โ Security and compliance can be ensured on the Servel level for each domain.
โ New data domains can be easily added to the MCP server pool in a standardised way with no Agent rewrite needed enabling decoupled evolution of the system in terms of ๐ฃ๐ฟ๐ผ๐ฐ๐ฒ๐ฑ๐๐ฟ๐ฎ๐น, ๐๐ฝ๐ถ๐๐ผ๐ฑ๐ถ๐ฐ ๐ฎ๐ป๐ฑ ๐ฆ๐ฒ๐บ๐ฎ๐ป๐๐ถ๐ฐ ๐ ๐ฒ๐บ๐ผ๐ฟ๐.
โ Platform builders can expose their data in a standardised way to external consumers. Enabling easy access to data on the web.
โ AI Engineers can continue to focus on the topology of the Agent.
Learn all of this Hands-On in my End-to-End AI Engineering Bootcamp: maven.com/swirl-ai/end-tโฆ . Next Cohort kicking off October 19th!
๐ Use code YEAREND15 for 15% off.
๐ฏ. Retrieved data is consolidated and Reranked by a more powerful model compared to regular embedder. Data points are significantly narrowed down.
๐ฐ. If there is no need for additional data, we try to compose the answer (or multiple answers or a set of actions) straight via an LLM.
๐ฑ. The answer gets analyzed, summarized and evaluated for correctness and relevance:
โก๏ธ If the Agent decides that the answer is good enough, it gets returned to the user.
โก๏ธ If the Agent decides that the answer needs improvement, we try to rewrite the user query and repeat the generation loop.
Are you using MCP in your Agentic RAG systems? Let me know about your experience in the comment section ๐
8
6
30
2,370
Integrating ๐๐ด๐ฒ๐ป๐๐ถ๐ฐ ๐ฅ๐๐ Systems via ๐ ๐๐ฃ ๐
If you are building RAG systems and packing many data sources for retrieval, most likely there is some agency present at least at the data source selection for retrieval stage.
This is how MCP enriches the evolution of s in such case (๐ฑ๐ฐ๐ช๐ฏ๐ต 2.):
๐ญ. Analysis of the user query: we pass the original user query to a LLM based Agent for analysis. This is where:
โก๏ธ The original query can be rewritten, sometimes multiple times to create either a single or multiple queries to be passed down the pipeline.
โก๏ธ The agent decides if additional data sources are required to answer the query.
๐ฎ. If additional data is required, the Retrieval step is triggered. We could tap into variety of data types, few examples:
โก๏ธ Real time user data.
โก๏ธ Internal documents that a user might be interested in.
โก๏ธ Data available on the web.
โก๏ธ โฆ
๐ง๐ต๐ถ๐ ๐ถ๐ ๐๐ต๐ฒ๐ฟ๐ฒ ๐ ๐๐ฃ ๐ฐ๐ผ๐บ๐ฒ๐ ๐ถ๐ป:
โ Each data domain can manage their own MCP Servers. Exposing specific rules of how the data should be used.
โ Security and compliance can be ensured on the Servel level for each domain.
โ New data domains can be easily added to the MCP server pool in a standardised way with no Agent rewrite needed enabling decoupled evolution of the system in terms of ๐ฃ๐ฟ๐ผ๐ฐ๐ฒ๐ฑ๐๐ฟ๐ฎ๐น, ๐๐ฝ๐ถ๐๐ผ๐ฑ๐ถ๐ฐ ๐ฎ๐ป๐ฑ ๐ฆ๐ฒ๐บ๐ฎ๐ป๐๐ถ๐ฐ ๐ ๐ฒ๐บ๐ผ๐ฟ๐.
โ Platform builders can expose their data in a standardised way to external consumers. Enabling easy access to data on the web.
โ AI Engineers can continue to focus on the topology of the Agent.
Learn all of this Hands-On in my End-to-End AI Engineering Bootcamp: maven.com/swirl-ai/end-tโฆ . Next Cohort kicking off October 19th!
๐ Use code YEAREND15 for 15% off.
๐ฏ. Retrieved data is consolidated and Reranked by a more powerful model compared to regular embedder. Data points are significantly narrowed down.
๐ฐ. If there is no need for additional data, we try to compose the answer (or multiple answers or a set of actions) straight via an LLM.
๐ฑ. The answer gets analyzed, summarized and evaluated for correctness and relevance:
โก๏ธ If the Agent decides that the answer is good enough, it gets returned to the user.
โก๏ธ If the Agent decides that the answer needs improvement, we try to rewrite the user query and repeat the generation loop.
Are you using MCP in your Agentic RAG systems? Let me know about your experience in the comment section ๐
If you are building RAG systems and packing many data sources for retrieval, most likely there is some agency present at least at the data source selection for retrieval stage.
This is how MCP enriches the evolution of s in such case (๐ฑ๐ฐ๐ช๐ฏ๐ต 2.):
๐ญ. Analysis of the user query: we pass the original user query to a LLM based Agent for analysis. This is where:
โก๏ธ The original query can be rewritten, sometimes multiple times to create either a single or multiple queries to be passed down the pipeline.
โก๏ธ The agent decides if additional data sources are required to answer the query.
๐ฎ. If additional data is required, the Retrieval step is triggered. We could tap into variety of data types, few examples:
โก๏ธ Real time user data.
โก๏ธ Internal documents that a user might be interested in.
โก๏ธ Data available on the web.
โก๏ธ โฆ
๐ง๐ต๐ถ๐ ๐ถ๐ ๐๐ต๐ฒ๐ฟ๐ฒ ๐ ๐๐ฃ ๐ฐ๐ผ๐บ๐ฒ๐ ๐ถ๐ป:
โ Each data domain can manage their own MCP Servers. Exposing specific rules of how the data should be used.
โ Security and compliance can be ensured on the Servel level for each domain.
โ New data domains can be easily added to the MCP server pool in a standardised way with no Agent rewrite needed enabling decoupled evolution of the system in terms of ๐ฃ๐ฟ๐ผ๐ฐ๐ฒ๐ฑ๐๐ฟ๐ฎ๐น, ๐๐ฝ๐ถ๐๐ผ๐ฑ๐ถ๐ฐ ๐ฎ๐ป๐ฑ ๐ฆ๐ฒ๐บ๐ฎ๐ป๐๐ถ๐ฐ ๐ ๐ฒ๐บ๐ผ๐ฟ๐.
โ Platform builders can expose their data in a standardised way to external consumers. Enabling easy access to data on the web.
โ AI Engineers can continue to focus on the topology of the Agent.
Learn all of this Hands-On in my End-to-End AI Engineering Bootcamp: maven.com/swirl-ai/end-tโฆ . Next Cohort kicking off October 19th!
๐ Use code YEAREND15 for 15% off.
๐ฏ. Retrieved data is consolidated and Reranked by a more powerful model compared to regular embedder. Data points are significantly narrowed down.
๐ฐ. If there is no need for additional data, we try to compose the answer (or multiple answers or a set of actions) straight via an LLM.
๐ฑ. The answer gets analyzed, summarized and evaluated for correctness and relevance:
โก๏ธ If the Agent decides that the answer is good enough, it gets returned to the user.
โก๏ธ If the Agent decides that the answer needs improvement, we try to rewrite the user query and repeat the generation loop.
Are you using MCP in your Agentic RAG systems? Let me know about your experience in the comment section ๐
8
6
30
2,370
Aurimas Griciลซnas retweeted
๐ ๐๐ฃ plus ๐๐ฎ๐, here is how they complement each other ๐
Protocol wars continue to rage, let's understand how Googles A2A (Agent2Agent) protocol is different from MCP and how they complement each other (read till the end).
๐๐ฐ๐ท๐ช๐ฏ๐จ ๐ฑ๐ช๐ฆ๐ค๐ฆ๐ด ๐ช๐ฏ ๐๐๐:
๐ญ. MCP LMs at the core that want to access data through MCP.
โ๏ธ When combined with A2A, an Agent becomes MCP Host.
๐ฎ. MCP Client - Clients that maintain 1:1 connections with servers.
๐ฏ. MCP Server - Lightweight programs that each expose specific capabilities through the standardised Model Context Protocol.
๐ฐ. Local Data Sources - Your computerโs files, databases, and services that MCP servers can securely access.
๐ฑ. Remote Data Sources - External systems available over the internet (e.g., through APIs) that MCP servers can connect to.
๐๐ฏ๐ต๐ฆ๐ณ ๐2๐:
Where MCP falls short, A2A tries to help. In multi-Agent applications where state is not necessarily shared
๐ฒ. Agents (MCP Hosts) would implement and communicate via A2A protocol, that enables:
โก๏ธ Secure Collaboration.
โก๏ธ Task and State Management.
โก๏ธ User Experience Negotiation.
โก๏ธ Capability discovery - similar to MCP tools.
Learn all of this Hands-On in my End-to-End AI Engineering Bootcamp: maven.com/swirl-ai/end-tโฆ . Next Cohort kicking off October 19th!
๐ Use code YEAREND20 for 20% off - valid for the next two weeks.
๐๐ผ๐ป๐ฒ๐๐ ๐๐ต๐ผ๐๐ด๐ต๐๐:
โ๏ธ Open protocols for Agent communication are important but they are just a piece of the picture, there will be a need for standards that govern all of the existing protocols and other missing pieces. E.g.
โ How do we standardise tracing and Observability in multi-agent IOA systems?
โ How do we retain the identity of the running job of an AI Agent instance if the communication standard is not unified in different parts of the pipeline?
โ ...
โ More on this in my future posts, stay tuned!
Let me know your thoughts in the comments. ๐
Protocol wars continue to rage, let's understand how Googles A2A (Agent2Agent) protocol is different from MCP and how they complement each other (read till the end).
๐๐ฐ๐ท๐ช๐ฏ๐จ ๐ฑ๐ช๐ฆ๐ค๐ฆ๐ด ๐ช๐ฏ ๐๐๐:
๐ญ. MCP LMs at the core that want to access data through MCP.
โ๏ธ When combined with A2A, an Agent becomes MCP Host.
๐ฎ. MCP Client - Clients that maintain 1:1 connections with servers.
๐ฏ. MCP Server - Lightweight programs that each expose specific capabilities through the standardised Model Context Protocol.
๐ฐ. Local Data Sources - Your computerโs files, databases, and services that MCP servers can securely access.
๐ฑ. Remote Data Sources - External systems available over the internet (e.g., through APIs) that MCP servers can connect to.
๐๐ฏ๐ต๐ฆ๐ณ ๐2๐:
Where MCP falls short, A2A tries to help. In multi-Agent applications where state is not necessarily shared
๐ฒ. Agents (MCP Hosts) would implement and communicate via A2A protocol, that enables:
โก๏ธ Secure Collaboration.
โก๏ธ Task and State Management.
โก๏ธ User Experience Negotiation.
โก๏ธ Capability discovery - similar to MCP tools.
Learn all of this Hands-On in my End-to-End AI Engineering Bootcamp: maven.com/swirl-ai/end-tโฆ . Next Cohort kicking off October 19th!
๐ Use code YEAREND20 for 20% off - valid for the next two weeks.
๐๐ผ๐ป๐ฒ๐๐ ๐๐ต๐ผ๐๐ด๐ต๐๐:
โ๏ธ Open protocols for Agent communication are important but they are just a piece of the picture, there will be a need for standards that govern all of the existing protocols and other missing pieces. E.g.
โ How do we standardise tracing and Observability in multi-agent IOA systems?
โ How do we retain the identity of the running job of an AI Agent instance if the communication standard is not unified in different parts of the pipeline?
โ ...
โ More on this in my future posts, stay tuned!
Let me know your thoughts in the comments. ๐
3
3
16
1,654
๐ ๐๐ฃ plus ๐๐ฎ๐, here is how they complement each other ๐
Protocol wars continue to rage, let's understand how Googles A2A (Agent2Agent) protocol is different from MCP and how they complement each other (read till the end).
๐๐ฐ๐ท๐ช๐ฏ๐จ ๐ฑ๐ช๐ฆ๐ค๐ฆ๐ด ๐ช๐ฏ ๐๐๐:
๐ญ. MCP LMs at the core that want to access data through MCP.
โ๏ธ When combined with A2A, an Agent becomes MCP Host.
๐ฎ. MCP Client - Clients that maintain 1:1 connections with servers.
๐ฏ. MCP Server - Lightweight programs that each expose specific capabilities through the standardised Model Context Protocol.
๐ฐ. Local Data Sources - Your computerโs files, databases, and services that MCP servers can securely access.
๐ฑ. Remote Data Sources - External systems available over the internet (e.g., through APIs) that MCP servers can connect to.
๐๐ฏ๐ต๐ฆ๐ณ ๐2๐:
Where MCP falls short, A2A tries to help. In multi-Agent applications where state is not necessarily shared
๐ฒ. Agents (MCP Hosts) would implement and communicate via A2A protocol, that enables:
โก๏ธ Secure Collaboration.
โก๏ธ Task and State Management.
โก๏ธ User Experience Negotiation.
โก๏ธ Capability discovery - similar to MCP tools.
Learn all of this Hands-On in my End-to-End AI Engineering Bootcamp: maven.com/swirl-ai/end-tโฆ . Next Cohort kicking off October 19th!
๐ Use code YEAREND20 for 20% off - valid for the next two weeks.
๐๐ผ๐ป๐ฒ๐๐ ๐๐ต๐ผ๐๐ด๐ต๐๐:
โ๏ธ Open protocols for Agent communication are important but they are just a piece of the picture, there will be a need for standards that govern all of the existing protocols and other missing pieces. E.g.
โ How do we standardise tracing and Observability in multi-agent IOA systems?
โ How do we retain the identity of the running job of an AI Agent instance if the communication standard is not unified in different parts of the pipeline?
โ ...
โ More on this in my future posts, stay tuned!
Let me know your thoughts in the comments. ๐
Protocol wars continue to rage, let's understand how Googles A2A (Agent2Agent) protocol is different from MCP and how they complement each other (read till the end).
๐๐ฐ๐ท๐ช๐ฏ๐จ ๐ฑ๐ช๐ฆ๐ค๐ฆ๐ด ๐ช๐ฏ ๐๐๐:
๐ญ. MCP LMs at the core that want to access data through MCP.
โ๏ธ When combined with A2A, an Agent becomes MCP Host.
๐ฎ. MCP Client - Clients that maintain 1:1 connections with servers.
๐ฏ. MCP Server - Lightweight programs that each expose specific capabilities through the standardised Model Context Protocol.
๐ฐ. Local Data Sources - Your computerโs files, databases, and services that MCP servers can securely access.
๐ฑ. Remote Data Sources - External systems available over the internet (e.g., through APIs) that MCP servers can connect to.
๐๐ฏ๐ต๐ฆ๐ณ ๐2๐:
Where MCP falls short, A2A tries to help. In multi-Agent applications where state is not necessarily shared
๐ฒ. Agents (MCP Hosts) would implement and communicate via A2A protocol, that enables:
โก๏ธ Secure Collaboration.
โก๏ธ Task and State Management.
โก๏ธ User Experience Negotiation.
โก๏ธ Capability discovery - similar to MCP tools.
Learn all of this Hands-On in my End-to-End AI Engineering Bootcamp: maven.com/swirl-ai/end-tโฆ . Next Cohort kicking off October 19th!
๐ Use code YEAREND20 for 20% off - valid for the next two weeks.
๐๐ผ๐ป๐ฒ๐๐ ๐๐ต๐ผ๐๐ด๐ต๐๐:
โ๏ธ Open protocols for Agent communication are important but they are just a piece of the picture, there will be a need for standards that govern all of the existing protocols and other missing pieces. E.g.
โ How do we standardise tracing and Observability in multi-agent IOA systems?
โ How do we retain the identity of the running job of an AI Agent instance if the communication standard is not unified in different parts of the pipeline?
โ ...
โ More on this in my future posts, stay tuned!
Let me know your thoughts in the comments. ๐
3
3
16
1,654
Aurimas Griciลซnas retweeted
๐๐ ๐ข๐ฏ๐๐ฒ๐ฟ๐๐ฎ๐ฏ๐ถ๐น๐ถ๐๐ is a must have in your tool belt as an AI Engineer. ๐ง๐ฟ๐ฎ๐ฐ๐ถ๐ป๐ด sits at the core of it, why is it important?
Tracing and instrumentation of software have been around for decades now. With AI systems resembling regular software even more, we are here as well (with a few key differences).
Letโs look into the process of tracing from a perspective of a naive RAG system.
๐๐ฆ๐ธ ๐ฅ๐ฆ๐ง๐ช๐ฏ๐ช๐ต๐ช๐ฐ๐ฏ๐ด:
๐ผ) An Orchestrator in the GenAI system application is the central piece of software that orchestrates the end-to-end process. Think of apps using LangChain, LlamaIndex or Haystack.
๐ฝ) Trace is the end-to-end application flow from the entry point till the answer is produced, it is composed of smaller pieces called spans.
๐พ) Span is a smaller piece of the application flow that represents an atomic action like a function call or a database query. They can be sequential, or run in parallel.
โน๏ธ As part of span we capture general metadata like start and end time, inputs and outputs of the span. On top of this metadata we track information specific to the GenAI system elements.
What might a trace look like for a naive RAG system?
๐ญ. A query that has been submitted to the chat application.
๐ฎ. The query is embedded into a vector.
โ Additional metadata like input token count is persisted with the span so that we can estimate the cost of the procedure.
๐ฏ. ANN lookup performed against the Vector DB to retrieve the most relevant context.
โ Additional metadata about the query is persisted as part of the span together with the retrieved pieces of context and their relevance.
๐ฐ. A prompt is constructed from the system prompt and retrieved context.
๐ฑ. The prompt is passed to the LLM to construct the answer.
โ Additional metadata about input and output token count is captured together with the span so that we can estimate the cost of the procedure.
๐๐ฉ๐บ ๐ช๐ด ๐ต๐ณ๐ข๐ค๐ช๐ฏ๐จ ๐ฐ๐ง ๐๐ฆ๐ฏ๐๐ ๐ด๐บ๐ด๐ต๐ฆ๐ฎ๐ด ๐ช๐ฎ๐ฑ๐ฐ๐ณ๐ต๐ข๐ฏ๐ต?
- These applications are usually complex chains, errors can happen in different steps of your application. E.g. Embedding of query is taking longer than expected or you have reached API limits of LLM provider.
- Cost for calling LLM APIs will be variable depending on the length of inputs and produced outputs. You would usually trace this information and analyze it to help forecast expenses.
- GenAI systems are non-deterministic and will deteriorate over time. They need to be evaluated on span level rather than input/output of the entire system so that you can tune each piece separately.
- โฆ
Are you tracing your Agents? Let me know in the comments ๐
Tracing and instrumentation of software have been around for decades now. With AI systems resembling regular software even more, we are here as well (with a few key differences).
Letโs look into the process of tracing from a perspective of a naive RAG system.
๐๐ฆ๐ธ ๐ฅ๐ฆ๐ง๐ช๐ฏ๐ช๐ต๐ช๐ฐ๐ฏ๐ด:
๐ผ) An Orchestrator in the GenAI system application is the central piece of software that orchestrates the end-to-end process. Think of apps using LangChain, LlamaIndex or Haystack.
๐ฝ) Trace is the end-to-end application flow from the entry point till the answer is produced, it is composed of smaller pieces called spans.
๐พ) Span is a smaller piece of the application flow that represents an atomic action like a function call or a database query. They can be sequential, or run in parallel.
โน๏ธ As part of span we capture general metadata like start and end time, inputs and outputs of the span. On top of this metadata we track information specific to the GenAI system elements.
What might a trace look like for a naive RAG system?
๐ญ. A query that has been submitted to the chat application.
๐ฎ. The query is embedded into a vector.
โ Additional metadata like input token count is persisted with the span so that we can estimate the cost of the procedure.
๐ฏ. ANN lookup performed against the Vector DB to retrieve the most relevant context.
โ Additional metadata about the query is persisted as part of the span together with the retrieved pieces of context and their relevance.
๐ฐ. A prompt is constructed from the system prompt and retrieved context.
๐ฑ. The prompt is passed to the LLM to construct the answer.
โ Additional metadata about input and output token count is captured together with the span so that we can estimate the cost of the procedure.
๐๐ฉ๐บ ๐ช๐ด ๐ต๐ณ๐ข๐ค๐ช๐ฏ๐จ ๐ฐ๐ง ๐๐ฆ๐ฏ๐๐ ๐ด๐บ๐ด๐ต๐ฆ๐ฎ๐ด ๐ช๐ฎ๐ฑ๐ฐ๐ณ๐ต๐ข๐ฏ๐ต?
- These applications are usually complex chains, errors can happen in different steps of your application. E.g. Embedding of query is taking longer than expected or you have reached API limits of LLM provider.
- Cost for calling LLM APIs will be variable depending on the length of inputs and produced outputs. You would usually trace this information and analyze it to help forecast expenses.
- GenAI systems are non-deterministic and will deteriorate over time. They need to be evaluated on span level rather than input/output of the entire system so that you can tune each piece separately.
- โฆ
Are you tracing your Agents? Let me know in the comments ๐
15
45
236
12,171
๐๐ ๐ข๐ฏ๐๐ฒ๐ฟ๐๐ฎ๐ฏ๐ถ๐น๐ถ๐๐ is a must have in your tool belt as an AI Engineer. ๐ง๐ฟ๐ฎ๐ฐ๐ถ๐ป๐ด sits at the core of it, why is it important?
Tracing and instrumentation of software have been around for decades now. With AI systems resembling regular software even more, we are here as well (with a few key differences).
Letโs look into the process of tracing from a perspective of a naive RAG system.
๐๐ฆ๐ธ ๐ฅ๐ฆ๐ง๐ช๐ฏ๐ช๐ต๐ช๐ฐ๐ฏ๐ด:
๐ผ) An Orchestrator in the GenAI system application is the central piece of software that orchestrates the end-to-end process. Think of apps using LangChain, LlamaIndex or Haystack.
๐ฝ) Trace is the end-to-end application flow from the entry point till the answer is produced, it is composed of smaller pieces called spans.
๐พ) Span is a smaller piece of the application flow that represents an atomic action like a function call or a database query. They can be sequential, or run in parallel.
โน๏ธ As part of span we capture general metadata like start and end time, inputs and outputs of the span. On top of this metadata we track information specific to the GenAI system elements.
What might a trace look like for a naive RAG system?
๐ญ. A query that has been submitted to the chat application.
๐ฎ. The query is embedded into a vector.
โ Additional metadata like input token count is persisted with the span so that we can estimate the cost of the procedure.
๐ฏ. ANN lookup performed against the Vector DB to retrieve the most relevant context.
โ Additional metadata about the query is persisted as part of the span together with the retrieved pieces of context and their relevance.
๐ฐ. A prompt is constructed from the system prompt and retrieved context.
๐ฑ. The prompt is passed to the LLM to construct the answer.
โ Additional metadata about input and output token count is captured together with the span so that we can estimate the cost of the procedure.
๐๐ฉ๐บ ๐ช๐ด ๐ต๐ณ๐ข๐ค๐ช๐ฏ๐จ ๐ฐ๐ง ๐๐ฆ๐ฏ๐๐ ๐ด๐บ๐ด๐ต๐ฆ๐ฎ๐ด ๐ช๐ฎ๐ฑ๐ฐ๐ณ๐ต๐ข๐ฏ๐ต?
- These applications are usually complex chains, errors can happen in different steps of your application. E.g. Embedding of query is taking longer than expected or you have reached API limits of LLM provider.
- Cost for calling LLM APIs will be variable depending on the length of inputs and produced outputs. You would usually trace this information and analyze it to help forecast expenses.
- GenAI systems are non-deterministic and will deteriorate over time. They need to be evaluated on span level rather than input/output of the entire system so that you can tune each piece separately.
- โฆ
Are you tracing your Agents? Let me know in the comments ๐
Tracing and instrumentation of software have been around for decades now. With AI systems resembling regular software even more, we are here as well (with a few key differences).
Letโs look into the process of tracing from a perspective of a naive RAG system.
๐๐ฆ๐ธ ๐ฅ๐ฆ๐ง๐ช๐ฏ๐ช๐ต๐ช๐ฐ๐ฏ๐ด:
๐ผ) An Orchestrator in the GenAI system application is the central piece of software that orchestrates the end-to-end process. Think of apps using LangChain, LlamaIndex or Haystack.
๐ฝ) Trace is the end-to-end application flow from the entry point till the answer is produced, it is composed of smaller pieces called spans.
๐พ) Span is a smaller piece of the application flow that represents an atomic action like a function call or a database query. They can be sequential, or run in parallel.
โน๏ธ As part of span we capture general metadata like start and end time, inputs and outputs of the span. On top of this metadata we track information specific to the GenAI system elements.
What might a trace look like for a naive RAG system?
๐ญ. A query that has been submitted to the chat application.
๐ฎ. The query is embedded into a vector.
โ Additional metadata like input token count is persisted with the span so that we can estimate the cost of the procedure.
๐ฏ. ANN lookup performed against the Vector DB to retrieve the most relevant context.
โ Additional metadata about the query is persisted as part of the span together with the retrieved pieces of context and their relevance.
๐ฐ. A prompt is constructed from the system prompt and retrieved context.
๐ฑ. The prompt is passed to the LLM to construct the answer.
โ Additional metadata about input and output token count is captured together with the span so that we can estimate the cost of the procedure.
๐๐ฉ๐บ ๐ช๐ด ๐ต๐ณ๐ข๐ค๐ช๐ฏ๐จ ๐ฐ๐ง ๐๐ฆ๐ฏ๐๐ ๐ด๐บ๐ด๐ต๐ฆ๐ฎ๐ด ๐ช๐ฎ๐ฑ๐ฐ๐ณ๐ต๐ข๐ฏ๐ต?
- These applications are usually complex chains, errors can happen in different steps of your application. E.g. Embedding of query is taking longer than expected or you have reached API limits of LLM provider.
- Cost for calling LLM APIs will be variable depending on the length of inputs and produced outputs. You would usually trace this information and analyze it to help forecast expenses.
- GenAI systems are non-deterministic and will deteriorate over time. They need to be evaluated on span level rather than input/output of the entire system so that you can tune each piece separately.
- โฆ
Are you tracing your Agents? Let me know in the comments ๐
15
45
236
12,171
๐ ๐๐ฃ plus ๐๐ฎ๐, here is how they complement each other ๐
Protocol wars continue to rage, let's understand how Googles A2A (Agent2Agent) protocol is different from MCP and how they complement each other (read till the end).
๐๐ฐ๐ท๐ช๐ฏ๐จ ๐ฑ๐ช๐ฆ๐ค๐ฆ๐ด ๐ช๐ฏ ๐๐๐:
๐ญ. MCP LMs at the core that want to access data through MCP.
โ๏ธ When combined with A2A, an Agent becomes MCP Host.
๐ฎ. MCP Client - Clients that maintain 1:1 connections with servers.
๐ฏ. MCP Server - Lightweight programs that each expose specific capabilities through the standardised Model Context Protocol.
๐ฐ. Local Data Sources - Your computerโs files, databases, and services that MCP servers can securely access.
๐ฑ. Remote Data Sources - External systems available over the internet (e.g., through APIs) that MCP servers can connect to.
๐๐ฏ๐ต๐ฆ๐ณ ๐2๐:
Where MCP falls short, A2A tries to help. In multi-Agent applications where state is not necessarily shared
๐ฒ. Agents (MCP Hosts) would implement and communicate via A2A protocol, that enables:
โก๏ธ Secure Collaboration.
โก๏ธ Task and State Management.
โก๏ธ User Experience Negotiation.
โก๏ธ Capability discovery - similar to MCP tools.
๐๐ผ๐ป๐ฒ๐๐ ๐๐ต๐ผ๐๐ด๐ต๐๐:
โ๏ธ Open protocols for Agent communication are important but they are just a piece of the picture, there will be a need for standards that govern all of the existing protocols and other missing pieces. E.g.
โ How do we standardise tracing and Observability in multi-agent IOA systems?
โ How do we retain the identity of the running job of an AI Agent instance if the communication standard is not unified in different parts of the pipeline?
โ ...
โ More on this in my future posts, stay tuned!
Let me know your thoughts in the comments. ๐
Protocol wars continue to rage, let's understand how Googles A2A (Agent2Agent) protocol is different from MCP and how they complement each other (read till the end).
๐๐ฐ๐ท๐ช๐ฏ๐จ ๐ฑ๐ช๐ฆ๐ค๐ฆ๐ด ๐ช๐ฏ ๐๐๐:
๐ญ. MCP LMs at the core that want to access data through MCP.
โ๏ธ When combined with A2A, an Agent becomes MCP Host.
๐ฎ. MCP Client - Clients that maintain 1:1 connections with servers.
๐ฏ. MCP Server - Lightweight programs that each expose specific capabilities through the standardised Model Context Protocol.
๐ฐ. Local Data Sources - Your computerโs files, databases, and services that MCP servers can securely access.
๐ฑ. Remote Data Sources - External systems available over the internet (e.g., through APIs) that MCP servers can connect to.
๐๐ฏ๐ต๐ฆ๐ณ ๐2๐:
Where MCP falls short, A2A tries to help. In multi-Agent applications where state is not necessarily shared
๐ฒ. Agents (MCP Hosts) would implement and communicate via A2A protocol, that enables:
โก๏ธ Secure Collaboration.
โก๏ธ Task and State Management.
โก๏ธ User Experience Negotiation.
โก๏ธ Capability discovery - similar to MCP tools.
๐๐ผ๐ป๐ฒ๐๐ ๐๐ต๐ผ๐๐ด๐ต๐๐:
โ๏ธ Open protocols for Agent communication are important but they are just a piece of the picture, there will be a need for standards that govern all of the existing protocols and other missing pieces. E.g.
โ How do we standardise tracing and Observability in multi-agent IOA systems?
โ How do we retain the identity of the running job of an AI Agent instance if the communication standard is not unified in different parts of the pipeline?
โ ...
โ More on this in my future posts, stay tuned!
Let me know your thoughts in the comments. ๐
6
10
58
2,834
Aurimas Griciลซnas retweeted
๐๐ ๐ณ๐ฒ๐ฎ๐๐๐ฟ๐ฒ๐ ๐ถ๐ป ๐ฎ ๐ฆ๐ฎ๐ฎ๐ฆ ๐ฝ๐ฟ๐ผ๐ฑ๐๐ฐ๐ ๐ฎ๐ฟ๐ฒ ๐ฎ๐ป ๐ถ๐ป๐ณ๐ฟ๐ฎ๐๐๐ฟ๐๐ฐ๐๐๐ฟ๐ฒ ๐ฝ๐ฟ๐ผ๐ฏ๐น๐ฒ๐บ ๐ฎ๐ ๐บ๐๐ฐ๐ต ๐ฎ๐ ๐ฎ ๐บ๐ผ๐ฑ๐ฒ๐น ๐ฝ๐ฟ๐ผ๐ฏ๐น๐ฒ๐บ.
Every software company is wiring AI into its product right now and the work concentrates in the gap between a prototype and a product that serves thousands. This is what I mean:
โก๏ธ Inference traffic is bursty and grows with every tenant you onboard
โก๏ธ Tenant data has to stay isolated through every retrieval step and model call
โก๏ธ Regulated buyers ask about SOC 2, HIPAA and ISO 27001 before they ask about features
โก๏ธ Once the product works, you still need a path into enterprise procurement
This is where the ๐๐ช๐ฆ ๐๐ฆ๐ฉ resources made sense for me, one platform covering the full scope from building to selling:
โ Compute that matches your workload shape: Lambda for spiky event-driven paths, ECS or EKS for long-running multi-tenant services
๐ The mistake is picking one shape for the whole product. Inference paths and ingestion jobs have almost nothing in common except that they both run your code.
โ Amazon Bedrock with over 100 foundation models, so AI features ship without a model-serving layer of your own
โ A data layer designed for per-tenant isolation, from Aurora and DynamoDB to OpenSearch for retrieval
โ Security primitives (IAM, VPC isolation, encryption at rest and in transit) that map directly onto the compliance controls regulated industries require
๐ These are the two teams defer but pay for later. Adding isolation after launch means reopening every query path and every retrieval call you've already shipped.
โ AWS Marketplace and ISV Accelerate co-sell, which turn enterprise procurement into a channel instead of a grind
๐ See how software companies are building on AWS: fandf.co/3RSKMRf
Follow @awscloud for more on what ISVs are shipping on the platform.
๐โ๐๐ ๐๐๐ ๐ก ๐๐ ๐ ๐๐๐๐ ๐๐๐๐ ๐๐ฆ ๐ด๐๐.
If you are building AI into a SaaS product, which part has been harder in practice: the model side, or the multi-tenant infrastructure around it? ๐
Every software company is wiring AI into its product right now and the work concentrates in the gap between a prototype and a product that serves thousands. This is what I mean:
โก๏ธ Inference traffic is bursty and grows with every tenant you onboard
โก๏ธ Tenant data has to stay isolated through every retrieval step and model call
โก๏ธ Regulated buyers ask about SOC 2, HIPAA and ISO 27001 before they ask about features
โก๏ธ Once the product works, you still need a path into enterprise procurement
This is where the ๐๐ช๐ฆ ๐๐ฆ๐ฉ resources made sense for me, one platform covering the full scope from building to selling:
โ Compute that matches your workload shape: Lambda for spiky event-driven paths, ECS or EKS for long-running multi-tenant services
๐ The mistake is picking one shape for the whole product. Inference paths and ingestion jobs have almost nothing in common except that they both run your code.
โ Amazon Bedrock with over 100 foundation models, so AI features ship without a model-serving layer of your own
โ A data layer designed for per-tenant isolation, from Aurora and DynamoDB to OpenSearch for retrieval
โ Security primitives (IAM, VPC isolation, encryption at rest and in transit) that map directly onto the compliance controls regulated industries require
๐ These are the two teams defer but pay for later. Adding isolation after launch means reopening every query path and every retrieval call you've already shipped.
โ AWS Marketplace and ISV Accelerate co-sell, which turn enterprise procurement into a channel instead of a grind
๐ See how software companies are building on AWS: fandf.co/3RSKMRf
Follow @awscloud for more on what ISVs are shipping on the platform.
๐โ๐๐ ๐๐๐ ๐ก ๐๐ ๐ ๐๐๐๐ ๐๐๐๐ ๐๐ฆ ๐ด๐๐.
If you are building AI into a SaaS product, which part has been harder in practice: the model side, or the multi-tenant infrastructure around it? ๐
4
12
46
3,354
๐๐ ๐ณ๐ฒ๐ฎ๐๐๐ฟ๐ฒ๐ ๐ถ๐ป ๐ฎ ๐ฆ๐ฎ๐ฎ๐ฆ ๐ฝ๐ฟ๐ผ๐ฑ๐๐ฐ๐ ๐ฎ๐ฟ๐ฒ ๐ฎ๐ป ๐ถ๐ป๐ณ๐ฟ๐ฎ๐๐๐ฟ๐๐ฐ๐๐๐ฟ๐ฒ ๐ฝ๐ฟ๐ผ๐ฏ๐น๐ฒ๐บ ๐ฎ๐ ๐บ๐๐ฐ๐ต ๐ฎ๐ ๐ฎ ๐บ๐ผ๐ฑ๐ฒ๐น ๐ฝ๐ฟ๐ผ๐ฏ๐น๐ฒ๐บ.
Every software company is wiring AI into its product right now and the work concentrates in the gap between a prototype and a product that serves thousands. This is what I mean:
โก๏ธ Inference traffic is bursty and grows with every tenant you onboard
โก๏ธ Tenant data has to stay isolated through every retrieval step and model call
โก๏ธ Regulated buyers ask about SOC 2, HIPAA and ISO 27001 before they ask about features
โก๏ธ Once the product works, you still need a path into enterprise procurement
This is where the ๐๐ช๐ฆ ๐๐ฆ๐ฉ resources made sense for me, one platform covering the full scope from building to selling:
โ Compute that matches your workload shape: Lambda for spiky event-driven paths, ECS or EKS for long-running multi-tenant services
๐ The mistake is picking one shape for the whole product. Inference paths and ingestion jobs have almost nothing in common except that they both run your code.
โ Amazon Bedrock with over 100 foundation models, so AI features ship without a model-serving layer of your own
โ A data layer designed for per-tenant isolation, from Aurora and DynamoDB to OpenSearch for retrieval
โ Security primitives (IAM, VPC isolation, encryption at rest and in transit) that map directly onto the compliance controls regulated industries require
๐ These are the two teams defer but pay for later. Adding isolation after launch means reopening every query path and every retrieval call you've already shipped.
โ AWS Marketplace and ISV Accelerate co-sell, which turn enterprise procurement into a channel instead of a grind
๐ See how software companies are building on AWS: fandf.co/3RSKMRf
Follow @awscloud for more on what ISVs are shipping on the platform.
๐โ๐๐ ๐๐๐ ๐ก ๐๐ ๐ ๐๐๐๐ ๐๐๐๐ ๐๐ฆ ๐ด๐๐.
If you are building AI into a SaaS product, which part has been harder in practice: the model side, or the multi-tenant infrastructure around it? ๐
Every software company is wiring AI into its product right now and the work concentrates in the gap between a prototype and a product that serves thousands. This is what I mean:
โก๏ธ Inference traffic is bursty and grows with every tenant you onboard
โก๏ธ Tenant data has to stay isolated through every retrieval step and model call
โก๏ธ Regulated buyers ask about SOC 2, HIPAA and ISO 27001 before they ask about features
โก๏ธ Once the product works, you still need a path into enterprise procurement
This is where the ๐๐ช๐ฆ ๐๐ฆ๐ฉ resources made sense for me, one platform covering the full scope from building to selling:
โ Compute that matches your workload shape: Lambda for spiky event-driven paths, ECS or EKS for long-running multi-tenant services
๐ The mistake is picking one shape for the whole product. Inference paths and ingestion jobs have almost nothing in common except that they both run your code.
โ Amazon Bedrock with over 100 foundation models, so AI features ship without a model-serving layer of your own
โ A data layer designed for per-tenant isolation, from Aurora and DynamoDB to OpenSearch for retrieval
โ Security primitives (IAM, VPC isolation, encryption at rest and in transit) that map directly onto the compliance controls regulated industries require
๐ These are the two teams defer but pay for later. Adding isolation after launch means reopening every query path and every retrieval call you've already shipped.
โ AWS Marketplace and ISV Accelerate co-sell, which turn enterprise procurement into a channel instead of a grind
๐ See how software companies are building on AWS: fandf.co/3RSKMRf
Follow @awscloud for more on what ISVs are shipping on the platform.
๐โ๐๐ ๐๐๐ ๐ก ๐๐ ๐ ๐๐๐๐ ๐๐๐๐ ๐๐ฆ ๐ด๐๐.
If you are building AI into a SaaS product, which part has been harder in practice: the model side, or the multi-tenant infrastructure around it? ๐
4
12
46
3,354
Aurimas Griciลซnas retweeted
Integrating ๐๐ด๐ฒ๐ป๐๐ถ๐ฐ ๐ฅ๐๐ Systems via ๐ ๐๐ฃ ๐
If you are building RAG systems and packing many data sources for retrieval, most likely there is some agency present at least at the data source selection for retrieval stage.
This is how MCP enriches the evolution of s in such case (๐ฑ๐ฐ๐ช๐ฏ๐ต 2.):
๐ญ. Analysis of the user query: we pass the original user query to a LLM based Agent for analysis. This is where:
โก๏ธ The original query can be rewritten, sometimes multiple times to create either a single or multiple queries to be passed down the pipeline.
โก๏ธ The agent decides if additional data sources are required to answer the query.
๐ฎ. If additional data is required, the Retrieval step is triggered. We could tap into variety of data types, few examples:
โก๏ธ Real time user data.
โก๏ธ Internal documents that a user might be interested in.
โก๏ธ Data available on the web.
โก๏ธ โฆ
๐ง๐ต๐ถ๐ ๐ถ๐ ๐๐ต๐ฒ๐ฟ๐ฒ ๐ ๐๐ฃ ๐ฐ๐ผ๐บ๐ฒ๐ ๐ถ๐ป:
โ Each data domain can manage their own MCP Servers. Exposing specific rules of how the data should be used.
โ Security and compliance can be ensured on the Servel level for each domain.
โ New data domains can be easily added to the MCP server pool in a standardised way with no Agent rewrite needed enabling decoupled evolution of the system in terms of ๐ฃ๐ฟ๐ผ๐ฐ๐ฒ๐ฑ๐๐ฟ๐ฎ๐น, ๐๐ฝ๐ถ๐๐ผ๐ฑ๐ถ๐ฐ ๐ฎ๐ป๐ฑ ๐ฆ๐ฒ๐บ๐ฎ๐ป๐๐ถ๐ฐ ๐ ๐ฒ๐บ๐ผ๐ฟ๐.
โ Platform builders can expose their data in a standardised way to external consumers. Enabling easy access to data on the web.
โ AI Engineers can continue to focus on the topology of the Agent.
๐ฏ. Retrieved data is consolidated and Reranked by a more powerful model compared to regular embedder. Data points are significantly narrowed down.
๐ฐ. If there is no need for additional data, we try to compose the answer (or multiple answers or a set of actions) straight via an LLM.
๐ฑ. The answer gets analyzed, summarized and evaluated for correctness and relevance:
โก๏ธ If the Agent decides that the answer is good enough, it gets returned to the user.
โก๏ธ If the Agent decides that the answer needs improvement, we try to rewrite the user query and repeat the generation loop.
Are you using MCP in your Agentic RAG systems? Let me know about your experience in the comment section ๐
If you are building RAG systems and packing many data sources for retrieval, most likely there is some agency present at least at the data source selection for retrieval stage.
This is how MCP enriches the evolution of s in such case (๐ฑ๐ฐ๐ช๐ฏ๐ต 2.):
๐ญ. Analysis of the user query: we pass the original user query to a LLM based Agent for analysis. This is where:
โก๏ธ The original query can be rewritten, sometimes multiple times to create either a single or multiple queries to be passed down the pipeline.
โก๏ธ The agent decides if additional data sources are required to answer the query.
๐ฎ. If additional data is required, the Retrieval step is triggered. We could tap into variety of data types, few examples:
โก๏ธ Real time user data.
โก๏ธ Internal documents that a user might be interested in.
โก๏ธ Data available on the web.
โก๏ธ โฆ
๐ง๐ต๐ถ๐ ๐ถ๐ ๐๐ต๐ฒ๐ฟ๐ฒ ๐ ๐๐ฃ ๐ฐ๐ผ๐บ๐ฒ๐ ๐ถ๐ป:
โ Each data domain can manage their own MCP Servers. Exposing specific rules of how the data should be used.
โ Security and compliance can be ensured on the Servel level for each domain.
โ New data domains can be easily added to the MCP server pool in a standardised way with no Agent rewrite needed enabling decoupled evolution of the system in terms of ๐ฃ๐ฟ๐ผ๐ฐ๐ฒ๐ฑ๐๐ฟ๐ฎ๐น, ๐๐ฝ๐ถ๐๐ผ๐ฑ๐ถ๐ฐ ๐ฎ๐ป๐ฑ ๐ฆ๐ฒ๐บ๐ฎ๐ป๐๐ถ๐ฐ ๐ ๐ฒ๐บ๐ผ๐ฟ๐.
โ Platform builders can expose their data in a standardised way to external consumers. Enabling easy access to data on the web.
โ AI Engineers can continue to focus on the topology of the Agent.
๐ฏ. Retrieved data is consolidated and Reranked by a more powerful model compared to regular embedder. Data points are significantly narrowed down.
๐ฐ. If there is no need for additional data, we try to compose the answer (or multiple answers or a set of actions) straight via an LLM.
๐ฑ. The answer gets analyzed, summarized and evaluated for correctness and relevance:
โก๏ธ If the Agent decides that the answer is good enough, it gets returned to the user.
โก๏ธ If the Agent decides that the answer needs improvement, we try to rewrite the user query and repeat the generation loop.
Are you using MCP in your Agentic RAG systems? Let me know about your experience in the comment section ๐
12
81
387
19,326











