<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Ai-Engineering on dplabs — Software Engineering &amp; Technology Consultancy</title>
		<link>https://dplabs.tech/tags/ai-engineering/</link>
		<description>Recent content in Ai-Engineering on dplabs — Software Engineering &amp; Technology Consultancy</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Tue, 21 Apr 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://dplabs.tech/tags/ai-engineering/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>The Security Risks of AI-Enabled Applications</title>
				<link>https://dplabs.tech/blog/security-risks-ai-applications/</link>
				<pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate>
				<guid>https://dplabs.tech/blog/security-risks-ai-applications/</guid>
				<description>&lt;p&gt;Integrating AI into applications introduces security risks that traditional application security doesn&amp;rsquo;t address. Most security frameworks were designed for deterministic systems. LLMs are not deterministic — their outputs depend on inputs in ways that are difficult to predict, test, or constrain.&lt;/p&gt;&#xA;&lt;p&gt;This doesn&amp;rsquo;t mean AI applications are inherently insecure. It means you need to think about security differently when LLMs are in the loop.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-core-problem-llms-process-text-as-instructions&#34;&gt;The Core Problem: LLMs Process Text as Instructions&lt;/h2&gt;&#xA;&lt;p&gt;In a conventional application, there&amp;rsquo;s a clear distinction between code and data. A SQL injection attack tries to blur that boundary — to get user input interpreted as SQL commands. You prevent it by parameterizing queries, by treating user input as data rather than code.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Building AI Features Without Losing Control of Your Architecture</title>
				<link>https://dplabs.tech/blog/ai-features-architecture/</link>
				<pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate>
				<guid>https://dplabs.tech/blog/ai-features-architecture/</guid>
				<description>&lt;p&gt;AI features are getting added to production systems quickly — often quickly enough that the usual architectural discipline gets skipped. The integration is direct: OpenAI SDK in the service, API calls scattered through business logic, prompts hardcoded in the calling code.&lt;/p&gt;&#xA;&lt;p&gt;This works for a proof of concept. At production scale, with real operational requirements, it creates a class of problems that are expensive to fix after the fact.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-vendor-lock-in-problem&#34;&gt;The Vendor Lock-in Problem&lt;/h2&gt;&#xA;&lt;p&gt;Directly using the OpenAI SDK, the Anthropic SDK, or any provider&amp;rsquo;s client library throughout your codebase creates tight coupling to that provider&amp;rsquo;s interface. When you want to:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Building Reliable AI Agents: Beyond the Demo</title>
				<link>https://dplabs.tech/blog/building-reliable-ai-agents/</link>
				<pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate>
				<guid>https://dplabs.tech/blog/building-reliable-ai-agents/</guid>
				<description>&lt;p&gt;AI agents are compelling in demos. A language model that can use tools, retrieve information, take actions, and chain multiple steps together appears to solve problems that weren&amp;rsquo;t solvable before. Then you try to ship one and discover that the demo success rate was 80%, which means 1 in 5 operations fail silently.&lt;/p&gt;&#xA;&lt;p&gt;Production agents require the same engineering discipline as any other distributed system. The failure modes are different, but the principles — observability, error handling, testing, graceful degradation — are the same ones you apply everywhere else.&lt;/p&gt;</description>
			</item>
			<item>
				<title>AI Engineering Is Software Engineering</title>
				<link>https://dplabs.tech/blog/ai-engineering-is-software-engineering/</link>
				<pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate>
				<guid>https://dplabs.tech/blog/ai-engineering-is-software-engineering/</guid>
				<description>&lt;p&gt;There&amp;rsquo;s a tendency to treat AI features as different from other software. Different enough that normal engineering practices don&amp;rsquo;t apply, or apply differently, or can be deferred. This tendency produces AI systems that are unreliable, unobservable, expensive to operate, and difficult to improve.&lt;/p&gt;&#xA;&lt;p&gt;AI systems built with the same engineering discipline as other distributed systems are more reliable, cheaper to operate, and easier to improve. The disciplines aren&amp;rsquo;t different. The application is.&lt;/p&gt;</description>
			</item>
			<item>
				<title>MCP: The Interface Between AI Models and the Rest of Your Systems</title>
				<link>https://dplabs.tech/blog/mcp-model-context-protocol/</link>
				<pubDate>Mon, 23 Feb 2026 00:00:00 +0000</pubDate>
				<guid>https://dplabs.tech/blog/mcp-model-context-protocol/</guid>
				<description>&lt;p&gt;The Model Context Protocol (MCP) is a specification introduced by Anthropic in November 2024 that standardizes how LLM applications connect to external data sources and tools. It has since been adopted broadly — by OpenAI, Google, and major developer tooling vendors — and is becoming the standard interface layer between AI systems and the services they interact with.&lt;/p&gt;&#xA;&lt;p&gt;Understanding MCP requires understanding the problem it solves, because the protocol itself is not complex.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Multi-Agent Systems: Useful Architecture or Complexity for Its Own Sake?</title>
				<link>https://dplabs.tech/blog/multi-agent-systems/</link>
				<pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate>
				<guid>https://dplabs.tech/blog/multi-agent-systems/</guid>
				<description>&lt;p&gt;Multi-agent systems have become a popular architectural pattern in AI applications. The idea is appealing: if one agent is good, multiple agents working together must be better. Specialized agents for different subtasks. Agents reviewing each other&amp;rsquo;s work. Parallel execution across agents.&lt;/p&gt;&#xA;&lt;p&gt;The appeal is intuitive. The implementation is often a mess of non-deterministic coordination, cascading hallucinations, and debugging nightmares where a problem in one agent produces a subtly wrong result that propagates through three others before producing a visible failure.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Evaluating LLM Applications: Beyond Vibe Checks</title>
				<link>https://dplabs.tech/blog/evaluating-llm-applications/</link>
				<pubDate>Mon, 26 Jan 2026 00:00:00 +0000</pubDate>
				<guid>https://dplabs.tech/blog/evaluating-llm-applications/</guid>
				<description>&lt;p&gt;Most teams evaluate their LLM applications by asking them a few questions and deciding whether the answers look right. This is not evaluation — it&amp;rsquo;s a vibe check. It doesn&amp;rsquo;t scale, doesn&amp;rsquo;t catch regressions, and doesn&amp;rsquo;t provide any basis for measuring improvement over time.&lt;/p&gt;&#xA;&lt;p&gt;Systematic LLM evaluation is harder than evaluating deterministic software. The outputs are probabilistic, quality is multidimensional, and the correct answer often isn&amp;rsquo;t a single string. These are difficulties, not reasons to skip evaluation.&lt;/p&gt;</description>
			</item>
			<item>
				<title>RAG vs Fine-Tuning: Choosing the Right Tool for LLM Customization</title>
				<link>https://dplabs.tech/blog/rag-vs-fine-tuning/</link>
				<pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate>
				<guid>https://dplabs.tech/blog/rag-vs-fine-tuning/</guid>
				<description>&lt;p&gt;&amp;ldquo;Should we use RAG or fine-tuning?&amp;rdquo; is a question teams ask when they need an LLM to work better for their specific use case. It&amp;rsquo;s often the wrong question — they&amp;rsquo;re different tools that solve different problems and can be combined.&lt;/p&gt;&#xA;&lt;p&gt;Getting this wrong is expensive. Fine-tuning a model to &amp;ldquo;know&amp;rdquo; information that should be retrieved leads to a model that&amp;rsquo;s expensive to update and confidently answers with stale data. Implementing RAG when the problem is actually about model behavior leads to a system that retrieves correctly but still behaves wrong.&lt;/p&gt;</description>
			</item>
			<item>
				<title>RAG Is Not a Database Query</title>
				<link>https://dplabs.tech/blog/rag-is-not-a-database-query/</link>
				<pubDate>Mon, 21 Oct 2024 00:00:00 +0000</pubDate>
				<guid>https://dplabs.tech/blog/rag-is-not-a-database-query/</guid>
				<description>&lt;p&gt;Retrieval-Augmented Generation has become the default answer to &amp;ldquo;how do we make an LLM answer questions about our data.&amp;rdquo; The concept is simple enough to explain in one slide: embed your documents, store them in a vector database, retrieve the relevant ones at query time, pass them to the LLM.&lt;/p&gt;&#xA;&lt;p&gt;The problem is that the one-slide version produces one-slide-quality results. Good RAG systems are significantly harder to build than the demos suggest, and the failures are often subtle — the system produces confident, plausible-sounding answers that are wrong in ways that are hard to detect without systematic evaluation.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
