Research Pass 2 — Open Questions Closed
As of: 2026-06-04. Closes the seven items left open after pass 1 (A1, A2, A3, D1, D2, D4, D6). Each finding is anchored to primary or near-primary sources; treat the conclusions as directional and re-verify before locking architectural decisions.
Companion to PENDING.md and RESEARCH-PICKS.md.
A1 — Closed-tool architecture clues (Decagon / Sierra / Moveworks / Cresta / Aisera)
Decagon — Agent Operating Procedures (AOPs): structured procedures in plain English that compile to API calls + knowledge-base lookups + escalation criteria. A built-in Routing module decides AI-vs-human per inquiry. Compliance posture: SOC 2, ISO 27001, GDPR, HIPAA. Watchtower does real-time QA + guardrails. Strengths: knowledge-base-heavy SaaS support with an audit-trail-friendly behavior contract.
Sierra — Constellation architecture routes across multiple LLM providers with model-level guardrails to reduce hallucination. Voice-first deployment is the headline. Ghostwriter (Mar 2026) builds production agents from SOPs, call transcripts, whiteboard sketches, or plain-English descriptions.
Sources:
Decision implication for TENET:
- Both lean on multi-model routing under one orchestrator + structured procedure DSL. TENET’s
@tenet/router(C3) confirms multi-model routing as table stakes. The procedure-DSL idea is interesting but not blocking — we get most of it from prompt-templated state-machine nodes plus the constitutional-principle registry. - Audit-trail-friendly behavior is a first-class need — our OTel
agent.*attributes already cover this. - Routing-as-explicit-decision: our adaptive router (cheap-vs-flagship) is one form; an AI-vs-human escalation path is a separate concern we should make explicit in C10 (community-bot) HITL hooks.
A2 — Vector-store cost-perf at 100M+ vectors
Synthesized from a 12-DB benchmark on 100M × 768-dim vectors (identical hardware):
| DB | 100M-vector cost / mo | Notable |
|---|---|---|
| Turbopuffer | $800 | Object-storage-native; cold-query 300-800ms; lacks hybrid search |
| Qdrant Cloud | $5,000 | Lowest latency — p50 4ms, p99 25ms among purpose-built |
| Weaviate | $3,500 | Hybrid search built in |
| Pinecone | $7,000 | Mature; high cost at scale |
| pgvector | n/a | Buckles above 50M on a single node — index builds > 2 hours, p95 > 200ms without careful tuning |
Sources:
- Vector Database Benchmark 2026 — Salt Techno
- pgvector vs Qdrant vs Weaviate at 100M vectors — Elestio Blog
- pgvector vs Pinecone vs Turbopuffer vs Qdrant 2026 — daily.dev summary
Decision implication for TENET:
- pgvector remains the default for phase 1 (single-tenant, <50M vectors). It is NOT appropriate for enterprise multi-tenant > 50M.
- Phase 2 default: Qdrant (purpose-built, lowest latency, mature hybrid search).
- Cost-sensitive multi-tenant deployments: Turbopuffer adapter as a phase-3 option for archive-tier corpora where 300-800ms cold-query latency is acceptable.
- The
@tenet/retrievalVectorStoreinterface is already designed to swap; we ship pgvector + Qdrant adapters and document the >50M cliff in the per-package READMEs.
A3 — MCP enterprise adoption signal
Production adoption is real and material:
- Anthropic (Mar 2026): 10,000+ active public MCP servers; 97M monthly SDK downloads (Python + TypeScript).
- Registry growth: 7.8× year-over-year; 1,200 servers (Q1 2025) → 9,400+ (April 2026); month-over-month growth +18%.
- Production deployments at named Fortune-500s: EY, JPMorgan, Salesforce, Reddit, Amazon, Block, Bloomberg orchestrate MCP in production.
- Workato Enterprise MCP: “trusted by half of the Fortune 500.”
- Stacklok 2026 software report: 41% of surveyed software orgs in limited or broad production with MCP servers.
Sources:
- 2026 MCP Roadmap — Model Context Protocol Blog
- MCP Adoption Statistics 2026 — Digital Applied
- Workato Production MCP Servers — Business Wire (Feb 2026)
Decision implication for TENET:
- “MCP-native” stays a launch-grade differentiator, not a phase-2 nice-to-have. The market is large enough that operators expect it.
- Top enterprise blocker is security: audit trails, SSO-integrated auth, gateway behavior, configuration portability. Our
@tenet/corebrand-typedSecret<T>+PathHandle+ filter-key validation address two of those; we still owe an MCP gateway pattern (phase 3). - Worth adding a
connectors/mcp/package to the roadmap that wraps the MCP TypeScript SDK behind ourToolUseinterface.
D1 — Claude Agent SDK + Opus 4.8 + Haiku 4.5 current surface
Opus 4.8 (released 2026-05-28) — confirmed picks in BENCHMARKS.md remain accurate. Key SDK-relevant updates:
- 1M-token context by default on Claude API, Bedrock, Vertex AI; 128k max output tokens.
- Prompt cache minimum lowered from previous tier to 1,024 tokens — many prompts that couldn’t cache on 4.7 now cache for free. $0.50/M input tokens for cache reads (90% discount).
- Mid-conversation system messages — system entries accepted inside the messages array; lets you update instructions mid-task without breaking the prompt cache or routing through a user turn.
- Dynamic workflows — Opus 4.8 plans a task and runs hundreds of parallel subagents in a single session. Anthropic positions this as the path to codebase-scale migrations.
- Effort control — defaults to
high; same token spend as 4.7’s default with better quality. - Adaptive thinking — only reasons when needed; cuts wasted thinking tokens on bimodal workloads.
Sources:
- Introducing Claude Opus 4.8 — Anthropic
- What’s new in Claude Opus 4.8 — Claude API Docs
- Claude Opus 4.8 on Amazon Bedrock
Decision implication for TENET:
- Lower cache threshold changes our cost math — many prompts that were too short to cache now cache. Update BENCHMARKS.md cost-per-resolution model accordingly when we land the cost meter integration.
- Mid-conversation system messages + adaptive thinking suggest our
@tenet/policycomposer should emit a delta system message on intent change instead of rebuilding the whole prompt. Track as a phase-2 polish. - Dynamic workflows / 100s of subagents map cleanly to our
@tenet/routerspeculative-agent pattern (C3). We can lean into Anthropic’s primitives for the speculative path.
D2 — MCP spec changelog since 2026-06-03
Release candidate (2026-06-04 status): the 2026-07-28 spec release is the largest revision since launch. The RC is live now.
Key changes:
- Stateless core — scales on ordinary HTTP infrastructure (no special transport).
- Streamable HTTP requires
Mcp-Method+Mcp-Nameheaders (SEP-2243) — load balancers / gateways / rate-limiters can now route on the operation without inspecting the body. ttlMs+cacheScope(SEP-2549) onlistandresource readresults — HTTP-Cache-Control-modeled freshness signals. Clients can sharetools/listresponses across users when safe.- OAuth alignment: clients must validate the
issparameter on authorization responses (RFC 9207, SEP-2468) — mitigates mix-up attacks in MCP’s many-server pattern. - OpenID Connect
application_typedeclared during Dynamic Client Registration (SEP-837) — fixes the desktop/CLI client → “web” defaulting bug. - Extensions: server-rendered UIs (MCP Apps), long-running work (Tasks).
Sources:
Decision implication for TENET:
- Pin our MCP integration to a specific spec version (probably 2026-07-28 when it ships) and document it in CHANGELOG. Pre-July deployments should target the RC.
- Take a hard dependency on
Mcp-Method+Mcp-Nameheader routing in our rate-limit scheduler — these turn MCP tool calls into platform-routable traffic at the@tenet/rate-limitlayer. - The
issvalidation andapplication_typerules apply to any MCP-OAuth flow we ship — bake them into the futureconnectors/mcppackage.
D4 — OSS framework refresh (Letta / Mastra / Pydantic-AI / Inkeep / OpenAI Agents SDK)
| Framework | 2026 positioning | Notable |
|---|---|---|
| Mastra | De facto TypeScript choice | 19k+ stars; 300k+ weekly downloads; workflows + HITL primitives + Next.js integration |
| Pydantic AI | Best Python-first for structured outputs / validation / DI | Clean app architecture |
| OpenAI Agents SDK (TS) | Next-best TS choice after Mastra | |
| Letta | Niche — persistent-memory assistants | |
| Inkeep SDK | TS extension to no-code platform; MCP + A2A protocols; deep customization | |
| LangGraph | Still strongest mindshare; complex flows | We design out the ecosystem’s CVE-class mistake categories by construction (see SECURITY.md); no advisory attributed here to any named project |
| CrewAI | Multi-agent role-based; simpler than LangGraph | |
| Google ADK | Multi-language flagship (Python + TS + Java + Go) |
Sources:
- Best OSS AI Agent Frameworks 2026 — AI Haven
- Speakeasy: LangChain vs LangGraph vs CrewAI vs PydanticAI vs Mastra vs Vercel AI SDK
- AI Agent Framework Tier List 2026 — paperclipped
Decision implication for TENET:
- Mastra is the direct competitor for the TypeScript agent niche. Our differentiators (verification-by-default, source-grounded URL allow-list, hardened-by-construction security stance, all-surfaces-one-config, OTel GenAI native) remain meaningful — Mastra leans on workflow + HITL polish, not on hallucination defense.
- The Inkeep precedent (TS SDK + MCP + A2A) suggests we should hint at A2A protocol support in the roadmap if we want enterprise integration parity.
- We should explicitly compete with Mastra in the README (it’s not in our current comparison table). Add it in a later commit.
D6 — Reranker head-to-head (Cohere / Voyage / BGE / Jina)
Public leaderboard snapshot (ELO + nDCG@10):
| Reranker | Top metric | License |
|---|---|---|
| Zerank 2 | 1638 ELO (top) | hosted |
| Cohere Rerank v4.0 Pro | 1629 ELO | hosted |
| Voyage Rerank 2.5 | Fastest (~595ms p50) + quality | hosted |
| Cohere Rerank 3.5 | ~603ms p50; less favored by LLM judge | hosted |
| Jina Reranker v3 | 61.94 nDCG@10 BEIR; 131k ctx; listwise (64 docs/pass) | Apache-2.0 |
| BGE-Reranker-v2-M3 | Lightweight, multilingual, fast | Apache-2.0 |
| Qwen3-Reranker-4B | 69.76 MTEB-R / 75.94 CMTEB-R | Apache-2.0 |
Sources:
- Ultimate Reranker Guide 2026 — ZeroEntropy
- Reranker Leaderboard — Agentset
- Top 5 Reranking Models — MLM
Decision implication for TENET:
Revised default ordering (replaces tentative pick in RESEARCH-PICKS.md):
- Voyage Rerank 2.5 — primary hosted: fastest + competitive quality.
- Cohere Rerank v4.0 Pro — secondary hosted: 1629 ELO, broader provider footprint.
- Qwen3-Reranker-4B — primary self-host: strongest open-weights as of 2026-06-04, Apache-2.0.
- Jina Reranker v3 — secondary self-host: listwise + huge context (specialty long-doc workloads).
- BGE-Reranker-v2-M3 — practical baseline: small, multilingual, easy ops.
Our Reranker interface in @tenet/retrieval is unchanged — each is a 4-line adapter. Update RESEARCH-PICKS.md reranker section when this ships.
Net deltas vs prior research-picks
- Reranker primary changed: Cohere 3.5 → Voyage Rerank 2.5 (faster + better quality at MTEB).
- Self-host reranker primary changed: BGE-Reranker-v2-M3 → Qwen3-Reranker-4B (stronger benchmarks, same Apache-2.0).
- Vector-store phase-2 default: Qdrant confirmed (lowest latency at 100M).
- Vector-store budget-tier: Turbopuffer added as a phase-3 archive-tier adapter target.
- MCP: launch-grade differentiator confirmed, not deferred. Pin 2026-07-28 spec.
- Direct competitor: Mastra. Worth explicit README mention.
- Opus 4.8 cache threshold: 1024 tokens — update cost model.