Skip to content

Tech radar — September 2026

Personalised for: Python-first agentic engineering, Azure/Foundry + cloud-agnostic, Java 25 / Spring AI 2.0 alongside, Staff/AI-architect path. See how the radar is maintained. All statuses as of 2026-09-25 unless stated. Version numbers were read from PyPI/official docs on that date.

Fast-moving areas

Agent frameworks, MCP and A2A change monthly. Treat Trial entries as "learn the concepts and keep code portable", not "marry the API".

Overview by ring

flowchart LR
    subgraph Adopt
      A1[uv · Pydantic v2 · FastAPI]
      A2[LangGraph 1.x · MCP · AGENTS.md]
      A3[Hybrid search + rerank · pgvector]
      A4[Error-analysis-first evals · Langfuse]
      A5[Prompt caching · Structured outputs]
    end
    subgraph Trial
      T1[Pydantic AI · DSPy/GEPA]
      T2[A2A v1 · AG-UI]
      T3[Claude Agent SDK · OpenAI Agents SDK]
      T4[MS Agent Framework · Google ADK · Spring AI 2.0]
    end
    subgraph Assess
      S1[GraphRAG/LazyGraphRAG · Letta]
      S2[MCP 2026-07-28 · Bedrock AgentCore]
      S3[GRPO fine-tuning · Zensical]
    end
    subgraph Hold
      H1[AutoGen · Semantic Kernel new work]
      H2[Assistants API · SSE MCP transport]
      H3[Naive agentic RAG · unaligned LLM judge]
    end
    Adopt --> Trial --> Assess --> Hold

Quadrant 1 — Frameworks & libraries

Blip Ring Rationale As of Link
Pydantic v2 Adopt Validation/typing backbone of FastAPI, Pydantic AI and structured outputs; 2.13.x current. 2026-09-25 docs
FastAPI Adopt Default Python API layer for agent backends; pairs with Pydantic v2 and async streaming. 2026-09-25 docs
LangGraph 1.x Adopt Durable, checkpointed graph orchestration; 1.0 GA Oct 2025, 1.2.x current. Best fit for stateful/human-in-the-loop agents. 2026-09-25 docs
Pydantic AI Trial Type-safe agents, dependency injection, Logfire/OTel, A2A and AG-UI support; PyPI shows 2.x (V2 line). Fits your Pydantic-first stack; verify API stability before committing. 2026-09-25 docs
DSPy 3.x / GEPA Trial Programmatic prompt optimisation; dspy.GEPA reflective optimizer (ICLR 2026 Oral); 3.4.0 current. Best used where you have a metric and a dev set. 2026-09-25 dspy.ai
Claude Agent SDK Trial Agent loop, tools, MCP, sub-agents and hooks as a library (formerly Claude Code SDK). Good for coding/ops agents. 2026-09-25 docs
OpenAI Agents SDK Trial Lightweight handoffs/guardrails/tracing; sandbox agents added Apr 2026 (beta). Provider-agnostic enough to learn from. 2026-09-25 docs
Microsoft Agent Framework 1.0 Trial GA 2026-04-03; merges AutoGen and Semantic Kernel concepts; relevant for Foundry/Azure work. 2026-09-25 docs
Google ADK 2.0 Trial Graph-based workflow runtime in 2.x; useful as a comparison and for Vertex/Kaggle content. 2026-09-25 adk.dev
Spring AI 2.0 Trial GA 2026-06-12 on Boot 4.x/Framework 7; MCP annotations, Streamable HTTP. Your Java-track default. 2026-09-25 release post
LiteLLM Trial Provider gateway/proxy for multi-model routing, budgets and fallbacks; 1.10x current. Pin versions and review security advisories. 2026-09-25 docs
Mem0 Trial Agent memory layer (v3 Apr 2026; 2.x on PyPI packaging). Evaluate against simple summary/vector memory first. 2026-09-25 docs
Ragas / DeepEval / promptfoo Trial Eval harnesses for RAG and red-teaming; promptfoo stays OSS after OpenAI acquisition announcement (2026-03-09). Use them after manual error analysis. 2026-09-25 promptfoo OWASP agentic preset
Letta Assess Stateful agents with self-managed memory (MemGPT lineage); interesting model, thinner production evidence. 2026-09-25 docs
Graphiti (Zep) Assess Temporal knowledge-graph memory; assess for entity-heavy domains. 2026-09-25 GitHub
CrewAI Assess Role-based multi-agent; popular but the "Don't build multi-agents" caution applies; know the concepts. 2026-09-25 site
AutoGen Hold Placed in maintenance mode as Microsoft consolidates on Agent Framework; read for history, do not start new work. 2026-09-25 GitHub
Semantic Kernel (new work) Hold Superseded by Microsoft Agent Framework for new builds; keep only for existing codebases. 2026-09-25 GitHub
OpenAI Assistants API Hold Retired 2026-08-26; migrate to Responses API / Agents SDK. 2026-09-25 migration guide

Quadrant 2 — Protocols & standards

