` or not.
Two details that catch people. `params` is awaited in Next.js 16, not read
synchronously. And the fallback should reserve approximately the height of the real
content — a zero-height fallback produces a layout shift the moment data lands, which
costs you on Cumulative Layout Shift for no benefit.
#### Token streaming into the leaf
The server side is a route handler that relays the provider's stream. Newline-delimited
JSON keeps the client parser trivial and lets you send structured events, not just text.
Define the event shape once. Even in a JavaScript project it is worth writing down as
types, because this contract crosses the network:
```ts title="types/assistant.d.ts"
export type AssistantEvent =
| { type: 'delta'; text: string }
| { type: 'sources'; items: { title: string; url: string }[] }
| { type: 'done'; messageId: string }
| { type: 'error'; message: string };
```
The handler:
```js title="app/api/assistant/route.js"
import { streamAnswer } from '@/lib/assistant/stream';
export const runtime = 'nodejs';
export const maxDuration = 60;
export async function POST(request) {
const { conversationId, question } = await request.json();
if (typeof question !== 'string' || !question.trim()) {
return Response.json({ error: 'Question required' }, { status: 400 });
}
const encoder = new TextEncoder();
const upstream = new AbortController();
request.signal.addEventListener('abort', () => upstream.abort());
const body = new ReadableStream({
async start(controller) {
const send = (event) =>
controller.enqueue(encoder.encode(`${JSON.stringify(event)}\n`));
try {
for await (const event of streamAnswer({
conversationId,
question,
signal: upstream.signal,
})) {
send(event);
}
} catch (error) {
if (error.name !== 'AbortError') {
send({ type: 'error', message: 'The assistant could not answer.' });
}
} finally {
controller.close();
}
},
});
return new Response(body, {
headers: {
'content-type': 'application/x-ndjson; charset=utf-8',
'cache-control': 'no-store',
'x-accel-buffering': 'no',
},
});
}
```
Line 10 validates before spending anything. Line 24 forwards the abort signal to the
provider, so a closed tab stops the generation instead of leaving it running and
billing. Line 33 distinguishes a genuine failure from a cancellation — an aborted stream
is not an error and should not render as one.
The `x-accel-buffering: no` header matters behind reverse proxies that buffer responses
by default. A stream that arrives all at once at the end is indistinguishable, to a
user, from no streaming at all.
##### The client leaf, and the bug everyone hits
```jsx title="components/assistant/AssistantPanel.jsx"
'use client';
import { useRef, useState } from 'react';
export default function AssistantPanel({ conversationId }) {
const [question, setQuestion] = useState('');
const [answer, setAnswer] = useState('');
const [sources, setSources] = useState([]);
const [status, setStatus] = useState('idle');
const abortRef = useRef(null);
async function handleSubmit(event) {
event.preventDefault();
setAnswer('');
setSources([]);
setStatus('streaming');
const controller = new AbortController();
abortRef.current = controller;
try {
const response = await fetch('/api/assistant', {
method: 'POST',
signal: controller.signal,
headers: { 'content-type': 'application/json' },
body: JSON.stringify({ conversationId, question }),
});
const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
let buffer = '';
while (true) {
const { value, done } = await reader.read();
if (done) break;
buffer += value;
const lines = buffer.split('\n');
buffer = lines.pop() ?? '';
for (const line of lines) {
if (!line.trim()) continue;
const event = JSON.parse(line);
if (event.type === 'delta') setAnswer((prev) => prev + event.text);
if (event.type === 'sources') setSources(event.items);
if (event.type === 'error') setStatus('error');
}
}
setStatus((prev) => (prev === 'error' ? prev : 'done'));
} catch (error) {
if (error.name !== 'AbortError') setStatus('error');
} finally {
abortRef.current = null;
}
}
return (
);
}
```
Line 23 passes the abort signal into `fetch`, which is what makes the Stop button real
rather than decorative. Lines 31 and 40 are the chunk-boundary fix: a network chunk can
split a JSON line anywhere, so the trailing fragment must be carried into the next read.
Omitting this produces the classic bug where everything works locally — small responses
arrive in one chunk — and `JSON.parse` throws in production.
Note `setAnswer((prev) => prev + event.text)` rather than `setAnswer(answer + …)`.
Deltas arrive faster than renders, and reading `answer` from the closure drops text.
#### Keeping the transcript on the server
The client holds only the in-flight answer. Persisting belongs on the server, where the
database credentials are, and a Server Action is the least ceremonious way to do it:
```js title="app/assistant/actions.js"
'use server';
import { revalidatePath } from 'next/cache';
import { appendMessage } from '@/lib/db/conversations';
export async function saveExchange(conversationId, question, answer) {
await appendMessage(conversationId, { role: 'user', content: question });
await appendMessage(conversationId, { role: 'assistant', content: answer });
revalidatePath(`/assistant/${conversationId}`);
}
```
Call it from the leaf once the stream reports `done`. History then re-renders as a
Server Component with no client-side state to keep in sync — which removes the entire
category of bug where the visible transcript and the stored transcript disagree.
#### Rendering streamed markdown without thrash
Model output is usually markdown, and parsing a partial document on every delta is both
wasteful and visually unstable: an unclosed code fence flips the rest of the answer in
and out of a `` as tokens arrive.
Two mitigations. Render plain text while streaming and parse markdown once on `done` —
simple, and users rarely notice. Or, if incremental formatting matters, buffer at
paragraph boundaries and only parse completed blocks, holding the trailing partial block
as plain text.
Either way, pin the container so growth does not shove the page around, and respect
motion preferences on any caret or fade you add:
```css title="app/assistant/assistant.css"
.assistant-answer {
min-height: 6rem;
overflow-anchor: none;
}
.assistant-caret {
animation: assistant-blink 1s steps(2, start) infinite;
}
@media (prefers-reduced-motion: reduce) {
.assistant-caret {
animation: none;
opacity: 1;
}
}
```
`overflow-anchor: none` prevents the browser's scroll anchoring from fighting your own
auto-scroll as content grows — a small line that fixes a jitter that is otherwise very
hard to diagnose.
#### Accessibility of something that arrives over time
Streaming text is hostile to screen readers by default: an `aria-live="assertive"`
region announces every delta and produces unusable noise.
Use `aria-live="polite"` so announcements queue, and prefer a native `` element,
which carries the right role without extra attributes. Set `aria-busy` while streaming
so assistive technology knows the content is still settling. Never move focus to the
answer mid-stream — it interrupts whatever the user is doing and steals it from the
input.
The Stop button deserves specific attention. It must be a real ``, reachable by
keyboard, present in the DOM while streaming and removed when not — not disabled, not
visually hidden.
#### What to measure
Time to first token is the number users feel; total generation time is not. A response
that starts in a moment and takes a while to finish reads as fast. One that takes the
same total time with nothing on screen for the first half reads as broken.
Then check the boring things: the client bundle for this route (it should be the leaf
and its dependencies, nothing more), Cumulative Layout Shift when the answer replaces
the fallback, and the abort rate — a high one means users are giving up, which is a
latency signal, not a quality signal.
The server side of this — bounded loops, budgets, degradation paths — is covered in
[building production-ready AI applications](https://techagents.online/blog/building-production-ready-ai-applications),
and a complete worked agent using this exact streaming pattern is in
[how to build an AI agent with Next.js](https://techagents.online/blog/build-an-ai-agent-with-nextjs). If you are
choosing the tools you will build it with,
[best AI coding tools for developers](https://techagents.online/blog/best-ai-coding-tools-for-developers) covers
that layer.
#### References
- [React](https://react.dev) — Meta Open Source
- [Next.js Documentation](https://nextjs.org/docs) — Vercel
- [Streams API](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API) — MDN Web Docs
## Glossary
### Agentic AI
- Canonical URL: https://techagents.online/glossary/agentic-ai
- Also called: agentic systems, agentic workflows
- Group: agents
Agentic AI describes systems where a model is given a goal, a set of capabilities and the authority to decide the sequence of steps that reaches it. The term covers a spectrum, from a fixed workflow with one model-decided branch to a fully open-ended loop with no predetermined path.
It helps to treat "agentic" as a dial rather than a label. At the low end sits a deterministic pipeline where a model fills one slot — classify this ticket, extract these fields — and the surrounding code owns every decision. At the high end sits an open loop where the model chooses its own tools, its own order and its own stopping point. Most production systems that work well sit far closer to the low end than the marketing around them suggests, because each degree of freedom you hand to the model is a degree of freedom you have to test.
The engineering question is therefore not "should this be agentic?" but "which specific decision am I delegating, and what happens when it is wrong?" Delegating the choice of which of four documented tools to call is a small, testable delegation. Delegating the decision to spend money, delete data or email a customer is a different category, and usually belongs behind an explicit approval step.
The misconception worth naming is that autonomy and capability are the same axis. They are independent. A highly capable model in a tightly constrained workflow often outperforms the same model in a free-running loop, because constraints remove the failure modes that come from compounding decisions. Autonomy is a cost you pay for flexibility you actually need — not a quality score.
### AI Agent
- Canonical URL: https://techagents.online/glossary/ai-agent
- Also called: agent, autonomous agent, LLM agent
- Group: agents
An AI agent pairs a language model with a set of tools, some memory and a control loop. Rather than returning one answer to one prompt, it decides on an action, observes the result, and decides again until a stopping condition is reached.
The defining feature of an agent is not intelligence but control flow. In a plain completion, the application decides what happens next; in an agent, the model does. Each turn of the loop appends the previous action and its observed result to the context, so the model is reasoning over a growing transcript of what it has already tried. Tools are exposed as named functions with argument schemas, and the loop terminates when the model emits a final answer, hits a step limit, or trips a guard the application defines.
That inversion of control is what makes agents useful and what makes them hard. Useful, because the number of steps needed does not have to be known in advance — the agent can look something up, discover it was the wrong thing, and try a different query. Hard, because every additional step multiplies the ways a run can drift: a misread tool result at step three quietly poisons the reasoning at step nine, and the failure surfaces only at the end.
The most common misconception is that an agent is a model with a better prompt. It is not. An agent is an application: it needs a step budget, error handling for tools that fail or return junk, a persistence story for long runs, permission scoping for anything that writes, and evaluation that measures whole trajectories rather than single responses. Teams that treat the loop as a prompting problem tend to ship a demo that works and a system that cannot be operated.
### Attention
- Canonical URL: https://techagents.online/glossary/attention
- Also called: self-attention, attention mechanism
- Group: models
Attention computes, for each position, a set of weights over the other positions and uses them to form a weighted combination of their values. Self-attention applies this within a single sequence, which is how a model resolves references, tracks structure and relates distant parts of a prompt.
Each position projects into a query, a key and a value. Comparing a query against all keys yields a score per position; normalising those scores produces weights, and the weighted sum of values becomes that position’s new representation. Multi-head attention runs several of these in parallel with different projections, letting different heads specialise — some track syntax, others long-range dependencies — before the results are recombined. Causal masking prevents a position from attending to later ones during generation, which is what makes autoregressive decoding well-defined.
The all-pairs comparison is the source of both the capability and the cost. Because the model computes an explicit relationship between every pair of positions, it can connect a pronoun to a noun thousands of tokens earlier — but the work grows with the square of sequence length. Efficiency research targets exactly this: sparse and sliding-window patterns, grouped or multi-query key–value sharing, and memory-management schemes that keep the growing key-value cache from fragmenting a GPU.
The misconception worth flagging is that attention weights are explanations. They show where computation flowed, not why an answer was produced, and high attention on a token does not establish that the token caused the output. Attention maps are a debugging aid for researchers, not an interpretability guarantee for product decisions.
### Chain of Thought
- Canonical URL: https://techagents.online/glossary/chain-of-thought
- Also called: CoT, step-by-step reasoning
- Group: engineering
Chain-of-thought prompting asks the model to work through a problem in steps rather than emitting an answer immediately. Because each generated token conditions the next, writing the intermediate steps gives the model more computation and a scaffold to build the final answer on.
The mechanism is simple and worth understanding literally: a model has a fixed amount of computation per token, so a problem that needs several logical steps cannot be solved inside a single token. Generating the steps spreads the work across many forward passes and puts each partial result into the context where later tokens can attend to it. This is why the technique helps most on arithmetic, multi-constraint reasoning and planning, and barely at all on recall or single-step classification.
In application design the question becomes what to do with the reasoning. Showing raw intermediate steps to end users is usually a mistake — it is verbose, occasionally wrong in ways that undermine a correct answer, and invites debate about the process rather than the result. The common pattern is to let the model reason and then emit a clearly delimited final answer that the application extracts, keeping the reasoning for logs and evaluation. Models with an explicit extended-thinking mode formalise this separation at the API level.
The misconception is that the stated reasoning explains the answer. It does not reliably. The written chain is generated text, not a transcript of an internal process, and a model can reach the right answer through a chain containing a wrong step, or narrate a convincing chain that leads to a wrong answer. Treat it as a computational aid that often improves results, not as an audit trail you can trust.
### Context Window
- Canonical URL: https://techagents.online/glossary/context-window
- Also called: context length, context size
- Group: models
The context window is the token budget for a single model call. Everything counts against it — system prompt, conversation history, retrieved passages, tool definitions, tool results and the output being generated — and once it is full, something has to be dropped or summarised.
The window exists because attention compares every position against the others, so the computational and memory cost of a request grows steeply with length. That cost is why a longer window is not free even when it is available: a request carrying a large context is slower to process and more expensive, and, because the key-value cache scales with sequence length, it consumes more of a serving instance’s memory.
The practical consequence in agents and chat applications is that context is a budget to be managed, not a container to be filled. Long-running conversations need a compaction strategy — summarise older turns, keep the system prompt and the recent window intact, and re-retrieve details on demand instead of carrying them forever. Verbose tool output is the usual culprit when a previously reliable agent starts ignoring its instructions: the instructions are still there, but they are competing with thousands of tokens of API response.
The misconception is that a large window makes selection unnecessary. Capacity is not attention. Filling a window with loosely relevant material measurably degrades answers compared with supplying a smaller, well-chosen set of passages — and you pay for the privilege on every request. Treat the window as headroom for the cases that genuinely need it, not as a default to be consumed.
### Distillation
- Canonical URL: https://techagents.online/glossary/distillation
- Also called: knowledge distillation, model distillation
- Group: models
Distillation trains a compact student model on the outputs of a larger teacher model, so the student learns the teacher’s behaviour on a target distribution rather than learning from raw labels alone. The result is a smaller model that approximates the teacher within the domain it was distilled on.
The teacher supplies a richer training signal than a hard label does. Its full output distribution encodes which alternatives were nearly as good, and that relative information transfers structure the student would otherwise have to discover for itself. In practice this may mean training on the teacher’s probability distributions, on its generated responses, or on its reasoning traces for tasks where the intermediate steps carry the value.
The motivation is almost always operational. A distilled model serves at a fraction of the cost, responds faster, and can run on hardware the teacher cannot fit on — which matters most for high-volume, narrow tasks: classification, extraction, routing, moderation, the first stage of a pipeline that escalates hard cases to a larger model. Distillation is also how many small open-weight releases acquire capabilities that would be implausible for their size.
The misconception is that a distilled model is a smaller version of the teacher. It is a specialist shaped by the distribution it was trained on. Inside that distribution it can be close to indistinguishable; outside it, quality falls off in ways that general benchmarks may not reveal. Distillation is a narrowing as much as a compression, and it is worth confirming that the narrowing matches the traffic you actually serve. Licensing is a second real constraint: many providers restrict using their outputs to train competing models.
### Embeddings
- Canonical URL: https://techagents.online/glossary/embeddings
- Also called: embedding, vector embedding, text embedding
- Group: retrieval
An embedding is a fixed-length vector produced by a model from a piece of text, image or other input. Inputs with similar meaning land close together in that space, so similarity can be computed arithmetically instead of by matching words.
An embedding model is trained so that semantically related inputs receive nearby vectors, typically measured by cosine similarity. Because the comparison is geometric rather than lexical, "how do I cancel my plan" can retrieve a passage titled "ending a subscription" with no shared keywords. The vectors themselves are opaque: no individual dimension means anything you can name, and you cannot reconstruct the original text from them, though you can often infer a surprising amount about it.
Two operational details decide whether an embedding pipeline works. First, the same model must be used for indexing and for querying — vectors from different models occupy incompatible spaces, and mixing them produces confidently wrong neighbours rather than an error. Second, what you embed matters more than which model you pick. A chunk that spans two unrelated topics gets an averaged vector that is close to neither, which is why chunking strategy is usually the highest-leverage knob in a retrieval system.
The misconception to avoid is treating similarity as relevance. Embeddings capture topical closeness, not correctness, recency or authority. A three-year-old deprecated policy and this morning’s replacement will sit almost on top of each other in vector space. Metadata filtering, recency weighting and reranking exist precisely because distance alone is not enough to decide what belongs in the answer.
### Evaluation (Evals)
- Canonical URL: https://techagents.online/glossary/evaluation
- Also called: evals, LLM evaluation
- Group: engineering
Evaluation is the practice of running a system over a curated set of inputs and scoring the outputs — by assertion, by heuristic, by another model, or by human review. It is what converts "this prompt feels better" into a comparison you can defend.
The dataset is the artefact that matters. Fifty inputs drawn from real usage, including the awkward and adversarial cases, are worth more than a thousand synthetic ones, because they encode the distribution you actually serve. Every production failure should end up in that set, which makes the suite grow in exactly the directions your system is weak. Scoring is then chosen per case: deterministic assertions where a correct answer exists, heuristics for format and constraint checks, a model-as-judge with an explicit rubric for qualitative dimensions, and human review for the subset where none of those are trustworthy.
For agents, evaluating the final answer alone hides most of the information. Trajectory-level evaluation asks whether the right tools were selected, whether arguments were well-formed, how many steps were taken and where the run went sideways — an agent that reaches a correct answer after nine wasted calls is a different system from one that reaches it in two, and only trajectory metrics distinguish them.
The misconception is that public benchmarks tell you what you need to know. They measure general capability on tasks that are not yours, on data that may have leaked into training, with prompts unlike your own. They are useful for shortlisting a model and useless for deciding whether your change helped. The only evaluation that answers that question is one built on your inputs and your definition of correct.
### Few-Shot Learning
- Canonical URL: https://techagents.online/glossary/few-shot-learning
- Also called: few-shot prompting, in-context learning
- Group: engineering
Few-shot prompting includes several input–output examples in the prompt to demonstrate the task. The model infers the pattern from those examples at inference time — no weights change, which is why the technique is also called in-context learning.
Examples communicate what instructions struggle to: exact output format, edge-case handling, the boundary between two similar categories, and the register the response should adopt. They are especially effective for classification with fuzzy labels and for structured output whose shape is easier to show than to specify. Zero-shot instructions are often sufficient for capable models on common tasks; examples earn their token cost when the task is idiosyncratic to your domain.
Composition matters more than count. Examples should span the range of inputs you expect, including the difficult cases, because a set drawn entirely from easy inputs teaches the model that the task is easy. Ordering has an effect, so a shuffled evaluation is worth running before you assume a gain is real. Every example is permanent context on every request, which makes this a direct trade against latency and cost — three well-chosen examples usually beat twelve redundant ones.
The misconception embedded in the name is that the model is learning. Nothing persists: the pattern is inferred fresh from the context on every call and is gone afterwards. If a behaviour must hold on every request forever, examples are a recurring tax that fine-tuning eventually replaces — but only once the behaviour is stable enough to be worth freezing into weights.
### Fine-Tuning
- Canonical URL: https://techagents.online/glossary/fine-tuning
- Also called: finetuning, supervised fine-tuning, SFT
- Group: models
Fine-tuning updates a pretrained model’s weights using additional examples of the behaviour you want. Parameter-efficient methods such as LoRA train a small set of adapter weights instead of the full network, which makes the process far cheaper and the result easy to swap.
The mechanism is ordinary supervised learning applied to an already-capable model: show input–output pairs, compute loss against the desired output, update weights. What changes is the prior — after training, the behaviour you demonstrated becomes what the model does without being asked. That is why fine-tuning is strong for form and weak for facts. Tone, structure, a house JSON shape, a domain’s conventions, a classification boundary that is hard to describe in words: these are all shape, and they transfer well.
Knowledge is the wrong target. Facts baked into weights cannot be updated without retraining, cannot be cited, and cannot be removed on request. Retrieval handles the same requirement with a source link and an edit path. The practical decision rule is close to mechanical: if the failing behaviour would be fixed by the model *knowing* something, retrieve it; if it would be fixed by the model *behaving* differently every single time, consider fine-tuning.
The cost people underestimate is not the training run — it is the dataset and the evaluation. A few hundred genuinely correct, consistent examples outperform tens of thousands of scraped ones, and without a held-out evaluation set you cannot tell whether the tune helped or simply narrowed the model. You also inherit an ongoing obligation: every base-model upgrade means re-running the pipeline and re-validating the result.
### Function Calling
- Canonical URL: https://techagents.online/glossary/function-calling
- Also called: function call, tool use API
- Group: engineering
Function calling lets an application pass a set of function definitions — name, description and a JSON Schema for the arguments — alongside a prompt. Instead of prose, the model may reply with a request to call one of them and the arguments to use, which the application executes and feeds back.
The important detail is that the model never executes anything. It emits a structured intent; your code decides whether to honour it. Providers constrain decoding so the emitted arguments conform to the supplied schema, which removes the brittle parse-the-prose step that early integrations relied on. The application then runs the function, appends the result to the conversation and calls the model again so it can use the outcome.
Because the schema and the descriptions are the entire interface the model sees, they are prompt engineering in a structured costume. A parameter named `q` with no description will be filled inconsistently; the same parameter named `search_query` with a one-line explanation of what belongs in it will not. Narrow enumerated types beat free-form strings, required fields beat optional ones, and a small set of well-named functions beats a large set of overlapping ones.
The misconception is that a validated schema means a safe call. Schema validation proves the arguments are well-formed, not that they are correct or authorised. A model can produce a perfectly valid request to delete the wrong record. Authorisation, rate limiting, idempotency and confirmation for destructive operations belong in the executing code, exactly as they would if the arguments had come from an untrusted client.
### Guardrails
- Canonical URL: https://techagents.online/glossary/guardrails
- Also called: safety rails, policy enforcement
- Group: safety
Guardrails are the validation and policy layers that sit either side of a model call: input filtering, output schema and content checks, tool permission scoping, and limits on cost, steps and rate. They are ordinary code, and they hold regardless of what the model produces.
The design principle is that a guardrail must not depend on the component it is guarding. Instructing a model to refuse certain requests is a preference, not a control — it operates in the same channel as the input trying to subvert it. A guardrail is a check outside the model: a schema the output must parse against, an allowlist the tool arguments must match, a spend ceiling enforced by the caller, a step limit that halts the loop. These fail closed and cannot be argued with.
In agent systems the highest-value guardrails cluster around actions rather than text. Separate read-only tools from mutating ones and grant them different credentials. Require an explicit approval step for anything irreversible. Scope every credential to the narrowest resource that works. Cap loop iterations and total tokens so a confused agent fails cheaply instead of expensively. Log every tool invocation with its arguments so an incident can be reconstructed afterwards.
Two misconceptions recur. The first is that a model-based classifier counts as a hard control; it is a useful probabilistic filter, and it belongs behind, not instead of, a deterministic check. The second is that guardrails are a launch checklist item. They are load-bearing architecture — retrofitting them onto a system whose tools were designed without permission boundaries usually means redesigning the tools.
### Hallucination
- Canonical URL: https://techagents.online/glossary/hallucination
- Also called: confabulation, fabrication
- Group: safety
A hallucination is model output that is plausible in form but not grounded in fact or in the supplied context. It is a direct consequence of next-token prediction: the model optimises for what looks like a good continuation, and a fabricated answer often looks better than an admission of ignorance.
Nothing in the generation process distinguishes recalled information from constructed information — both are sampled from the same distribution, and both arrive with the same confident prose. This is why hallucinations cluster around specifics: exact figures, version numbers, function signatures, citations and URLs. These are precisely the places where a plausible-looking pattern exists and the true value is arbitrary, so the model produces something that fits the shape.
Mitigation is layered, not singular. Supplying the facts in context through retrieval removes the need to recall them. Asking for citations tied to supplied passages makes fabrication visible rather than invisible. Constraining output to a schema eliminates whole categories of invention. Verifying against a source of truth in code — does this API exist, does this identifier resolve, does this number match the record — catches what the model cannot check about itself. Explicitly permitting "I don’t know" in the instructions helps, because a model that has been given no acceptable way to decline will produce something.
The misconception is that hallucination is a defect to be patched out. It is inherent to a system that generates rather than retrieves, and the practical goal is containment: keep unverified generation away from decisions that matter, make the verifiable path the cheap one, and design interfaces that show users what an answer was based on rather than asking them to trust it.
### Human in the Loop
- Canonical URL: https://techagents.online/glossary/human-in-the-loop
- Also called: HITL, human review, approval gate
- Group: safety
Human-in-the-loop design inserts a review point into an automated flow, typically before an action with real consequences. The system prepares and proposes; a person authorises, edits or rejects; the decision is recorded and can be used to improve the system.
The engineering requirement behind the phrase is that the run must be interruptible and resumable. An agent that has to hold an open connection while waiting for approval cannot wait long; one whose state is checkpointed can pause for hours, survive a deploy and continue from exactly where it stopped. This is why durable execution and graph-based agent runtimes treat interruption as a first-class primitive rather than an afterthought.
Where the checkpoint goes is a risk decision, not a stylistic one. Reversible, low-consequence actions should proceed unattended — gating them trains reviewers to click approve without reading, which is worse than no gate at all. Irreversible, expensive or externally visible actions — sending communications, moving money, deleting records, publishing — are where a real review earns its latency. The reviewer also needs enough context to judge: what the agent intends, why, and what evidence it relied on.
The misconception is that a human in the loop is a temporary scaffold to be removed once the model improves. In domains with regulatory, financial or reputational exposure, the review point is the control that makes automation acceptable at all, and it stays. What legitimately shrinks over time is its scope — narrowing which categories require approval as evidence accumulates, rather than removing the mechanism.
### Inference
- Canonical URL: https://techagents.online/glossary/inference
- Also called: model inference, model serving
- Group: models
Inference is the execution of a trained model on new input. For a language model it proceeds in two phases: a prefill pass that processes the whole prompt in parallel, then a decode phase that generates output one token at a time.
The two phases have different performance characteristics, and knowing which one you are in explains most latency behaviour. Prefill is compute-bound and parallel across the prompt, so doubling prompt length increases time-to-first-token but does not double the total wall clock in the way people expect. Decode is sequential and memory-bandwidth-bound: each new token requires reading the model weights and the accumulated key-value cache, which is why output length usually dominates end-to-end latency and why streaming makes such a difference to perceived speed.
Serving systems optimise around those facts. Continuous batching interleaves requests so the GPU is not idle while one sequence finishes; paged key-value cache management prevents memory fragmentation when many sequences of different lengths share a device; prompt caching reuses the prefill work for a stable prefix across requests. Each of these is invisible from the API but shows up directly in cost per request and in tail latency.
The misconception is that inference cost tracks model size alone. It tracks tokens — in and out — multiplied by how efficiently your traffic batches. A modest model called with bloated prompts on unbatchable traffic can cost more to run than a larger model with disciplined context management, and the first place to look when a bill grows is almost always prompt size, not model choice.
### Large Language Model (LLM)
- Canonical URL: https://techagents.online/glossary/llm
- Also called: large language model, language model, foundation model
- Group: models
A large language model is a transformer-based network trained to predict the next token in a sequence across a very large corpus. That single objective, at sufficient scale, produces a system that can summarise, translate, write code and follow instructions without task-specific training.
Everything an LLM does is next-token prediction over a context. Training establishes a distribution over what typically follows what; a later alignment stage — instruction tuning and preference optimisation — reshapes that distribution towards answers people judge helpful and safe. At inference the model produces a probability distribution over the vocabulary at each step, and a sampling strategy picks the next token from it. There is no lookup table and no database inside the weights, which is why a model can be fluent about a topic it has no reliable information on.
For engineers, the practical consequences follow directly from that mechanism. Output is stochastic unless you constrain sampling, so identical inputs need not yield identical outputs. Cost and latency scale with tokens in and tokens out, which makes prompt size an architectural concern rather than a formatting detail. And the model’s knowledge has a boundary in time; anything after it must arrive through retrieval or a tool call.
The misconception that causes the most damage in production is treating the model as a knowledge base. It is a language engine that has absorbed a great deal of knowledge as a side effect. When correctness matters, the reliable pattern is to supply the facts in the prompt or fetch them with a tool, and use the model for what it is genuinely good at: understanding the request, and shaping the response.
### Model Context Protocol (MCP)
- Canonical URL: https://techagents.online/glossary/mcp
- Also called: model context protocol
- Group: engineering
The Model Context Protocol defines a client–server interface between an AI application and the systems it needs to reach. A server exposes tools, resources and prompts through a documented JSON-RPC surface, and any compliant client can discover and call them without a bespoke integration.
Before a protocol existed, every combination of assistant and data source needed its own connector: one integration for this IDE and that ticket tracker, another for a different assistant and the same tracker. MCP inverts that by making the data source expose a standard server. The server advertises tools (functions the model may call), resources (content the client may read into context) and prompts (reusable templates), and the client handles discovery, invocation and the plumbing of results back into the model’s context.
The value shows up when the number of integrations grows. Building one server for your internal knowledge base makes it available to every MCP-capable client at once, and swapping the model or the assistant does not invalidate the connector. Transports cover both local processes over standard input and output and remote servers over HTTP, so the same interface works for a developer’s laptop and a hosted deployment.
The security implication is the part most often skipped. A protocol that makes it easy to attach tools also makes it easy to attach the wrong ones. Content returned by an MCP resource is untrusted input that lands directly in the model’s context, which is exactly the channel an indirect prompt injection travels through. Servers should scope credentials narrowly, actions with side effects should be distinguishable from reads, and a client that can install servers should treat that as a supply-chain decision, not a configuration tweak.
### Multi-Agent System
- Canonical URL: https://techagents.online/glossary/multi-agent-system
- Also called: multi-agent, agent team, agent crew
- Group: agents
A multi-agent system decomposes a problem across agents that hold separate contexts, instructions and toolsets, coordinated by a supervisor or a defined hand-off protocol. The motivation is isolation: each agent sees only what its subtask requires.
The strongest argument for multiple agents is context hygiene. A single agent handling research, code generation and review accumulates every intermediate artefact in one window, and quality degrades as the relevant instructions compete with thousands of tokens of history. Splitting the work gives each agent a small, focused context and a narrow tool catalogue, which improves both tool-selection accuracy and instruction adherence. A second, weaker argument is parallelism — independent subtasks can genuinely run at the same time.
The cost is coordination, and it is larger than it looks. Every hand-off is a lossy serialisation: whatever the sending agent knew that it did not write down is gone. Errors propagate silently because the receiving agent has no way to judge whether the input it was handed is sound. Debugging requires reconstructing a distributed trace across several conversations, and total token spend rises because context is duplicated across participants.
The misconception is that more agents means more capability. Adding agents adds interfaces, and interfaces are where systems fail. The reliable progression is to start with one agent and good tools, split only when a specific context or permission boundary forces it, and keep hand-off payloads explicit and structured rather than trusting free-form prose to carry state between them.
### Orchestration
- Canonical URL: https://techagents.online/glossary/orchestration
- Also called: agent orchestration, workflow orchestration
- Group: agents
Orchestration is the control layer around model calls: deciding what runs next, carrying state between steps, retrying failures, enforcing limits and persisting progress. It is what turns a set of individual capabilities into a workflow that can be operated.
Every AI system has orchestration; the only question is whether it is deliberate. In a simple feature it is a function with a few sequential awaits. As requirements accumulate — this step retries with backoff, that one runs only for enterprise accounts, this branch waits for approval, the whole thing must survive a deploy — ad-hoc control flow becomes the least reliable part of the system. Dedicated runtimes make the same structure explicit: state graphs with checkpointing, durable execution that replays from an event history, or event-driven functions whose step boundaries are individually retried.
The property that justifies the extra machinery is durability. Model calls are slow, occasionally fail and are billed per attempt, so a workflow that restarts from the beginning after a transient error is both expensive and, for anything with side effects, dangerous. Checkpointed steps make retries resume from the last good state, and they are what make human approval, multi-day waits and safe deploys mid-run possible at all.
The misconception is that orchestration means handing control to the model. The most dependable systems do the opposite: the application owns the sequence and delegates only the specific decisions that genuinely require judgement. A model-decided branch inside a deterministic pipeline is easier to test, cheaper to run and far easier to debug than a free-running loop asked to rediscover a known process on every request.
### Prompt Engineering
- Canonical URL: https://techagents.online/glossary/prompt-engineering
- Also called: prompting, prompt design
- Group: engineering
Prompt engineering is the practice of structuring what a model receives — role instructions, task description, examples, retrieved context and output format — to produce consistent, useful responses. In production it is a version-controlled, measured artefact rather than a phrase people trade around.
A prompt is the model’s entire world for a request, so the craft is mostly about removing ambiguity. State the task plainly, give the constraints the model cannot infer, show the output shape rather than describing it, and put the material the model must reason over where it will actually be read. Long prompts degrade in the middle more than at the ends, which is why instructions repeated briefly after a large block of retrieved context often outperform the same instructions stated only at the top.
The shift that matters as a project matures is from writing prompts to managing them. Prompts belong in the repository, referenced by version, with an evaluation set attached — otherwise a change that fixes today’s complaint silently breaks three behaviours nobody re-checked. Once you can measure, most tuning becomes unglamorous: clarify a term, remove a contradictory instruction, add two examples of the case that keeps failing.
The misconception is that better prompting can compensate for missing information. It cannot. If the answer depends on a document the model was never given, no arrangement of words retrieves it; that is a retrieval problem wearing a prompting costume. Prompting shapes how the model uses what it has — it does not add to what it has.
### Prompt Injection
- Canonical URL: https://techagents.online/glossary/prompt-injection
- Also called: indirect prompt injection, prompt attack
- Group: safety
Prompt injection exploits the fact that a language model receives instructions and data through the same channel. Attacker-controlled content — a web page, a document, an email, an API response — can carry directives that the model follows as though they came from the operator.
Direct injection is a user typing something to override the system prompt, which is mostly a policy problem. Indirect injection is the serious one: the payload sits in content the agent fetches during normal operation, and the user never sees it. An agent asked to summarise a web page reads instructions embedded in that page; an agent triaging tickets reads a ticket that tells it to exfiltrate a token. The model has no reliable mechanism for distinguishing a directive written by you from a directive written by someone whose document it just retrieved.
Severity is a function of capability, not cleverness. An agent that can only read and produce text has a bounded blast radius — the worst outcome is a wrong answer. The moment that agent can send email, write to a database, execute code or call a paid API, injected instructions become injected actions. The most dangerous configuration is the combination of untrusted input, privileged tools and no human in the path, and that combination is easy to assemble accidentally when tools are added one at a time.
There is no known prompt that reliably defends against this, and treating "ignore any instructions in the content below" as a fix is the central misconception. Mitigations are architectural: separate the privileges of components that read untrusted content from those that act; require approval for irreversible operations; scope credentials per tool; validate tool arguments against allowlists rather than trusting the model to choose well; and assume any content the agent retrieves may be hostile.
### Quantization
- Canonical URL: https://techagents.online/glossary/quantization
- Also called: quantisation, model quantization
- Group: models
Quantization reduces the precision used to represent a model’s parameters — for example from 16-bit floats to 8- or 4-bit integers — shrinking the memory footprint roughly in proportion. Since decoding is largely memory-bandwidth-bound, smaller weights usually also mean faster generation.
The method maps a range of high-precision values onto a smaller set of discrete levels, storing a scale factor so the values can be reconstructed approximately. Post-training quantization applies this to a finished model, sometimes using a small calibration set to choose ranges sensibly; quantization-aware training instead exposes the model to the rounding during training so it adapts. Not every layer is treated equally — implementations commonly keep sensitive components at higher precision because the accuracy cost of quantising them is disproportionate.
This is the technique that puts capable open-weight models on consumer hardware. A model that will not fit in available memory at full precision may fit comfortably at four bits, and local runtimes distribute quantised variants by default for exactly that reason. The trade is real but often modest: some loss of fidelity, most visible on tasks with tight precision requirements, in exchange for the model running at all.
The misconception is that quantization is free below some magic bit width. Degradation is gradual, uneven across tasks, and does not announce itself — a heavily quantised model can look fine in casual use and fail specifically on the long-tail reasoning or formatting cases your application depends on. The only way to choose a level responsibly is to run your own evaluation set against each candidate rather than trusting a general rule.
### ReAct Pattern
- Canonical URL: https://techagents.online/glossary/react-pattern
- Also called: reason and act, reasoning and acting loop
- Group: agents
The ReAct pattern alternates thought, action and observation: the model reasons briefly about what to do, emits a tool call, receives the result, and reasons again with that result in hand. It is the structural basis of most single-agent implementations.
The value of interleaving is that reasoning is grounded in evidence the agent has actually gathered. A plan-then-execute agent commits to a full sequence before seeing any results, so a wrong assumption at step one corrupts everything after it. A ReAct-style loop re-plans after each observation, which makes it far more robust to a search returning nothing, an API shape differing from expectation, or a file not being where the model assumed.
The cost is latency and tokens. Every cycle is a full model call carrying the entire accumulated transcript, so a ten-step run is ten calls over a context that grows monotonically. Practical implementations therefore bound the loop with a step limit, compact or summarise older observations, and truncate verbose tool results before appending them. Without those controls the failure mode is not an error but a slow, expensive run that ends at the step ceiling with nothing to show.
The misconception is that ReAct is the right default because it is the best known. Many tasks have a known shape — retrieve, then summarise, then format — and encoding that shape directly as a pipeline is faster, cheaper and far easier to test than asking a model to rediscover it on every request. Reserve the open loop for genuinely variable work where the number and order of steps cannot be known in advance.
### Reranking
- Canonical URL: https://techagents.online/glossary/reranking
- Also called: reranker, cross-encoder reranking
- Group: retrieval
Reranking takes the candidate set returned by a first-stage retriever and rescores it with a model that reads the query and each passage together. Because the two are compared directly rather than through independent embeddings, the ordering is substantially more accurate.
The distinction is bi-encoder versus cross-encoder. First-stage retrieval embeds documents in advance and the query at request time, then compares vectors — fast and precomputable, but the document was encoded with no knowledge of the query. A cross-encoder reranker feeds query and passage through a model together, so it can weigh whether this specific passage answers this specific question. That is far more expensive per pair, which is exactly why it runs on a shortlist rather than the corpus.
The standard arrangement is therefore two-stage: retrieve generously — enough candidates that the right passage is very likely somewhere in the set — then rerank and keep only the top few for the prompt. This directly improves the thing that determines answer quality, which is not whether the right passage was retrieved at all but whether it survived into the limited context the model actually reads.
The misconception is that reranking rescues weak retrieval. It can only reorder what it was given; a passage missing from the candidate set cannot be promoted into it. If recall at the first stage is poor, the fix is upstream — better chunking, hybrid scoring, query expansion — and reranking is what you add once the right answer is reliably present but arriving in eleventh place.
### Retrieval-Augmented Generation (RAG)
- Canonical URL: https://techagents.online/glossary/rag
- Also called: retrieval augmented generation, retrieval-augmented generation
- Group: retrieval
RAG is a pattern in which a query is first used to retrieve relevant passages from an external store, and those passages are inserted into the prompt alongside the question. The model then answers from the supplied text, which keeps answers current and lets you cite the source of each claim.
A RAG pipeline has two halves that fail for different reasons. The indexing half loads source documents, splits them into chunks, embeds each chunk and writes it to a store — decisions about chunk size, overlap and what metadata travels with each chunk are made here and are expensive to change later. The query half embeds the incoming question, retrieves the nearest chunks, optionally reranks them, assembles a prompt and generates the answer. When RAG disappoints, the cause is usually retrieval, not generation: the right passage never made it into the context, so no amount of prompt tuning will recover it.
RAG matters whenever the answer depends on information the model was not trained on or that changes faster than any training cycle: internal documentation, product catalogues, ticket histories, contracts, last week’s changelog. It also matters for attribution, because a retrieved chunk carries a source you can link to, which turns an unverifiable assertion into a checkable one.
Two misconceptions are worth correcting. The first is that a long context window makes RAG obsolete — a large window changes what you can afford to include, but it does not tell you which of ten million documents is relevant, and paying to process irrelevant text is both slower and less accurate. The second is that RAG eliminates hallucination. It reduces one cause and introduces another: given a confident but irrelevant retrieval, a model will happily build a fluent answer on top of the wrong passage.
### Semantic Search
- Canonical URL: https://techagents.online/glossary/semantic-search
- Also called: vector search, similarity search
- Group: retrieval
Semantic search embeds the query and compares it against stored embeddings, returning the nearest ones. Because matching happens in vector space, results can be relevant without sharing any vocabulary with the query.
The pipeline is short: embed the query with the same model used at index time, run an approximate nearest-neighbour search, apply any metadata filters, and return the top results. What this buys you is robustness to paraphrase, synonyms and the gap between how users phrase questions and how documentation phrases answers — the failure mode keyword search is worst at.
It has a complementary weakness, and it is sharp. Exact identifiers — an error code, a SKU, a function name, a version string — are precisely where lexical matching excels and embeddings blur, because a near-identical token sequence sits close to many similar sequences in vector space. This is why serious retrieval systems run hybrid search: keyword scoring and vector scoring in parallel, fused into a single ranking, so exact matches and conceptual matches both surface.
The misconception is that semantic search understands the query. It computes geometric proximity between two vectors. Proximity correlates with relevance often enough to be useful and diverges often enough to need help — from filters that encode hard constraints, from recency signals where freshness matters, and from a reranking stage that judges query and passage together rather than in isolation.
### Streaming
- Canonical URL: https://techagents.online/glossary/streaming
- Also called: token streaming, incremental rendering
- Group: engineering
Streaming sends partial output over an open connection as the model decodes it, rather than buffering the full response. The user sees text appear within the time it takes to produce the first token, while total generation time is unchanged.
The mechanism exploits the sequential nature of decoding: tokens exist one at a time anyway, so there is no reason to hold them. Transport is usually server-sent events or a chunked HTTP response, with the server forwarding provider chunks as they arrive. The number that changes is time-to-first-token, and it changes the experience disproportionately — a response that takes twelve seconds to finish feels responsive if it starts in four hundred milliseconds and unbearable if the screen is blank for twelve seconds.
Streaming complicates everything downstream of the text. Markdown may be half-parsed mid-stream, code fences arrive unclosed, and structured output cannot be validated until it is complete. Interfaces therefore need a rendering strategy that tolerates incomplete input, a cancellation path that actually aborts the upstream request rather than just hiding the output, and an error story for a stream that fails after partial delivery — the user has already read text that may now be retracted.
The misconception is that streaming is a performance optimisation. It optimises perception, not throughput: the same tokens take the same time, and streaming a response the user must wait for in full anyway — because the next action depends on the complete result — adds complexity for nothing. Stream where the output is read progressively; buffer where it is consumed atomically.
### Structured Output
- Canonical URL: https://techagents.online/glossary/structured-output
- Also called: JSON mode, constrained decoding, schema-constrained output
- Group: engineering
Structured output constrains generation to match a supplied schema — typically JSON Schema — by restricting which tokens are valid at each decoding step. The response is guaranteed to parse and to have the declared shape, removing an entire class of integration failure.
The enforcement happens inside decoding rather than after it. A grammar derived from the schema determines which tokens are legal at each position, and the sampler chooses only among those. Compared with asking politely for JSON and repairing whatever comes back, this eliminates trailing commentary, markdown fences, truncated objects and hallucinated fields — not by validation and retry, but by making the invalid token unreachable.
It is the natural interface between a model and the rest of a system. Extraction pipelines get typed records; classification returns an enum the code can switch on; agent tool arguments arrive already conforming to the function’s signature; UI components can be driven directly from a validated object. Well-named fields and tight types also improve content quality, because the schema is documentation the model reads: an enum of five allowed values produces better decisions than a free-form string field.
The misconception is that valid means correct. The schema constrains form, not truth — a required `confidence` number will always be present and may be meaningless, and a required field the source text does not support invites the model to invent a value rather than leave it out. Make genuinely optional fields optional, add an explicit "not found" representation, and keep semantic validation in code where it belongs.
### System Prompt
- Canonical URL: https://techagents.online/glossary/system-prompt
- Also called: system message, developer message
- Group: engineering
The system prompt is a distinct message that sets persistent behaviour: who the assistant is, what it may and may not do, what format it should produce and what context it should assume. Models are trained to weight it more heavily than user turns, though not absolutely.
A good system prompt is specific about behaviour and silent about everything else. Role framing, hard constraints, output conventions, tone and the handling of unknowns all belong there. Task-specific detail and retrieved material do not — they change per request, and mixing them into the persistent block makes the prompt impossible to cache and hard to reason about. Because the system prompt is prepended to every call in the conversation, it is also the part most worth keeping compact.
It is a real engineering artefact and deserves the same treatment as any other: stored in the repository, versioned, and covered by an evaluation set so a change to fix one complaint does not silently break three behaviours. Providers that support prompt caching make a stable system prompt cheaper as well, since an unchanged prefix can reuse prefill work across requests.
The misconception with security consequences is that the system prompt is a boundary. It is a strong prior, not an enforcement mechanism. Instructions arriving later in the context — including instructions hidden inside a retrieved document or a tool result — compete with it, and sometimes win. Anything that must hold regardless of what the model decides has to be enforced in code outside the model, not asserted inside the prompt.
### Temperature
- Canonical URL: https://techagents.online/glossary/temperature
- Also called: sampling temperature
- Group: models
Temperature scales the logits before they are converted into a probability distribution over the next token. Lower values concentrate probability on the most likely candidates, producing focused and repeatable output; higher values flatten the distribution, admitting less likely tokens and more variety.
At a temperature approaching zero, sampling collapses towards always choosing the highest-probability token, which is as close to deterministic as a model call gets — though batching and floating-point non-determinism mean it is not a guarantee. As temperature rises, tokens further down the distribution become reachable, which is what makes output feel creative and also what lets a wrong-but-plausible continuation get selected. Top-p and top-k truncate the distribution before sampling and interact with temperature, so tuning all three at once tends to produce confusion rather than insight.
The mapping to real tasks is direct. Extraction, classification, structured output, tool argument generation and anything a downstream parser depends on want low temperature. Brainstorming, alternative phrasings and generating diverse candidates for a later ranking step want higher values. If a pipeline needs both, run the divergent step hot and the converging step cold rather than compromising on one setting for the whole chain.
The misconception is that temperature controls accuracy or confidence. It does neither. It changes how much of the model’s existing distribution you are willing to sample from — a model that is confidently wrong at high temperature is confidently wrong at low temperature too, just more consistently. Lowering temperature makes errors reproducible, which is genuinely useful for debugging, but it does not make them less likely to be errors.
### Token
- Canonical URL: https://techagents.online/glossary/token
- Also called: tokens, tokenization, tokenisation
- Group: models
A token is the atomic unit of text for a language model, produced by a tokeniser that splits input into sub-word pieces drawn from a fixed vocabulary. Models consume, generate and are billed in tokens, and every context limit is expressed in them.
Tokenisers are built by learning which byte sequences occur together often enough to deserve their own vocabulary entry. Common English words usually become one token, rarer words split into several, and whitespace and punctuation attach in ways that are not obvious by inspection. The same sentence in a language under-represented in the tokeniser’s training data can cost noticeably more tokens than its English equivalent — a real and often overlooked cost and context asymmetry.
Because the model sees tokens rather than characters, a whole class of tasks is harder than it looks. Counting letters in a word, reversing a string or reasoning about precise character positions all ask the model to inspect inside units it does not natively see. This is not a reasoning failure; it is a representation mismatch, and the fix is to do that work in code and hand the model the result.
For estimation, treat any character-to-token ratio as a rough heuristic that varies by language, formatting and code content, and measure with the actual tokeniser when the number matters. JSON, deeply indented code and repeated markup are all more token-expensive than their information content suggests — which is a good argument for compact tool results.
### Tool Calling
- Canonical URL: https://techagents.online/glossary/tool-calling
- Also called: tool use, tool invocation
- Group: agents
Tool calling is the runtime pattern built on function calling: the model asks for a capability, the application executes it and returns the observation, and the model continues with that result in context. Repeating this cycle is what turns a single completion into an agent.
Mechanically the loop is small — send messages and tool definitions, receive either a final answer or a tool request, execute, append the observation, repeat. Everything difficult lives in the details around it. Tool results consume context, so a verbose API response can crowd out the instructions that keep the run on track; summarising or projecting results before appending them is often necessary. Tools fail, time out and return errors, and how you phrase an error back to the model determines whether it retries sensibly or loops.
Tool design is where most of the quality comes from. Tools that mirror a user-visible task ("look up an order by number") outperform tools that mirror your internal API surface ("query the orders table"), because the model is choosing by name and description, not by reading your schema. Overlapping tools invite the model to pick badly, and a catalogue of dozens dilutes selection accuracy for every one of them.
The security boundary is the part to internalise: a tool result is untrusted input. Text fetched from a web page, a document, a database row or another system arrives in the same context as your instructions, and a model has no reliable way to distinguish data from directive. Anything with side effects therefore needs its own authorisation, scoped credentials and — for irreversible operations — a human approval step that the model cannot bypass.
### Transformer
- Canonical URL: https://techagents.online/glossary/transformer
- Also called: transformer architecture
- Group: models
A transformer processes a whole sequence in parallel using stacked blocks of self-attention and feed-forward layers. Replacing sequential recurrence with attention is what made training on very large corpora practical, and it is the architecture nearly all current language models share.
Input tokens are converted to embeddings and combined with positional information, since attention itself has no inherent notion of order. Each block then lets every position attend to the others, producing a representation that is contextual rather than fixed — the vector for a word depends on the words around it. A feed-forward network transforms each position independently, and residual connections plus normalisation keep gradients healthy through many stacked layers. Depth and width scale this pattern up; the pattern itself does not change.
Two consequences follow for anyone building on top. Training parallelises across the sequence, which is what makes large-scale pretraining feasible, but generation does not — decoding is inherently one token at a time, and no amount of hardware removes that serialisation. And the cost of attention grows quadratically with sequence length, which is the root reason context windows have limits, why long prompts are disproportionately expensive, and why so much serving engineering is devoted to managing the key-value cache.
The misconception is that architecture is what distinguishes today’s models from each other. Most share the same fundamental design; the differences that matter in practice come from training data, scale, post-training alignment and inference-time technique. Knowing the architecture explains why models behave as they do at a mechanical level — it does not predict which one will be better at your task.
### Vector Database
- Canonical URL: https://techagents.online/glossary/vector-database
- Also called: vector store, vector db
- Group: retrieval
A vector database stores embedding vectors alongside metadata and answers nearest-neighbour queries against them. It uses approximate indexes rather than exhaustive comparison, trading a small amount of recall for query times that stay usable at scale.
Comparing a query vector against every stored vector is exact and linear in collection size, which is fine for thousands of items and hopeless for millions. Approximate nearest-neighbour indexes — HNSW graphs being the most common — build a navigable structure that reaches the neighbourhood of the true nearest vectors in far fewer comparisons. The trade-off is explicit: index parameters let you buy recall with memory and build time, or buy speed by accepting that an occasional true nearest neighbour is missed.
The feature that separates a usable store from a raw index is filtering. Real queries are rarely "find similar text" alone; they are "find similar text belonging to this tenant, in this locale, not archived". A store that applies predicates during traversal returns a full result set, whereas one that filters afterwards can return almost nothing once a selective filter is applied. Namespaces, payload indexes and hybrid keyword scoring exist to make that path work.
The choice people over-think is which vector database to adopt; the choice they under-think is whether they need a separate one at all. A PostgreSQL extension keeps vectors in the same transaction, the same backup and the same access-control model as the rest of the data, and removes an entire class of synchronisation bugs. A dedicated service earns its operational cost when the index outgrows what you want to run beside your transactional workload — not before.
## Comparisons
### Claude vs GPT
- Canonical URL: https://techagents.online/compare/claude-vs-gpt
- Compares: Claude and GPT
This comparison is usually framed as "which model is smarter", which is the least useful question you can ask. Both families are capable enough that the deciding factors in production are structural: what modalities you need behind one integration, how much of your prompt is stable enough to cache, how the tool-calling loop behaves under pressure, and which clouds you are allowed to deploy into. The second thing worth saying plainly is that model behaviour moves. Any judgement about which family follows instructions more faithfully or writes better code has a short shelf life, and a comparison that leans on it ages badly. What ages well is the shape of each platform — the surfaces it exposes, the levers it gives you over cost and latency, and the ecosystem that has grown around its API. The practical answer for most teams is to keep the choice reversible. Route model calls through one internal interface, keep prompts and evaluation sets in your repository rather than in a vendor console, and re-run those evaluations against both families when either releases something new. Portability costs a little upfront and buys you the ability to act on a pricing or capability change in an afternoon.
| Criterion | Claude | GPT |
| --- | --- | --- |
| Modality coverage | Text and image input with text output. Audio and image generation are not part of the same API surface, so a genuinely multimodal product ends up integrating a second provider. | Text, image, audio and image generation sit under one account and one billing relationship, which keeps a multimodal product on a single integration. |
| Long-context behaviour | Long contexts are a headline design point, and prompt caching makes a large stable prefix — system instructions, documentation, a codebase — cheap to resend on every call. | Large contexts are available across the family with caching support, though the practical ceiling and its cost profile vary between models in the lineup, so the choice is per-model rather than platform-wide. |
| Tool use and agent loops | Tool calling is central to the platform, and Anthropic authors the Model Context Protocol, so connecting external systems tends to mean writing one MCP server rather than a bespoke adapter. | Mature tool-calling with parallel calls and a first-party agents SDK; the API shape is the de facto compatibility target that most gateways and third-party runtimes implement. |
| Structured output | Schema-constrained output through the tool-use interface, which composes naturally when the same call may either answer or act. | A dedicated structured-output mode alongside tool calling, which makes pure extraction and classification calls slightly more direct to express. |
| Reasoning control | Extended thinking is an explicit, per-request budget, so you decide where deeper reasoning is worth the latency rather than choosing it at the model level. | Reasoning-focused models are selected as separate models with an effort setting, which separates the reasoning decision from the request and makes routing a deployment concern. |
| Adaptation to your domain | Adaptation is mostly prompting, caching and retrieval rather than self-serve fine-tuning on the first-party API, which keeps you on the current model but limits how far behaviour can be baked in. | Self-serve fine-tuning is part of the platform, which suits high-volume narrow tasks but creates an artefact you must re-create and re-validate on every base-model upgrade. |
| Ecosystem and library support | First-class in the major frameworks, and MCP has broad cross-vendor adoption, but a minority of tools still assume the other API shape and need an adapter. | The widest default support: most SDKs, gateways, self-hosted servers and tutorials target this request format first, which lowers integration friction almost everywhere. |
| Cloud and deployment surfaces | Available first-party and through major cloud marketplaces, which helps when procurement requires the spend and the data path to stay inside an existing cloud agreement. | Available first-party and through a major cloud’s managed offering, with the same procurement benefit for organisations already committed to that platform. |
| Cost levers | Prompt caching and batch processing are the primary levers, which rewards architectures with a large fixed prefix and a small variable tail. | Batch processing, caching and a wide model ladder from small to frontier, which rewards routing easy traffic to cheaper models and escalating only what needs it. |
| Migration risk | A distinct request and content-block format, so moving to or from it is a real, if bounded, refactor unless you have abstracted the call site. | Because so many providers emulate this API, switching between compatible endpoints is often a base-URL change — which cuts both ways as a lock-in consideration. |
**Verdict — both answers, and when each one is right**
Choose Claude when the work is long-context reasoning over text and code, when a large stable prefix makes prompt caching a structural cost advantage, or when MCP-based tool integration is the direction you are already heading.
Choose GPT when you need text, audio and image generation behind one integration, when self-serve fine-tuning for a narrow high-volume task matters, or when maximum third-party library compatibility is worth more than any single capability.
### Gemini vs Claude
- Canonical URL: https://techagents.online/compare/gemini-vs-claude
- Compares: Gemini and Claude
The clearest difference between these two is not quality but shape. Gemini is built as a natively multimodal family with video and audio as first-class inputs and deep ties into Google’s cloud and search infrastructure. Claude is built as a text-and-code system with long-context reasoning, prompt caching and tool use as its centre of gravity, deliberately positioned to run across more than one cloud. That difference decides most real evaluations before any output quality is measured. If your input is a two-hour recording, a screen capture or a stack of scanned pages, the ability to pass that media directly rather than transcribing and describing it first removes an entire preprocessing stage — and its failure modes. If your input is a large body of text and code that changes slowly, caching that context and reasoning over it repeatedly is the property that governs your bill. It is worth noting the comparison is not exclusive at the infrastructure layer: Claude is also served through Google’s managed AI platform, so "which model" and "which cloud" are separable decisions. Teams frequently end up using one family for media-heavy ingestion and another for the reasoning and agent layer, which is only sensible if the call site was abstracted early.
| Criterion | Gemini | Claude |
| --- | --- | --- |
| Native modalities | Video, audio, images and text are handled as native inputs, so media can be passed directly instead of being transcribed or captioned into text first. | Text and images in, text out. Audio and video have to be converted upstream, which adds a pipeline stage and a place for information to be lost. |
| Long-document workloads | Very large context windows make whole-corpus prompting viable for some workloads, reducing how much retrieval infrastructure a project needs to build. | Long contexts paired with prompt caching favour a different pattern: a large stable prefix reused cheaply across many calls rather than a fresh large payload each time. |
| Grounding and freshness | First-party grounding with web search is available as a platform feature, so recency can be handled without building your own retrieval path. | Freshness is your responsibility through retrieval or tools, which is more work upfront but keeps the sources, ranking and citations entirely under your control. |
| Tool use and agents | Function calling with agent tooling in the platform SDKs, integrated with the surrounding cloud services you are likely already using. | Tool use is the platform’s centre of gravity, and the Model Context Protocol gives a vendor-neutral way to expose the same tools to other clients later. |
| Cloud coupling | Strongest when you are already on Google Cloud — identity, data residency, logging and billing line up with the rest of the estate. | Deliberately available across multiple clouds and first-party, which suits multi-cloud policies or a desire to keep the model decision independent of the infrastructure one. |
| Model ladder | A wide range from small, fast variants to frontier models, which makes tiered routing — cheap model first, escalate on difficulty — straightforward within one family. | A smaller, more clearly differentiated lineup, which simplifies the choice but gives fewer intermediate rungs when you are optimising cost per request. |
| Structured output and schemas | Response schemas are supported directly on the generation call, which keeps extraction pipelines compact. | Schema enforcement runs through the tool-use interface, which is slightly more indirect but composes cleanly when a call may either answer or act. |
| Developer surface | A studio for rapid prototyping alongside the enterprise platform, so the path from experiment to production stays within one ecosystem. | A console and API oriented around production integration, with a coding agent and MCP ecosystem forming the developer-facing surface. |
| Enterprise controls | Inherits the surrounding cloud’s IAM, VPC controls, audit logging and regional guarantees, which is often decisive for regulated procurement. | Provides its own enterprise controls and additionally rides the controls of whichever cloud marketplace you consume it through. |
| Lock-in profile | Tighter integration means more value if you stay inside the ecosystem and more rework if you leave, particularly where grounding and platform services are used. | Fewer platform-level dependencies, so the switching cost is mostly the request format — lower lock-in, but also fewer batteries included. |
**Verdict — both answers, and when each one is right**
Choose Gemini when your inputs are genuinely multimodal — video, audio, mixed media — when built-in grounding saves you from building retrieval, or when you are already standardised on Google Cloud and want identity, logging and billing to line up.
Choose Claude when the work is sustained reasoning over text and code, when prompt caching over a large stable context is the cost lever that matters, or when you want the model decision to stay portable across clouds.
### Next.js vs React
- Canonical URL: https://techagents.online/compare/nextjs-vs-react
- Compares: Next.js and React
React is a library for describing user interfaces. Next.js is a framework that uses React and adds the decisions React deliberately leaves out: routing, data fetching, server rendering, bundling, caching and deployment conventions. Comparing them directly is a category error — you cannot use Next.js without using React. The comparison people actually mean is between two ways of assembling an application. On one side, a framework that has already chosen a router, a rendering model and a build pipeline. On the other, a React application you compose yourself — typically a client-rendered single-page app built with a fast dev server, a router you selected, and a data layer you wired up. That is a real decision with real trade-offs, and the rows below assess it. The honest heuristic is about what the product is. If pages need to be indexed, shared, or rendered fast on a first visit for someone who has never been to the site, server rendering is a requirement and a framework that does it by default saves you from rebuilding it badly. If the application lives behind a login and the first paint is a shell that immediately fetches state, most of what a framework provides is machinery you will pay to learn and not use.
| Criterion | Next.js | React |
| --- | --- | --- |
| Scope of the tool | A framework with opinions: routing, rendering, data fetching, bundling, image and font handling and caching all arrive together and are expected to be used together. | A view library with a deliberately narrow remit. Everything outside rendering components is a choice you make and own. |
| Rendering model | Server rendering is the default. Server Components run on the server and ship no JavaScript, and only interactive leaves are hydrated on the client. | Client rendering is the default in a typical single-page setup: the browser downloads a bundle, then renders. Server rendering is possible but is infrastructure you assemble yourself. |
| Routing | File-system routing with layouts, nested loading and error boundaries, and streaming built into the route hierarchy rather than added on top. | No router in the box. You pick one and configure it, which is more work and more freedom — and lets you keep routing entirely on the client if that suits the product. |
| Data fetching | Fetching happens in server components close to where the data is rendered, with a caching layer the framework manages and you have to understand. | Fetching happens in the client, usually through a data library that handles caching, revalidation and request state. The model is explicit and portable but adds a round trip after load. |
| SEO and metadata | A metadata API, generated sitemaps and social images are framework features, and server-rendered HTML means crawlers see content without executing JavaScript. | A client-rendered app requires prerendering or a separate rendering path to be reliably indexable, which is a solved but non-trivial problem you own. |
| Initial load | Meaningful content can appear before hydration and stream in progressively, which shortens the perceived wait on a first visit and on slow connections. | The first visit pays for the bundle before anything renders. Once loaded, in-app navigation is fast because it never leaves the client. |
| Learning curve | You are learning React plus the framework’s rendering boundaries and caching semantics, which is genuinely more surface area and a common source of confusion. | You are learning React, then each library you add. The total is not necessarily smaller, but it is incremental and each piece is independently documented. |
| Deployment | Needs a Node-capable runtime for server rendering. It runs in many places, but its smoothest path is its maintainer’s platform, which is worth naming honestly. | A built single-page app is static files. Any CDN or object store serves it, which is the simplest and cheapest deployment story available. |
| Portability | Server Components, route conventions and caching primitives are framework-specific, so moving away means rewriting the application shell rather than the components. | Plain React components and a standard router port between build tools with relatively little friction. |
| Fit for AI interfaces | Streaming with Suspense boundaries and server actions map directly onto token-by-token rendering, which is why AI products lean on this model. | Streaming is entirely doable, but you build the server endpoint, the transport and the incremental rendering strategy yourself. |
**Verdict — both answers, and when each one is right**
Choose Next.js when pages must be indexable and fast on first visit, when server rendering or streaming is part of the product rather than an optimisation, or when you would rather inherit routing and data conventions than design them.
Choose a plain React setup when the app sits behind authentication, when the deployment target is a static host, or when you want a small, explicit stack whose every piece you selected and can replace.
### PostgreSQL vs MongoDB
- Canonical URL: https://techagents.online/compare/postgresql-vs-mongodb
- Compares: PostgreSQL and MongoDB
The old framing of this comparison — rigid SQL against flexible NoSQL — has not been accurate for a long time. PostgreSQL has first-class JSON support with indexing, so it stores documents perfectly well. MongoDB supports multi-document transactions, so atomicity across records is no longer the dividing line. The real difference is what each system optimises for by default and what it makes awkward. PostgreSQL assumes your data has relationships worth enforcing and queries worth optimising, and it gives the database authority over structure. MongoDB assumes documents are the natural unit of both storage and retrieval, and it gives the application authority over structure. Neither assumption is wrong; they simply push complexity to different places. Relational modelling front-loads design effort and makes unanticipated queries cheap. Document modelling front-loads write speed and makes unanticipated queries expensive. A practical heuristic: ask whether you can predict, today, how this data will be read in two years. If yes, shaping documents around those reads is efficient. If no — and for most application databases the honest answer is no — normalised relational data with strong indexing preserves your ability to answer questions you have not thought of yet.
| Criterion | PostgreSQL | MongoDB |
| --- | --- | --- |
| Data model | Tables, columns and typed constraints, with jsonb columns available when part of a record is genuinely unstructured. Structure is enforced centrally. | Collections of BSON documents with flexible per-document shape. Nested data is stored as it is used, and structure is enforced by the application unless you opt into validation. |
| Relationships and joins | Joins and foreign keys are native and optimised. Relating entities is the normal case, not an escape hatch. | Related data is usually embedded or resolved through aggregation stages. Embedding is fast to read but duplicates data that then has to be kept consistent. |
| Schema evolution | Explicit migrations. More ceremony per change, but the production schema is knowable from the repository and drift is hard to accumulate. | New fields need no migration, which makes early iteration quick; the cost arrives later as documents in one collection carry several historical shapes at once. |
| Transactions | ACID transactions across any number of tables are the default expectation, which matters wherever an operation must be all-or-nothing across entities. | Single-document operations are atomic, and multi-document transactions are supported — though the data model is designed so that needing them frequently suggests the documents are shaped wrong. |
| Query capability | Full SQL, including window functions, CTEs, materialised views and a mature planner, so analytical questions can be answered without moving the data. | An expressive aggregation pipeline covering most analytical shapes, composed as stages rather than declarative SQL — powerful, with a different learning curve. |
| Scaling model | Scales vertically and through read replicas by default; horizontal write sharding requires an extension or external tooling and is a deliberate architectural step. | Native sharding is built in, so distributing writes across a cluster is a supported path — provided the shard key is chosen well, a decision that is painful to revisit. |
| Extensibility | A deep extension ecosystem — vector search, geospatial, time-series, full-text — that adds capability inside the same database and the same transaction. | Capability arrives through the platform: search, vector search and time-series collections are features of the managed service more than of a plugin ecosystem. |
| AI and retrieval workloads | pgvector keeps embeddings in ordinary tables, so similarity conditions compose with joins, row-level security and existing backups. | Vector search is integrated into the managed platform, keeping embeddings beside documents without adding a separate store, at the cost of running on that platform. |
| Operational profile | Well-understood operations with many managed providers, but connection handling, vacuum behaviour and index bloat are real concerns you must learn. | Replica sets and sharding are operationally coherent and well-tooled; the risks concentrate in schema drift and in the durability and consistency settings you choose. |
| Ecosystem gravity | The default choice for most application frameworks and analytics tooling, which means fewer integration surprises across the stack. | Strong SDKs and a document model that maps cleanly onto object-oriented and JavaScript codebases, which many teams find faster to work with day to day. |
**Verdict — both answers, and when each one is right**
Choose PostgreSQL when entities have relationships you want enforced, when future queries are unpredictable, when transactional correctness across records matters, or when you want retrieval, geospatial and analytics in the same database as your application data.
Choose MongoDB when the natural unit of work is a self-contained document, when read patterns are known and stable enough to shape storage around them, or when native horizontal sharding is a requirement you can design a good shard key for.
### RAG vs Fine-Tuning
- Canonical URL: https://techagents.online/compare/rag-vs-fine-tuning
- Compares: RAG and Fine-Tuning
These two techniques are routinely presented as competing answers to one question, but they solve different problems. Retrieval changes what the model knows at the moment of a request by placing relevant material in its context. Fine-tuning changes how the model behaves by adjusting weights on examples of the behaviour you want. Knowledge and behaviour are separate axes, and mistaking one for the other is the most expensive error in this decision. A diagnostic question resolves most cases. If the failure would be fixed by the model knowing a fact it has not been given, that is retrieval. If it would be fixed by the model responding differently every single time regardless of input — a house format, a domain register, a classification boundary that resists description — that is fine-tuning. Systems that need both use both: fine-tune the behaviour, retrieve the facts. Sequencing matters more than the choice itself. Retrieval is faster to build, easier to inspect and trivial to correct — editing a document changes the answer immediately. Fine-tuning demands a curated dataset, an evaluation set, and a maintenance commitment that recurs at every base-model upgrade. Building the retrieval path first also produces the artefact fine-tuning needs most: a corpus of real inputs and verified good outputs.
| Criterion | RAG | Fine-Tuning |
| --- | --- | --- |
| What it changes | What the model can see. Facts arrive in the prompt for a specific request and are gone afterwards, leaving weights untouched. | How the model behaves. Format, tone and task-specific defaults are absorbed into weights and apply to every request without being asked for. |
| Keeping content current | Updating a document updates the answer on the next request. Freshness is an indexing pipeline concern, not a model concern. | Knowledge encoded in weights is frozen at training time. Changing it means assembling new data and running the pipeline again. |
| Attribution | Retrieved passages carry their source, so an answer can cite where each claim came from and a user can verify it. | There is no source to point at. An output from a tuned model is an assertion the user has to take on trust. |
| Access control | Retrieval can filter by the requesting user’s permissions, so two people asking the same question legitimately receive different answers. | Weights have no notion of who is asking. Anything represented in the training data is available to everyone the model serves. |
| Cost profile | Low upfront cost, ongoing per-request cost: every call pays for embedding, retrieval and the extra prompt tokens the passages occupy. | Concentrated upfront cost in data preparation and training, then cheaper inference because the behaviour no longer needs to be re-explained in every prompt. |
| Latency | Adds retrieval — and often reranking — before generation, plus a larger prompt to process, which lengthens time to first token. | No additional request-time steps, and shorter prompts because instructions and examples have moved into the weights. |
| Data requirements | Needs a document corpus and a sensible chunking and indexing strategy. It does not need labelled input–output pairs. | Needs curated examples of correct behaviour, consistent enough to learn from, plus a held-out set to prove the tune helped rather than narrowed. |
| Failure modes | Fails through retrieval: the relevant passage is missed, or an irrelevant one is retrieved confidently and a fluent answer is built on top of it. | Fails through overfitting and narrowing: the model becomes reliable on the training distribution and degrades on inputs that fall outside it. |
| Debuggability | Highly inspectable. You can see exactly which passages were retrieved and read the prompt that produced the answer. | Largely opaque. A behaviour that emerged from training cannot be traced to a specific example without running an ablation. |
| Model portability | Provider-independent. The pipeline is yours, and swapping the generation model is a configuration change. | Tied to the base model. Every upgrade means re-running the training and re-validating the result, or staying on an ageing model. |
**Verdict — both answers, and when each one is right**
Choose RAG when answers depend on information that changes, when users need citations they can check, when permissions differ between users, or when you need to correct a wrong answer today by editing a document rather than retraining.
Choose fine-tuning when a stable behaviour must hold on every request — a strict output format, a domain register, a subtle classification boundary — or when high-volume traffic makes the shorter prompts and smaller model it enables a decisive cost win.
### Supabase vs Firebase
- Canonical URL: https://techagents.online/compare/supabase-vs-firebase
- Compares: Supabase and Firebase
Both products sell the same promise — a database, authentication, storage, realtime updates and serverless functions without operating any of it — and then differ on nearly every implementation decision underneath. The one that cascades furthest is the data model: Supabase is PostgreSQL, Firebase’s primary store is a document database. Everything from how you query, to how you authorise, to how you evolve a schema follows from that. The second axis is portability versus depth. Supabase is open source and self-hostable, and because it is Postgres underneath, your data and much of your logic are movable. Firebase is deeply integrated with the rest of Google’s mobile and app platform — messaging, crash reporting, analytics, app attestation — which is genuine value you cannot get by assembling parts, and which is also the thing you cannot take with you. A worthwhile tiebreaker is where your product’s complexity lives. If it is in relationships between entities and in reporting across them, the relational model repays itself quickly. If it is in client behaviour — offline use, sync across devices, mobile-first delivery — the platform built around mobile SDKs is doing work the relational model does not address.
| Criterion | Supabase | Firebase |
| --- | --- | --- |
| Data model | Relational PostgreSQL with real foreign keys, constraints and joins. Structure is enforced by the database, and denormalisation is a choice rather than a requirement. | Document collections without joins. Data is typically shaped around read paths, which is fast and simple until an access pattern nobody anticipated arrives. |
| Query capability | Full SQL — aggregates, window functions, CTEs, views — so reporting and analytical queries run against the same database that serves the app. | Query capability is deliberately limited to keep every query fast and predictable. Analytics generally means exporting to a warehouse rather than querying in place. |
| Authorisation model | Row-level security policies written in SQL, evaluated by the database itself, so the rule applies no matter which client or service issues the query. | Security rules in a purpose-built language evaluated at the API layer, tightly coupled to document paths and easy to reason about for simple ownership models. |
| Schema evolution | Migrations are explicit, versioned and reviewable — more ceremony per change, but the state of production is knowable from the repository. | Schemaless writes make early iteration fast; the cost is deferred, arriving as a backfill problem once documents in the same collection have several historical shapes. |
| Realtime | Realtime is built on Postgres replication, plus broadcast and presence channels — powerful, though subscribing to heavily filtered high-volume changes needs care. | Realtime listeners are the native way the client SDKs work, with document and query subscriptions that feel effortless because the whole product was designed around them. |
| Offline support | No first-party offline persistence layer. Offline-capable clients are something you build or bring a library for. | Offline persistence and local caching are built into the mobile and web SDKs, with writes queued and reconciled on reconnect — a substantial amount of hard work you do not do. |
| AI and vector retrieval | The pgvector extension turns the same database into a vector store, so embeddings live beside the rows they describe and inherit the same security policies. | Vector search is available through the wider platform’s database services, which works well but generally means an additional service in the architecture. |
| Platform breadth | Focused on the backend: database, auth, storage, edge functions. Messaging, analytics and crash reporting are things you integrate separately. | A broad app platform — push messaging, crash reporting, analytics, remote config, app attestation, testing — that is hard to replicate by assembling individual services. |
| Portability | Open source and self-hostable, and standard Postgres underneath means a migration path that does not begin with rewriting your data layer. | Proprietary and managed. Data can be exported, but security rules, SDK behaviour and platform integrations do not travel with it. |
| Cost shape | Predominantly resource-based, which is predictable to model but means paying for provisioned capacity during quiet periods. | Predominantly operation-based, which is close to free at low volume and can surprise you when a client bug or an inefficient listener multiplies reads. |
**Verdict — both answers, and when each one is right**
Choose Supabase when your domain is relational, when reporting and ad-hoc queries matter, when authorisation is more nuanced than document ownership, or when the ability to self-host and migrate is a requirement rather than a preference.
Choose Firebase when you are shipping mobile-first with offline support, when the surrounding platform services genuinely replace work you would otherwise do, or when your access patterns are simple and known and you want the fastest path to a working product.
## Tools
### AI SDK
- Canonical URL: https://techagents.online/tools/vercel-ai-sdk
- Website: https://ai-sdk.dev
- Pricing model: open-source
- Section: Agent Frameworks
The AI SDK gives JavaScript and TypeScript applications a single interface across model providers, covering text generation, structured output, tool calling and embeddings. Its streaming primitives and React hooks are built for token-by-token UI updates and server-driven rendering. Changing provider is a change of adapter rather than a rewrite of every call site.
**Best for:** Web applications that need streaming AI interfaces today and the freedom to swap model providers later.
**Where it falls short:** It is an application-layer SDK, not an orchestration runtime — durable state for long-running agents is still something you have to add.
### Claude Code
- Canonical URL: https://techagents.online/tools/claude-code
- Website: https://claude.com
- Documentation: https://docs.claude.com
- Pricing model: paid
- Section: Coding Assistants
Claude Code is Anthropic’s coding agent that runs as a terminal process and operates directly on a repository — it reads files, edits them, runs commands and iterates on the output it gets back. Because it is a shell process rather than an editor pane, the same loop drives interactive sessions, scripted runs and CI jobs. It reaches external systems through the Model Context Protocol.
**Best for:** Multi-file changes where the agent needs to read the surrounding code, run the test suite and iterate on real failure output.
**Where it falls short:** It is terminal-first with no inline completion surface, so developers who want suggestions as they type still need an editor assistant alongside it.
### Cursor
- Canonical URL: https://techagents.online/tools/cursor
- Website: https://cursor.com
- Documentation: https://docs.cursor.com
- Pricing model: freemium
- Section: Coding Assistants
Cursor is a fork of VS Code rebuilt around model-assisted editing: inline completion, a chat pane with codebase context, and an agent mode that applies edits across several files. It indexes the repository so retrieval — not just the open buffer — feeds the model’s context window. The VS Code extension surface is preserved, so most existing setups carry over.
**Best for:** Developers who want agentic edits and repo-aware chat without leaving a familiar VS Code environment.
**Where it falls short:** It is a separate editor install, so teams standardised on JetBrains, Neovim or a locked-down VS Code build have to migrate or run two editors.
### GitHub Copilot
- Canonical URL: https://techagents.online/tools/github-copilot
- Website: https://github.com
- Documentation: https://docs.github.com
- Pricing model: freemium
- Section: Coding Assistants
GitHub Copilot provides inline completion, chat and agent-style edits across the major editors, backed by a selectable model. It draws context from open files and the surrounding project, and connects to pull requests and issues on GitHub itself. Policy controls, seat management and audit surfaces are what distinguish it in larger organisations.
**Best for:** Organisations already on GitHub that want one governed assistant available in every editor their teams use.
**Where it falls short:** Context is driven largely by open files and recent edits, so sweeping cross-repository refactors need more hand-holding than a targeted change.
### Langfuse
- Canonical URL: https://techagents.online/tools/langfuse
- Website: https://langfuse.com
- Pricing model: open-source
- Section: Observability
Langfuse captures traces of LLM applications as nested spans — one per model call, retrieval step and tool invocation — with inputs, outputs, latency and token counts attached. On top of the trace store it provides prompt management, datasets and evaluation runs, so a regression can be reproduced against recorded inputs. It is self-hostable and instrumented through SDKs or OpenTelemetry.
**Best for:** Teams that need production tracing and evaluation while keeping trace data inside their own infrastructure.
**Where it falls short:** Instrumenting deeply nested agent code takes deliberate effort, and self-hosting adds a database and ingestion service to operate.
### LangGraph
- Canonical URL: https://techagents.online/tools/langgraph
- Website: https://langchain.com
- Documentation: https://docs.langchain.com
- Pricing model: open-source
- Section: Agent Frameworks
LangGraph models an agent as a state graph: nodes are steps, edges are transitions, and a shared state object flows between them. Because control flow is explicit rather than implicit in a prompt loop, runs can be checkpointed, resumed, branched and interrupted for human approval. It works standalone and integrates with the wider LangChain ecosystem.
**Best for:** Long-running or approval-gated agent workflows that need durable state and control flow you can read off a diagram.
**Where it falls short:** The graph abstraction is overhead for a single-step task — one model call with a tool schema is simpler and easier to debug.
### Ollama
- Canonical URL: https://techagents.online/tools/ollama
- Website: https://ollama.com
- Pricing model: open-source
- Section: Infrastructure
Ollama packages open-weight models as pullable artefacts and serves them over a local HTTP API, handling quantised weight downloads, GPU or CPU placement and model lifecycle. A Modelfile pins a base model together with its parameters and system prompt as a reproducible definition. The endpoint is OpenAI-compatible, so most client libraries work against it unchanged.
**Best for:** Local development, offline work and privacy-sensitive workloads where the data must not leave the machine.
**Where it falls short:** You are bounded by local memory and bandwidth — the largest frontier-class models are simply not runnable on a laptop.
### Pinecone
- Canonical URL: https://techagents.online/tools/pinecone
- Website: https://pinecone.io
- Documentation: https://docs.pinecone.io
- Pricing model: freemium
- Section: Vector Databases
Pinecone is a fully managed vector database that hides index sharding, replication and scaling behind an upsert-and-query API. Metadata filtering runs alongside similarity search, and namespaces give multi-tenant applications separation without a separate index per tenant. The operational work — rebalancing, replication, version upgrades — belongs to the service.
**Best for:** Teams that want production vector search without owning the storage layer or its failure modes.
**Where it falls short:** It is a second system of record: you own the synchronisation from your primary database, and you cannot join vectors against relational data.
### Braintrust
- Canonical URL: https://techagents.online/tools/braintrust
- Website: https://braintrust.dev
- Pricing model: freemium
- Section: Observability
Braintrust is built around evaluation: you define datasets, scoring functions and experiments, then compare runs as prompts, models or application code change. Production logs feed back in, so real traffic that went wrong can be promoted into a regression dataset. A playground lets you iterate on prompts against the same scorers that run in CI.
**Best for:** Teams that want prompt and model changes gated by a measurable score rather than by how the output felt.
**Where it falls short:** Evaluation is only as good as the scorers you write; assembling a dataset that reflects real usage is the work the tool cannot do for you.
### Claude API
- Canonical URL: https://techagents.online/tools/claude-api
- Website: https://anthropic.com
- Documentation: https://docs.claude.com
- Pricing model: paid
- Section: Model Providers
The Claude API serves Anthropic’s model family with tool use, structured output, long-context requests, prompt caching and batch processing. Extended thinking lets you trade latency for deeper reasoning per request, and prompt caching makes large stable prefixes cheap to reuse. Anthropic also authors the Model Context Protocol that standardises how models reach external tools and data.
**Best for:** Long-context reasoning, careful instruction following and agentic tool use with explicit control over cost and latency.
**Where it falls short:** Modality coverage is narrower than providers that also serve image, audio and video generation from the same account.
### Continue
- Canonical URL: https://techagents.online/tools/continue
- Website: https://continue.dev
- Documentation: https://docs.continue.dev
- Pricing model: open-source
- Section: Coding Assistants
Continue is an open-source IDE extension for VS Code and JetBrains offering completion, chat and edit modes against whatever model you point it at — a hosted API or a local runtime. Its configuration is declarative, so a team can version its assistant setup, context providers and prompts in the repository like any other code. Model choice is deliberately left open.
**Best for:** Teams that need an assistant running against self-hosted or security-approved models under configuration they control.
**Where it falls short:** You own the integration work — model selection, context tuning and output quality are your responsibility rather than a vendor default.
### CrewAI
- Canonical URL: https://techagents.online/tools/crewai
- Website: https://crewai.com
- Documentation: https://docs.crewai.com
- Pricing model: open-source
- Section: Agent Frameworks
CrewAI structures multi-agent systems around roles, goals and tasks: you declare agents with a purpose and a toolset, then compose them into a crew that executes sequentially or hierarchically. The framework handles delegation between agents and passes each task’s output forward as context for the next. The result is a declarative description of who does what.
**Best for:** Workflows that decompose cleanly into distinct specialist roles with a clear hand-off order between them.
**Where it falls short:** Role-play framing adds model calls without necessarily adding accuracy; many problems are cheaper and more reliable as one agent with good tools.
### Hugging Face
- Canonical URL: https://techagents.online/tools/hugging-face
- Website: https://huggingface.co
- Pricing model: freemium
- Section: Model Providers
Hugging Face hosts open model weights, datasets and demo applications on a Git-backed hub that versions large artefacts through LFS. Its libraries — transformers, datasets, accelerate and the rest — are the default toolkit for loading, running and fine-tuning open models, while hosted inference and Spaces run them without local hardware. Most open-weight releases land here first.
**Best for:** Finding, evaluating and fine-tuning open-weight models without building your own distribution infrastructure.
**Where it falls short:** Quality and licensing across hub listings vary enormously — a model being popular says nothing about whether you may ship it.
### Inngest
- Canonical URL: https://techagents.online/tools/inngest
- Website: https://inngest.com
- Pricing model: freemium
- Section: Orchestration
Inngest turns ordinary functions into durable, event-triggered steps: each step boundary is checkpointed, so a retry resumes from the last completed step instead of the beginning. Flow control — concurrency limits, throttling, debouncing and fan-out — is declared alongside the function rather than built by hand. Functions run on your existing HTTP endpoints, so there is no separate worker fleet.
**Best for:** Adding retries, concurrency limits and long waits to AI workflows that already live inside a serverless application.
**Where it falls short:** Reasoning about execution locally gets harder as steps multiply, and scheduling depends on a hosted control plane you do not run.
### LangSmith
- Canonical URL: https://techagents.online/tools/langsmith
- Website: https://smith.langchain.com
- Pricing model: freemium
- Section: Observability
LangSmith records traces, prompts and token usage for LLM applications, with first-class support for LangChain and LangGraph runs and a framework-agnostic SDK underneath. It pairs the trace store with datasets, annotation queues and automated evaluators, so a production failure can be turned into a test case. Human review queues let subject-matter experts grade outputs directly.
**Best for:** Debugging and evaluating applications already built on the LangChain or LangGraph stack.
**Where it falls short:** The default deployment is hosted, so trace payloads — often containing user data — leave your environment unless you self-host it.
### LlamaIndex
- Canonical URL: https://techagents.online/tools/llamaindex
- Website: https://llamaindex.ai
- Documentation: https://docs.llamaindex.ai
- Pricing model: open-source
- Section: Agent Frameworks
LlamaIndex concentrates on the ingestion half of an LLM application: loading documents, chunking them, building indexes, and querying through retrievers and query engines. The storage layer is abstracted, so the same pipeline can sit on top of different vector stores and document databases. Agent and workflow abstractions are built on those retrieval primitives.
**Best for:** Retrieval pipelines over heterogeneous document sources where parsing, chunking and indexing are the hard part.
**Where it falls short:** The abstraction stack is deep, so diagnosing a bad answer often means unwinding several layers to see the prompt that was actually sent.
### Modal
- Canonical URL: https://techagents.online/tools/modal
- Website: https://modal.com
- Pricing model: freemium
- Section: Infrastructure
Modal runs Python functions on remote CPU or GPU containers described in code: the image, hardware and scaling policy are decorators on the function rather than separate infrastructure files. Containers scale from zero and bill by execution, which fits bursty inference, batch jobs and fine-tuning runs. Volumes and scheduled functions cover persistent state and cron-shaped work.
**Best for:** Bursty GPU workloads where paying for idle capacity is precisely the cost you are trying to avoid.
**Where it falls short:** Cold starts on large model images are real, and expressing infrastructure as Python decorators ties your deployment shape to one vendor.
### n8n
- Canonical URL: https://techagents.online/tools/n8n
- Website: https://n8n.io
- Documentation: https://docs.n8n.io
- Pricing model: freemium
- Section: Orchestration
n8n is a node-based workflow automation tool with a visual editor, a large connector library and an escape hatch into JavaScript when no node fits. Its AI nodes let a workflow call a model, run an agent step and feed the result into the rest of the automation. It is source-available and self-hostable, with a managed cloud option.
**Best for:** Wiring an AI step into the operational systems around it — email, CRM, storage, webhooks — without writing an integration for each.
**Where it falls short:** Its licence is source-available rather than OSI open source, and complex branching logic in a visual graph is harder to review and diff than code.
### Next.js
- Canonical URL: https://techagents.online/tools/nextjs
- Website: https://nextjs.org
- Pricing model: open-source
- Section: Developer Platforms
Next.js is a React framework whose App Router makes Server Components the default, so data fetching and rendering happen on the server and only interactive leaves ship JavaScript. Streaming with Suspense boundaries gives AI interfaces a natural way to render partial results as tokens arrive. Routing, metadata, image handling and caching are framework concerns rather than per-project assembly.
**Best for:** Content and product sites that need server rendering, SEO control and streaming UI from a single codebase.
**Where it falls short:** The caching and rendering model has genuine depth to learn, and its smoothest deployment path is the vendor’s own platform.
### OpenAI Platform
- Canonical URL: https://techagents.online/tools/openai-platform
- Website: https://openai.com
- Pricing model: paid
- Section: Model Providers
OpenAI’s platform exposes its model family through a REST API with tool calling, structured output, embeddings, audio and image generation. Alongside inference it offers batch processing, fine-tuning and evaluation endpoints, plus a dashboard for keys and usage. Nearly every agent framework ships a first-class adapter for it.
**Best for:** Teams that want broad modality coverage and the widest library and framework support behind a single API key.
**Where it falls short:** Model behaviour and endpoint shapes evolve on the vendor’s schedule, so pinning versions and re-running your evaluations is a standing cost.
### OpenRouter
- Canonical URL: https://techagents.online/tools/openrouter
- Website: https://openrouter.ai
- Pricing model: paid
- Section: Model Providers
OpenRouter is a routing layer that exposes models from many vendors behind a single OpenAI-compatible endpoint, with unified billing and per-request routing rules. Provider fall-back means a request can survive one upstream being unavailable, and requests can be pinned to a specific provider when determinism matters. Switching models becomes a string change rather than an integration project.
**Best for:** Comparing or hot-swapping models across vendors without maintaining a separate integration for each one.
**Where it falls short:** It adds a hop to every request and abstracts away provider-specific features, which matters once you depend on one vendor’s edge capabilities.
### pgvector
- Canonical URL: https://techagents.online/tools/pgvector
- Website: https://github.com/pgvector/pgvector
- Pricing model: open-source
- Section: Vector Databases
pgvector is a PostgreSQL extension adding vector column types and distance operators, with HNSW and IVFFlat index types for approximate nearest-neighbour search. Because vectors live in ordinary tables, similarity conditions compose with joins, transactions, row-level security and your existing backup story. An existing Postgres instance becomes a usable vector store without new infrastructure.
**Best for:** Applications already on PostgreSQL that want retrieval without adding another datastore to operate and keep in sync.
**Where it falls short:** Large indexes compete with your transactional workload for memory and CPU, which is the point at which a dedicated vector service starts to pay off.
### Pydantic AI
- Canonical URL: https://techagents.online/tools/pydantic-ai
- Website: https://pydantic.dev
- Documentation: https://ai.pydantic.dev
- Pricing model: open-source
- Section: Agent Frameworks
Pydantic AI applies Pydantic’s validation model to agent construction: tool arguments and final results are declared as schemas, and the framework validates the model’s output against them, retrying when it does not conform. Dependency injection makes the surrounding services explicit, so agents are testable like ordinary Python code. It runs against the major model providers through a common interface.
**Best for:** Python services where an agent’s output has to satisfy a schema before it is allowed to touch anything else.
**Where it falls short:** It is Python-only, and the schema-first approach adds friction when what you actually want out is free-form prose.
### Qdrant
- Canonical URL: https://techagents.online/tools/qdrant
- Website: https://qdrant.tech
- Pricing model: open-source
- Section: Vector Databases
Qdrant is a vector search engine written in Rust that pairs HNSW indexing with a filterable payload store, applying metadata conditions during the search rather than discarding results afterwards. Vector quantisation and on-disk storage let you trade recall against memory footprint deliberately. It ships as a single binary, a container, or managed cloud.
**Best for:** Filtered vector search at scale, where predicate performance and memory cost are the constraints that bite first.
**Where it falls short:** It is a specialised store, so you still need a primary database and a pipeline that keeps the two consistent.
### Replicate
- Canonical URL: https://techagents.online/tools/replicate
- Website: https://replicate.com
- Pricing model: paid
- Section: Infrastructure
Replicate hosts open and proprietary models as versioned, API-callable endpoints, with a container packaging format that defines each model’s environment and input schema. Predictions are asynchronous with webhook callbacks, and many models can be fine-tuned through the same interface. Publishing your own model follows the same path as running someone else’s.
**Best for:** Adding image, audio or specialised open models to a product without standing up GPU infrastructure.
**Where it falls short:** Per-prediction billing on steady, always-on traffic costs more than a dedicated deployment, and cold-start behaviour varies by model.
### Supabase
- Canonical URL: https://techagents.online/tools/supabase
- Website: https://supabase.com
- Pricing model: open-source
- Section: Developer Platforms
Supabase assembles a managed PostgreSQL database with generated REST and realtime APIs, authentication, object storage and edge functions, keeping SQL and row-level security as the authorisation model. Because it is Postgres underneath, extensions such as pgvector turn the same database into a retrieval store. The stack is open source and can be self-hosted.
**Best for:** Applications that want a relational database plus the surrounding services without giving up SQL or portability.
**Where it falls short:** Row-level security is powerful but unforgiving — complex policies push authorisation into the database where it is harder to test and review.
### Temporal
- Canonical URL: https://techagents.online/tools/temporal
- Website: https://temporal.io
- Documentation: https://docs.temporal.io
- Pricing model: open-source
- Section: Orchestration
Temporal runs workflows as durable code: each step’s result is persisted to an event history, so a process survives crashes, deploys and multi-day waits by replaying deterministically from that history. Non-deterministic work — API calls, model requests — is isolated into activities with their own retry and timeout policies. Agents built on it inherit failure recovery instead of hand-rolling it.
**Best for:** Multi-step agent or business workflows that must survive process restarts and stay alive for hours or days.
**Where it falls short:** It brings a server, worker fleet and a determinism discipline that is real operational weight for anything short-lived.
### Vercel
- Canonical URL: https://techagents.online/tools/vercel
- Website: https://vercel.com
- Pricing model: freemium
- Section: Developer Platforms
Vercel deploys frontend frameworks and serverless functions with per-branch preview environments, an edge network and build-time framework integrations. Streaming responses, background functions and middleware map onto the request patterns AI features need. It maintains both Next.js and the AI SDK, so those integrations track the platform closely.
**Best for:** Shipping frontend and AI-facing applications with preview deployments and close to no infrastructure work.
**Where it falls short:** Usage-based pricing on high-traffic or long-running compute can exceed a plain container, and leaning on platform primitives increases lock-in.
### vLLM
- Canonical URL: https://techagents.online/tools/vllm
- Website: https://github.com/vllm-project/vllm
- Documentation: https://docs.vllm.ai
- Pricing model: open-source
- Section: Infrastructure
vLLM is an inference engine whose PagedAttention memory manager treats the key-value cache like virtual memory pages, letting it hold many concurrent sequences without fragmenting GPU memory. Continuous batching keeps the GPU busy across requests of very different lengths, and the server speaks an OpenAI-compatible API. Tensor and pipeline parallelism cover multi-GPU serving.
**Best for:** Self-hosting open-weight models where concurrent throughput per GPU is the number you are optimising.
**Where it falls short:** It assumes you have GPUs and the appetite to operate them — capacity planning, drivers and upgrades are entirely yours.
### Weaviate
- Canonical URL: https://techagents.online/tools/weaviate
- Website: https://weaviate.io
- Pricing model: open-source
- Section: Vector Databases
Weaviate stores objects together with their vectors and can generate the embeddings itself through pluggable vectoriser modules at write time. Dense vector search and keyword BM25 scoring combine into a single hybrid query, exposed over GraphQL and REST against a schema-defined collection model. It runs self-hosted or as a managed cloud service.
**Best for:** Hybrid semantic and keyword retrieval where you want the database to own embedding generation rather than your pipeline.
**Where it falls short:** The schema and module system is more to learn than a plain index, and self-hosting means owning memory sizing, upgrades and backups.
### Windsurf
- Canonical URL: https://techagents.online/tools/windsurf
- Website: https://windsurf.com
- Pricing model: freemium
- Section: Coding Assistants
Windsurf is an AI-first IDE whose agent can read the project, plan an edit spanning several files and run terminal commands while keeping a running model of what it has already changed. It combines ordinary inline completion with a longer-horizon agent surface in the same editor. It ships as a standalone application and as plugins for other editors.
**Best for:** Longer, multi-step tasks where you want the agent to keep working while you review its diffs.
**Where it falls short:** The more autonomous the run, the larger the diff to review — without a disciplined review habit it is easy to accept changes nobody read.
### Zed
- Canonical URL: https://techagents.online/tools/zed
- Website: https://zed.dev
- Pricing model: open-source
- Section: Coding Assistants
Zed is a GPU-accelerated editor written in Rust, designed around low input latency and real-time multiplayer editing. Its assistant panel talks to whichever model provider you configure, including local runtimes, and applies edits alongside normal keyboard-driven editing. The editor and its collaboration layer are open source.
**Best for:** Developers who care about editor latency and want AI assistance without a heavyweight Electron shell.
**Where it falls short:** Its extension ecosystem is much smaller than VS Code’s, so language and tooling support can be thin for less common stacks.
## Categories
### AI Agents
- Canonical URL: https://techagents.online/category/ai-agents
- Published articles: 2 articles
Autonomous and semi-autonomous AI systems that plan, call tools and act on real workflows.
AI agents combine a language model with memory, tools and a control loop so software can pursue a goal rather than answer a single prompt. This section covers agent architectures, planning and reasoning loops, tool and function calling, multi-agent orchestration, evaluation, and the operational realities of running agents in production.
### Artificial Intelligence
- Canonical URL: https://techagents.online/category/artificial-intelligence
- Published articles: 1 article
Large language models, generative systems and the research shaping applied AI.
Applied artificial intelligence for people who build software: how large language models actually work, what generative systems can and cannot do, where the research is heading, and how to reason about capability claims without the marketing layer.
### AI Development
- Canonical URL: https://techagents.online/category/ai-development
- Published articles: 3 articles
Building, shipping and operating AI-powered products with real engineering constraints.
The engineering discipline around AI features: prompt and context design, retrieval pipelines, streaming interfaces, evaluation harnesses, cost and latency budgets, failure handling, and the architecture decisions that separate a demo from a production system.
### AI Tools
- Canonical URL: https://techagents.online/category/ai-tools
- Published articles: 1 article
Hands-on assessments of the models, IDEs, frameworks and platforms developers actually use.
A working reference for AI tooling — coding assistants, agent frameworks, vector stores, orchestration platforms and model providers — assessed on what they do well, where they break down, and which problem each one is genuinely the right answer to.
### AI News
- Canonical URL: https://techagents.online/category/ai-news
- Published articles: no articles yet
Model launches, platform changes and industry shifts, with the engineering context attached.
Technology news filtered for signal. Model releases, protocol and platform changes, funding and consolidation, and regulation — each covered with what it changes for the people building on top of it.
### Web Development
- Canonical URL: https://techagents.online/category/web-development
- Published articles: no articles yet
Modern web engineering — rendering models, performance budgets and platform APIs.
How the modern web is built: rendering strategies, streaming and server components, caching layers, Core Web Vitals, browser platform APIs, and the trade-offs behind each architectural choice.
### JavaScript
- Canonical URL: https://techagents.online/category/javascript
- Published articles: no articles yet
The language itself — runtime behaviour, async models, tooling and TypeScript at the edges.
JavaScript and TypeScript at depth: the event loop and async semantics, module systems, bundlers and build pipelines, type-system practicalities, and the runtime details that explain surprising behaviour.
### React
- Canonical URL: https://techagents.online/category/react
- Published articles: no articles yet
Server Components, rendering behaviour, state and the patterns that scale past a demo.
React as it is used in production: Server and Client Component boundaries, the rendering and reconciliation model, state ownership, suspense and streaming, and the component patterns that hold up as an application grows.
### Next.js
- Canonical URL: https://techagents.online/category/nextjs
- Published articles: 1 article
App Router architecture, caching, data fetching and deployment on the modern Next.js stack.
Next.js from routing to production: the App Router mental model, Server Components and Server Actions, the caching layers and how to reason about them, metadata and SEO, image and font handling, and deployment topology.
### Python
- Canonical URL: https://techagents.online/category/python
- Published articles: no articles yet
The default language of the AI stack — from data pipelines to agent runtimes.
Python for AI and backend engineering: async patterns, packaging and environments, data and inference pipelines, typing in practice, and the libraries that make up the working AI stack.
### APIs
- Canonical URL: https://techagents.online/category/apis
- Published articles: 1 article
API design, protocols and the interfaces that let agents and services talk to each other.
Interface design across REST, GraphQL, RPC, streaming and emerging agent protocols — versioning, authentication, idempotency, rate limiting, and what changes when the primary consumer of your API is a model rather than a person.
### DevOps
- Canonical URL: https://techagents.online/category/devops
- Published articles: no articles yet
Pipelines, observability and the operational surface of shipping software continuously.
The path from commit to production: CI/CD design, infrastructure as code, containers and runtimes, observability and tracing, incident response, and the operational patterns that keep deployment boring.
### Cybersecurity
- Canonical URL: https://techagents.online/category/cybersecurity
- Published articles: 1 article
Application and AI security — prompt injection, supply chain, identity and defensive design.
Security for engineers building modern and AI-enabled systems: prompt injection and tool-use risk, sandboxing and least privilege, dependency and supply-chain integrity, secrets handling, identity and authorisation, and threat modelling that survives contact with a real product.
### Cloud
- Canonical URL: https://techagents.online/category/cloud
- Published articles: no articles yet
Serverless, edge and the compute models behind AI-era infrastructure.
Cloud architecture with cost and latency treated as first-class constraints: serverless and long-running compute, edge execution, GPU and inference infrastructure, storage and caching topology, and multi-region design.
### Robotics
- Canonical URL: https://techagents.online/category/robotics
- Published articles: no articles yet
Embodied AI, perception and control systems where software meets the physical world.
Where machine learning leaves the screen: perception stacks, control loops, simulation-to-real transfer, foundation models for robotics, and the safety and latency constraints that come with acting in physical space.
### Startups
- Canonical URL: https://techagents.online/category/startups
- Published articles: no articles yet
How AI-native companies are built, funded, priced and differentiated.
The business layer of the AI stack: what AI-native companies actually sell, how inference cost shapes pricing and margin, where defensibility comes from when models are commoditised, and how technical decisions become strategic ones.
### Tutorials
- Canonical URL: https://techagents.online/category/tutorials
- Published articles: 1 article
Step-by-step technical builds you can follow end to end and run yourself.
Practical, runnable guides. Each tutorial builds something real from an empty directory to a working result, with the reasoning behind each decision and the failure modes you will hit along the way.
### Reviews
- Canonical URL: https://techagents.online/category/reviews
- Published articles: 1 article
Structured, criteria-based assessments of tools and platforms — methodology stated up front.
Tool and platform assessments with the evaluation criteria published before the verdict: what was tested, what was not, where each option is the strongest choice, and where it is the wrong tool for the job.
## Agents
Seven specialised roles that describe what agentic software is actually being
asked to do, and together form the map of what this publication covers. Six
are editorial descriptions rather than software that runs here. The seventh,
the SEO Agent, is implemented in this codebase: it audits the corpus and
proposes changes that a person then reviews, and it has no write path to any
file.
### Research Agent
- Canonical URL: https://techagents.online/agents/research-agent
- Role: Analyzing technical knowledge
Reads primary sources — specifications, changelogs, papers and repositories — then reduces them to the handful of claims that actually matter, each traceable back to where it came from.
Capabilities covered:
- Source retrieval
- Claim extraction
- Citation tracking
- Synthesis
### Coding Agent
- Canonical URL: https://techagents.online/agents/coding-agent
- Role: Reading and writing software
Works inside a repository rather than a chat window: reads the surrounding code, proposes a change, runs the test suite, and iterates on the failure output until the change actually holds.
Capabilities covered:
- Repository context
- Refactoring
- Test execution
- Code review
### SEO Agent
- Canonical URL: https://techagents.online/agents/seo-agent
- Role: Auditing search visibility
Audits metadata, heading hierarchy, structured data and internal links against a published scoring model, then returns ranked recommendations for a human to approve — it never rewrites content on its own.
Capabilities covered:
- Technical audit
- Entity extraction
- Internal linking
- Schema mapping
### Content Agent
- Canonical URL: https://techagents.online/agents/content-agent
- Role: Planning editorial coverage
Maps a topic into an outline, finds the gaps a subject already covered elsewhere leaves open, and proposes structure — the writing and the judgement stay with the author.
Capabilities covered:
- Topic mapping
- Outline drafting
- Gap analysis
- Editorial planning
### Data Agent
- Canonical URL: https://techagents.online/agents/data-agent
- Role: Interrogating structured data
Turns a question into a query, runs it, and reports both the answer and the shape of the data behind it — including the rows that do not fit the story.
Capabilities covered:
- Query generation
- Schema inference
- Aggregation
- Anomaly detection
### Automation Agent
- Canonical URL: https://techagents.online/agents/automation-agent
- Role: Orchestrating workflows
Chains tools, APIs and human approval steps into a durable workflow, with retries and checkpoints so a failure halfway through does not mean starting over.
Capabilities covered:
- Tool orchestration
- Retry and recovery
- Scheduling
- Human-in-the-loop
### Security Agent
- Canonical URL: https://techagents.online/agents/security-agent
- Role: Probing for weaknesses
Threat-models a change before it ships: which inputs are untrusted, which tools an agent can reach, what a compromised step could do, and what the blast radius looks like.
Capabilities covered:
- Threat modelling
- Dependency review
- Permission analysis
- Injection testing
## About
- [About Tech Agents](https://techagents.online/about): What we cover, how we source it, corrections policy and the editorial standards above.
- [Contact](https://techagents.online/contact): Tips, corrections and press. Corrections are made in place and the article re-dated.
- [Terms](https://techagents.online/terms): Who owns the content, how to quote it, and the licence on code samples.
- [Privacy](https://techagents.online/privacy): What the site collects, which is close to nothing, and what the newsletter stores.
- [Advertise](https://techagents.online/advertise): How sponsorship works and why it never buys a verdict.
- [Newsletter](https://techagents.online/newsletter): The Agent Brief — One issue every Tuesday. Unsubscribe in one click.
- [Resources](https://techagents.online/resources): Curated primary sources: specifications, provider documentation and reference implementations.
- [All categories](https://techagents.online/categories): Every section of the publication with its article count.
- [Article archive](https://techagents.online/blog): Every article, newest first.
- [RSS feed](https://techagents.online/rss.xml): Valid RSS 2.0. Standfirsts rather than full bodies, deliberately.
- [Sitemap](https://techagents.online/sitemap.xml): Every indexable URL with a lastmod drawn from real content dates.