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.