Blip Ring Rationale As of Link
MCP (2025-11-25 spec) Adopt De facto tool/context protocol, stewarded by the Linux Foundation's Agentic AI Foundation since Dec 2025; build one server and one client. 2026-09-25 spec
AGENTS.md Adopt Cross-tool repo instruction file; already the operating protocol of this repo. 2026-09-25 agents.md
A2A v1.0 Trial Agent-to-agent protocol (v1 announced 2026-03-12): signed Agent Cards, JSON-RPC/gRPC/REST. Try one cross-framework call; MCP is for tools, A2A for peers. 2026-09-25 a2a-protocol.org
AG-UI Trial Event protocol between agents and UIs (streaming, state sync, human input); supported by several frameworks. 2026-09-25 docs
OpenTelemetry GenAI semantic conventions Trial Standard span/metric names for LLM calls; still "Development" status, now in a dedicated repo. Use them but expect attribute renames. 2026-09-25 repo
OWASP Top 10 for Agentic Applications 2026 Trial Threat model vocabulary (ASI01–ASI10) for agent design reviews; pair with the LLM Top 10. 2026-09-25 OWASP
MCP 2026-07-28 revision Assess Stateless core (no initialize, no Mcp-Session-Id), server/discover, tasks as an extension, Multi Round-Trip Requests, Sampling/Roots/Logging deprecated, DCR deprecated in favour of Client ID Metadata Documents. Read the changelog; SDK support is still catching up. 2026-09-25 changelog
MCP HTTP+SSE transport Hold Deprecated since 2025-03-26 and formally reclassified as Deprecated; use Streamable HTTP. 2026-09-25 spec

Quadrant 3 — Platforms & infrastructure

Blip Ring Rationale As of Link
uv (+ ruff) Adopt One tool for Python versions, envs, locking and running; Astral tools remain OSS after the OpenAI acquisition announcement (2026-03-19). 2026-09-25 uv
Python 3.14 Adopt Current release; free-threaded build officially supported (PEP 779). Use 3.14 for new services. 2026-09-25 free-threading guide
JDK 25 (LTS) Adopt Current LTS: Scoped Values final, compact object headers; structured concurrency still preview. 2026-09-25 OpenJDK 25
pgvector Adopt Default vector store when you already run Postgres; enough for most enterprise RAG scale. 2026-09-25 GitHub
Langfuse Adopt OSS tracing/evals/prompt management, self-hostable; acquired by ClickHouse in Jan 2026 but stays OSS (4.x). 2026-09-25 docs
Ollama Adopt Local model serving for dev and offline labs. 2026-09-25 ollama.com
Microsoft Foundry (Agent Service) Trial Renamed from Azure AI Foundry; Agent Service runs on the Responses API. Use for the Azure leg of the capstone. 2026-09-25 docs
vLLM Trial Open-source inference standard (PagedAttention, continuous batching); run once for the serving lab. 2026-09-25 docs
SGLang Trial High-throughput serving with RadixAttention/structured generation; compare with vLLM on your workload. 2026-09-25 docs
Arize Phoenix Trial OSS tracing/eval UI on OTel; an alternative to Langfuse. 2026-09-25 docs
Qdrant Trial Dedicated vector DB with strong filtering/hybrid features when pgvector isn't enough. 2026-09-25 docs
AWS Bedrock AgentCore Assess Managed runtime, gateway, memory, identity, policy and evaluations (Policy/Evaluations GA Mar 2026; new Runtime GA Sep 2026). Assess for AWS-centric employers; keep your agent code portable. 2026-09-25 AWS
Zensical Assess Successor to MkDocs Material from the same team; Material is in maintenance mode with critical fixes announced until May 2027; Zensical is pre-0.1 (0.0.x on PyPI) and reads mkdocs.yml. Track it; migrate this site only after a stable line. 2026-09-25 announcement · upcoming changes

Quadrant 4 — Techniques

Blip Ring Rationale As of Link
Hybrid search + reranking Adopt BM25 + dense + metadata filters, then cross-encoder rerank; the default RAG retrieval baseline. 2026-09-25 Pinecone rerankers
Error-analysis-first evals Adopt Read traces, code failure modes, then build binary graders; tools come second. 2026-09-25 Evals FAQ
Prompt caching Adopt Large cost/latency win for stable prefixes; design prompts and tool order for cache hits. 2026-09-25 Claude docs
Structured outputs Adopt Schema-constrained generation with Pydantic models; removes a class of parsing failures. 2026-09-25 OpenAI docs
Context engineering Adopt Treat context as a budget: compaction, retrieval on demand, sub-agents, notes. 2026-09-25 Anthropic
Workflows before agents Adopt Prefer deterministic workflows (chain/route/parallelise) and add autonomy only where needed. 2026-09-25 Building effective agents
Threat-modelling with the lethal trifecta Adopt Private data + untrusted input + exfiltration path; design reviews should remove one leg. 2026-09-25 Simon Willison
Prompt/program optimisation (GEPA) Trial Reflective evolution of prompts using traces; cheap alternative to RL when you have a metric. 2026-09-25 GEPA paper
Contextual retrieval Trial Prepend chunk-level context before embedding/BM25; measurable retrieval gains. 2026-09-25 Anthropic
Code execution with MCP tools Trial Let the model write code against tool APIs instead of loading every schema; cuts tokens. 2026-09-25 Anthropic
Free-threaded Python (3.14t) Trial Test CPU-bound and thread-heavy code; check that your dependencies support it before production. 2026-09-25 py-free-threading
LazyGraphRAG / GraphRAG Assess Helps corpus-level questions; costly indexing (lazy variant reduces it). Only where vector search demonstrably fails. 2026-09-25 Microsoft Research
GRPO / RLVR fine-tuning Assess RL with verifiable rewards via TRL/Unsloth; try one small run in Phase 5; rarely needed before prompting/RAG/DSPy. 2026-09-25 Unsloth RL guide · TRL
Agentic RAG everywhere (naive) Hold Agent-loop retrieval adds cost/latency and is not consistently better than tuned classic pipelines. 2026-09-25 arXiv 2601.07711
LLM-as-judge without human alignment Hold Unvalidated judges drift; require agreement checks against labelled examples first. 2026-09-25 Judge guide
Multi-agent by default Hold Coordination overhead and context conflicts; start with one agent and tools. 2026-09-25 Cognition

Counts (2026-09-25)

Adopt 18 · Trial 23 · Assess 8 · Hold 7 = 56 blips.