{"site":"ChangeGamer","url":"https://changegamer.ai","note":"Every Markdown comparison table in the free corpus, extracted as structured rows. Source of truth is each resource body; re-fetch the resource for context around a table.","resource_count":51,"table_count":59,"resources":[{"slug":"llms-txt-explained","title":"The llms.txt Convention Explained","url":"https://changegamer.ai/resources/llms-txt-explained","markdown":"https://changegamer.ai/resources/llms-txt-explained.md","table_count":1,"tables":[{"columns":["File","Purpose"],"rows":[{"File":"/llms.txt","Purpose":"Compact index — H1, summary, and curated link lists only. Fetch first."},{"File":"/llms-full.txt","Purpose":"Full corpus — all page content concatenated into one file. Fetch when you need the whole site in one round trip."}]}]},{"slug":"agentic-security-checklist","title":"Agentic Security Checklist","url":"https://changegamer.ai/resources/agentic-security-checklist","markdown":"https://changegamer.ai/resources/agentic-security-checklist.md","table_count":1,"tables":[{"columns":["Threat surface","Highest-impact control"],"rows":[{"Threat surface":"Prompt injection","Highest-impact control":"Treat all external content as untrusted data, not instructions"},{"Threat surface":"Tool/function-call abuse","Highest-impact control":"Least-privilege toolset; confirm before destructive calls"},{"Threat surface":"Excessive agency","Highest-impact control":"Scope permissions to the minimum required for each task"},{"Threat surface":"Secrets & credentials","Highest-impact control":"Never pass secrets through the context window"},{"Threat surface":"MCP / supply chain","Highest-impact control":"Pin versions; audit tool descriptions before connecting"},{"Threat surface":"Output / action sandboxing","Highest-impact control":"Human-in-the-loop gate on irreversible actions"},{"Threat surface":"Memory & context poisoning","Highest-impact control":"Validate and sanitize retrieved context before injection"},{"Threat surface":"Data exfiltration","Highest-impact control":"Network egress allowlist; outbound content inspection"},{"Threat surface":"Auth & OAuth scopes","Highest-impact control":"Request only the OAuth scopes the agent needs per task"},{"Threat surface":"Logging & auditability","Highest-impact control":"Log every tool call, input, and output with a trace ID"}]}]},{"slug":"mcp-vs-a2a","title":"MCP vs A2A: Two Protocols, Two Roles","url":"https://changegamer.ai/resources/mcp-vs-a2a","markdown":"https://changegamer.ai/resources/mcp-vs-a2a.md","table_count":1,"tables":[{"columns":["Dimension","MCP","A2A"],"rows":[{"Dimension":"Purpose","MCP":"Agent ↔ tool / data / context","A2A":"Agent ↔ agent task delegation"},{"Dimension":"Topology","MCP":"Client (host/agent) → server (tool)","A2A":"Peer: client agent → server agent"},{"Dimension":"Transport","MCP":"stdio (local); Streamable HTTP (remote); HTTP+SSE (deprecated)","A2A":"JSON-RPC, gRPC, or HTTP+JSON/REST — three functionally-equivalent bindings as of v1.0 (spec §§9-11)"},{"Dimension":"Message format","MCP":"JSON-RPC 2.0","A2A":"JSON-RPC 2.0"},{"Dimension":"Discovery","MCP":"Registry at registry.modelcontextprotocol.io; client-vendor marketplaces","A2A":"Agent Card at /.well-known/agent-card.json (self-hosted)"},{"Dimension":"Auth","MCP":"OAuth 2.1 + PKCE (mandatory for HTTP); stdio uses env credentials","A2A":"OpenAPI 3.x Security Schemes declared in Agent Card"},{"Dimension":"Governance","MCP":"AAIF (Linux Foundation directed fund) — donated Dec 2025; co-founded by Anthropic, Block, OpenAI","A2A":"AAIF — hosted project since Aug 2026; originated by Google, prior Linux Foundation donation Jun 2025"},{"Dimension":"Stable version / date","MCP":"2025-11-25; 2026-07-28 (stateless architecture — shipped final, on schedule)","A2A":"v1.0 — released March 2026 (current v1.0.x; prior: v0.3)"},{"Dimension":"License","MCP":"MIT (spec + SDK)","A2A":"Apache 2.0"},{"Dimension":"Adoption","MCP":"Thousands of servers in the official registry; backed by AAIF members","A2A":"150+ organizations; adopters include AWS, Azure, Salesforce, SAP, ServiceNow"}]}]},{"slug":"ai-crawler-policy","title":"AI Crawler Policy: robots.txt and User-Agents","url":"https://changegamer.ai/resources/ai-crawler-policy","markdown":"https://changegamer.ai/resources/ai-crawler-policy.md","table_count":1,"tables":[{"columns":["Token","Vendor","Purpose","robots.txt honoured?"],"rows":[{"Token":"GPTBot","Vendor":"OpenAI","Purpose":"Training data collection for GPT models","robots.txt honoured?":"Yes"},{"Token":"OAI-SearchBot","Vendor":"OpenAI","Purpose":"Indexing for ChatGPT Search (not training)","robots.txt honoured?":"Yes"},{"Token":"ChatGPT-User","Vendor":"OpenAI","Purpose":"Live user-triggered page fetch, incl. Custom GPT / GPT Actions requests","robots.txt honoured?":"No — a Dec 2025 OpenAI doc update lists only GPTBot/OAI-SearchBot as robots.txt-compliant"},{"Token":"ClaudeBot","Vendor":"Anthropic","Purpose":"Training data collection for Claude models","robots.txt honoured?":"Yes"},{"Token":"Claude-SearchBot","Vendor":"Anthropic","Purpose":"Indexing for Claude search results","robots.txt honoured?":"Yes"},{"Token":"Claude-User","Vendor":"Anthropic","Purpose":"Live user-triggered page fetch","robots.txt honoured?":"Yes (Anthropic states all three honour it)"},{"Token":"Google-Extended","Vendor":"Google","Purpose":"Training opt-out token for Gemini/Vertex AI — NOT a separate crawler; Googlebot fetches, this token controls downstream use","robots.txt honoured?":"Yes (training opt-out only)"},{"Token":"Googlebot","Vendor":"Google","Purpose":"Google Search indexing; also executes Google-Extended policy","robots.txt honoured?":"Yes"},{"Token":"Google-CloudVertexBot","Vendor":"Google","Purpose":"Crawls at site-owner request during Vertex AI Agent development","robots.txt honoured?":"Yes"},{"Token":"PerplexityBot","Vendor":"Perplexity","Purpose":"Indexing for Perplexity search answers","robots.txt honoured?":"Yes"},{"Token":"Perplexity-User","Vendor":"Perplexity","Purpose":"Live user-triggered page fetch","robots.txt honoured?":"No — ignores robots.txt by design"},{"Token":"DuckAssistBot","Vendor":"DuckDuckGo","Purpose":"Live user-triggered fetch for DuckAssist AI answers (RAG); not used for training","robots.txt honoured?":"Yes — Disallow opt-out takes effect ~72h later"},{"Token":"Amazonbot","Vendor":"Amazon","Purpose":"Crawling for Amazon product/AI improvement","robots.txt honoured?":"Yes"},{"Token":"Applebot","Vendor":"Apple","Purpose":"Apple Search (Spotlight, Siri) indexing","robots.txt honoured?":"Yes"},{"Token":"Applebot-Extended","Vendor":"Apple","Purpose":"Training opt-out token for Apple Intelligence / foundation models — NOT a separate crawler; Applebot fetches, this token controls training use","robots.txt honoured?":"Yes (training opt-out only)"},{"Token":"Bytespider","Vendor":"ByteDance","Purpose":"AI training data collection (Doubao LLM)","robots.txt honoured?":"Disputed — documented violations"},{"Token":"CCBot","Vendor":"Common Crawl","Purpose":"Open web archive used to train most major LLMs","robots.txt honoured?":"Yes"},{"Token":"Meta-ExternalAgent","Vendor":"Meta","Purpose":"Training data for Llama models and Meta AI products (launched July 2024)","robots.txt honoured?":"Stated yes; compliance disputed"},{"Token":"Meta-ExternalFetcher","Vendor":"Meta","Purpose":"Live user-triggered fetch for Meta AI assistant answers (parallel to ChatGPT-User/Claude-User); not used for training","robots.txt honoured?":"Unclear — no independent robots.txt-compliance confirmation found"},{"Token":"MistralAI-User","Vendor":"Mistral","Purpose":"User-triggered fetch in Le Chat; not used for training","robots.txt honoured?":"Yes"}]}]},{"slug":"open-weight-models-for-agents","title":"Open-Weight Models for Agents","url":"https://changegamer.ai/resources/open-weight-models-for-agents","markdown":"https://changegamer.ai/resources/open-weight-models-for-agents.md","table_count":1,"tables":[{"columns":["Family","Latest open-weight release","License","Native tool/function-calling","Notable for agents"],"rows":[{"Family":"Meta Llama 4","Latest open-weight release":"Llama 4 Maverick (17B active / 400B total MoE, Apr 2025)","License":"Llama 4 Community License (not OSI open; MAU cap >700M requires Meta approval; commercial use otherwise permitted)","Native tool/function-calling":"Yes — natively optimized for tool-calling and agentic use","Notable for agents":"Scout (10M-token context) and Maverick (1M) both remain available on Hugging Face under the Llama 4 Community License; Maverick is the stronger general/agentic pick. Multimodal. Behemoth was previewed but never open-released."},{"Family":"Mistral","Latest open-weight release":"Mistral Small 4 (119B total / 6.5B active MoE, Mar 2026); Mistral Medium 3.5 (128B dense, Apr 2026); Mistral Large 3 (675B total / 41B active MoE, Dec 2025)","License":"Apache 2.0 (Small 4, Large 3); Modified MIT with revenue cap (Medium 3.5)","Native tool/function-calling":"Yes — function calling and structured output supported across all three; Small 4 also unifies reasoning and vision","Notable for agents":"Small 4 (256K ctx) unifies Magistral reasoning + Pixtral vision + Devstral coding in one model. Medium 3.5 (256K ctx) is a frontier-class open coding/agentic model. Large 3 (256K ctx) is the largest open-weight Mistral. Mistral Small 3.2 deprecated April 30, 2026."},{"Family":"Alibaba Qwen","Latest open-weight release":"Qwen 3.6-27B / 3.6-35B-A3B (Apr 2026); Qwen3 base series (Apr 2025)","License":"Apache 2.0","Native tool/function-calling":"Yes — native tool-calling and MCP support via Qwen-Agent; all sizes","Notable for agents":"Dense and MoE variants from 0.6B to 235B. Up to 262K context (extensible to 1M via YaRN). Hybrid thinking/non-thinking mode. Qwen 3.7 is closed-weight API-only as of Jun 2026."},{"Family":"DeepSeek","Latest open-weight release":"DeepSeek V4-Pro (1.6T total / 49B active MoE) and V4-Flash (284B total / 13B active), both Apr 2026 preview","License":"MIT","Native tool/function-calling":"Yes — V4 natively supports function calling, JSON output, tool calls, and thinking / non-thinking modes","Notable for agents":"1M context window (default across both V4 variants). V4-Pro: frontier-class agentic coding. V4-Flash: fast/cheap inference. Weights on Hugging Face (deepseek-ai). V4 labeled preview; stable release expected later 2026."},{"Family":"Google Gemma 4","Latest open-weight release":"Gemma 4: E2B, E4B, 26B-A4B, 31B (Mar–Apr 2026); Gemma 4 12B Unified (Jun 2026, encoder-free, native audio)","License":"Apache 2.0 (first Gemma release under true Apache 2.0)","Native tool/function-calling":"Yes — native function-calling built into Gemma 4; FunctionGemma 270M for edge/on-device","Notable for agents":"128K context (E2B/E4B); 256K context (12B+, 26B, 31B). Gemma 4 12B Unified (Jun 3 2026) adds native audio + video via encoder-free architecture; runs on 16 GB RAM. Multimodal across the family."},{"Family":"Microsoft Phi-4","Latest open-weight release":"Phi-4-reasoning-vision-15B (15B, Mar 2026); Phi-4-reasoning (14B, May 2025); Phi-4-mini (3.8B)","License":"MIT","Native tool/function-calling":"Yes — Phi-4-mini has built-in function calling; the Phi-4 line supports tool use; Phi-4-reasoning for chain-of-thought agentic tasks","Notable for agents":"Efficiency-first: strong reasoning per parameter. MIT license. Phi-4-reasoning-vision-15B adds selective thinking mode + high-res vision. Phi-4-multimodal adds audio+vision."},{"Family":"IBM Granite 4.1","Latest open-weight release":"Granite 4.1 (3B, 8B, 30B, Apr 2026)","License":"Apache 2.0","Native tool/function-calling":"Yes — tool calling follows OpenAI function definition schema; benchmarked on Berkeley BFCL","Notable for agents":"512K context window. Enterprise-focused; ISO 42001 certified (Granite 4.0 line). 30B uses hybrid Mamba-Transformer architecture for long-context efficiency; 3B/8B are dense. Sizes 3B–30B."},{"Family":"OpenAI gpt-oss","Latest open-weight release":"gpt-oss-20b (21B total / 3.6B active, MoE); gpt-oss-120b (117B total / 5.1B active, MoE); released Aug 2025","License":"Apache 2.0","Native tool/function-calling":"Yes — native function calling, structured outputs, web browsing, code execution","Notable for agents":"Reasoning models (comparable to o3-mini / o4-mini). 128K context. MXFP4 quantized weights; 120B fits on a single 80GB GPU. Weights on Hugging Face: huggingface.co/openai."},{"Family":"Z.ai GLM-5.2","Latest open-weight release":"GLM-5.2 (744B total / ~40B active MoE, Jun 2026)","License":"MIT","Native tool/function-calling":"Yes — native tool-calling, function calling, structured output, and MCP support","Notable for agents":"1M context (128K max output). Frontier-class long-horizon coding/agentic model (SWE-bench Pro 62.1); the highest-ranked open-weight model across several long-horizon coding benchmarks. Self-hosting needs a multi-GPU node (≈8×H100/H200-class at FP8); official FP8 weights at huggingface.co/zai-org/GLM-5.2-FP8."},{"Family":"Moonshot AI Kimi K2.7 Code","Latest open-weight release":"Kimi K2.7 Code (~1T total / ~32B active MoE, Jun 12 2026)","License":"Modified MIT (commercial use and internal deployment permitted; attribution required above a revenue/MAU threshold, consistent with the established Kimi K2 license family)","Native tool/function-calling":"Yes — native agentic tool-calling; purpose-built for long-horizon software-engineering workflows","Notable for agents":"256K context. The coding/agentic-specialized variant of the Kimi K2 line; Moonshot reports ~30% fewer reasoning tokens than K2.6 at higher coding-benchmark scores. Weights on Hugging Face (moonshotai/Kimi-K2.7-Code)."},{"Family":"NVIDIA Nemotron 3 Ultra","Latest open-weight release":"Nemotron 3 Ultra (550B total / 55B active MoE, Jun 4 2026)","License":"OpenMDW-1.1 (the Linux Foundation's open AI-model license; NVIDIA adopted it across the Cosmos/Isaac GR00T/Nemotron families; permissive — commercial and non-commercial use, modification, and redistribution allowed, patent-termination clause, no revenue/MAU cap)","Native tool/function-calling":"Yes — tuned for long-running agent orchestration across hundreds of sequential tool calls","Notable for agents":"1M context. Hybrid Mamba-Transformer MoE architecture with an NVFP4 pretraining/quantization recipe for compute-efficient long-horizon inference. Weights on Hugging Face (nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B)."}]}]},{"slug":"agentic-payment-protocols","title":"Agentic Commerce Protocol, x402, and Payment Gates for Agents","url":"https://changegamer.ai/resources/agentic-payment-protocols","markdown":"https://changegamer.ai/resources/agentic-payment-protocols.md","table_count":1,"tables":[{"columns":["Mechanism","Layer","Who pays whom","Settlement","Standardization","When to use"],"rows":[{"Mechanism":"Self-hosted HTTP 402","Layer":"Origin server","Who pays whom":"Agent → publisher (direct)","Settlement":"Fiat card (Stripe or equivalent)","Standardization":"No formal spec; well-understood pattern","When to use":"Full control, any stack, no CDN dependency"},{"Mechanism":"Cloudflare Pay Per Crawl","Layer":"CDN (Cloudflare edge)","Who pays whom":"Crawler operator → Cloudflare → publisher","Settlement":"Fiat (Stripe; Cloudflare as Merchant of Record)","Standardization":"Cloudflare-proprietary; private beta","When to use":"Cloudflare-hosted sites; hands-off publisher billing"},{"Mechanism":"x402","Layer":"Protocol (HTTP headers)","Who pays whom":"Agent → resource server (via on-chain tx)","Settlement":"Stablecoin on-chain (USDC; EVM, Solana, + 9 more network families)","Standardization":"Open spec (x402 Foundation, github.com/x402-foundation/x402)","When to use":"Crypto-native agents; zero-fee micropayments; cross-platform"},{"Mechanism":"RSL","Layer":"Licensing declaration (robots.txt + XML)","Who pays whom":"N/A — terms only","Settlement":"N/A","Standardization":"Open spec (RSL 1.0, December 2025, rslstandard.org)","When to use":"Declaring licensing terms machine-readably; complements any payment layer"},{"Mechanism":"ACP","Layer":"Agent purchase authorization (fiat rails)","Who pays whom":"Agent → merchant (scoped token, user-authorized)","Settlement":"Fiat (card/bank; Stripe-initiated)","Standardization":"Open spec Apache 2.0 (Stripe + OpenAI, Sep 2025)","When to use":"Authorizing an agent to check out on a user's behalf over existing rails"},{"Mechanism":"AP2","Layer":"Agent purchase authorization (fiat rails)","Who pays whom":"Agent → merchant (Verifiable Credential Mandates)","Settlement":"Payment-method agnostic (cards, bank, stablecoins)","Standardization":"FIDO Alliance community governance (Google donation, Sep 2025)","When to use":"Cross-network agent purchasing with cryptographically signed spending limits"}]}]},{"slug":"agent-frameworks-compared","title":"AI Agent Frameworks Compared","url":"https://changegamer.ai/resources/agent-frameworks-compared","markdown":"https://changegamer.ai/resources/agent-frameworks-compared.md","table_count":1,"tables":[{"columns":["Framework","Maintainer","Language(s)","License","Multi-agent model","MCP","A2A","Notable for agents"],"rows":[{"Framework":"OpenAI Agents SDK","Maintainer":"OpenAI","Language(s)":"Python, TypeScript","License":"MIT","Multi-agent model":"Handoffs (linear chain; one active agent at a time)","MCP":"Yes — native","A2A":"No (handoffs only; no cross-vendor A2A)","Notable for agents":"Lightest opinionated wrapper around OpenAI APIs; built-in tracing; Responses API integration; official JS/TS SDK at github.com/openai/openai-agents-js"},{"Framework":"Google ADK","Maintainer":"Google","Language(s)":"Python, TypeScript, Java, Go, Kotlin (beta)","License":"Apache 2.0","Multi-agent model":"Graph-based Workflow Runtime (ADK 2.0 GA, May 2026): deterministic graph of nodes/edges with Sequential/Parallel/Loop agents and coordinator+subagent patterns; native A2A Agent Cards auto-generated","MCP":"Yes","A2A":"Yes — native, auto-generates Agent Card","Notable for agents":"Optimized for Gemini but model-agnostic; tight Vertex AI / Cloud Run integration; strongest A2A first-mover"},{"Framework":"LangGraph","Maintainer":"LangChain AI","Language(s)":"Python, TypeScript","License":"MIT","Multi-agent model":"Stateful graph (nodes + edges + conditional routing; cycles allowed)","MCP":"Yes — via langchain-mcp-adapters","A2A":"Via LangSmith Deployment (formerly LangGraph Platform); not available in the open-source library alone","Notable for agents":"Explicit state machines; best for complex branching and long-running pipelines; LangSmith tracing"},{"Framework":"CrewAI","Maintainer":"crewAI Inc","Language(s)":"Python","License":"MIT","Multi-agent model":"Role/crew (named agents with roles, goals, backstory; sequential or hierarchical)","MCP":"Yes — first-class (docs.crewai.com/en/mcp/overview)","A2A":"Yes","Notable for agents":"Fastest to get a role-based multi-agent crew running; large template library"},{"Framework":"Microsoft Agent Framework","Maintainer":"Microsoft","Language(s)":"Python, C#/.NET","License":"MIT","Multi-agent model":"Graph-based workflows; multi-runtime (Python and .NET agents can interop via A2A)","MCP":"Yes","A2A":"Yes — 1.0 (April 2026); cross-runtime Python ↔ .NET via A2A","Notable for agents":"GA April 2026; successor to AutoGen + Semantic Kernel (AutoGen now maintenance-only; Semantic Kernel still active) for new agent work; enterprise Azure integration; Durable Task hosting"},{"Framework":"AWS Strands Agents","Maintainer":"Amazon Web Services","Language(s)":"Python, TypeScript","License":"Apache 2.0","Multi-agent model":"Agents-as-tools (nested delegation); event-driven","MCP":"Yes — first-class","A2A":"Yes — 1.0 (SDK 1.0, May 2026)","Notable for agents":"AWS-native (Bedrock AgentCore, Lambda, ECS); model-agnostic; minimal boilerplate; strong production tooling"},{"Framework":"LlamaIndex Workflows","Maintainer":"LlamaIndex (run-llama)","Language(s)":"Python","License":"MIT","Multi-agent model":"Event-driven steps (async, cyclable); agents orchestrate via workflow events","MCP":"Yes — native (MCP as default tool protocol)","A2A":"Yes — native (built into LlamaIndex Agents, 2026)","Notable for agents":"Best-in-class RAG + retrieval integration; document-heavy agent pipelines; Workflows-as-MCP-server pattern"},{"Framework":"Pydantic AI","Maintainer":"Pydantic (Samuel Colvin)","Language(s)":"Python","License":"MIT","Multi-agent model":"Dependency-injection model; agents call sub-agents via typed tools","MCP":"Yes — native","A2A":"Yes — via fasta2a (Agent.to_a2a() deprecated; removed in v2.0)","Notable for agents":"Type-safety first; Pydantic validation on all inputs/outputs; Logfire observability built in; v1.0 GA Sep 2025; v2.0 went GA in June 2026 (harness-first design; latest is v2.51.0, Sep 25 2026, confirmed via PyPI)"},{"Framework":"Mastra","Maintainer":"Mastra AI","Language(s)":"TypeScript","License":"Apache 2.0 (core); Enterprise license (ee/ dirs)","Multi-agent model":"Graph-based workflows + agent networks; A2A for cross-platform delegation","MCP":"Yes — bidirectional (consume MCP servers + expose agents as MCP)","A2A":"Yes — native (May 2026; mastra.ai/docs/agents/a2a)","Notable for agents":"Only TypeScript-native framework in this list; strong Next.js / Node.js DX; built-in evals, syncs, and memory"}]}]},{"slug":"reliable-tool-calling","title":"Reliable Tool Calling and Structured Outputs","url":"https://changegamer.ai/resources/reliable-tool-calling","markdown":"https://changegamer.ai/resources/reliable-tool-calling.md","table_count":1,"tables":[{"columns":["Failure mode","Mitigation"],"rows":[{"Failure mode":"Hallucinated tool name — model calls a tool not in the declared set","Mitigation":"Validate the returned tool name against your schema before executing; reject unknown names"},{"Failure mode":"Missing required arguments — model omits a field the schema marks required","Mitigation":"Use strict mode / required + additionalProperties: false; validation library catches missing fields pre-execution"},{"Failure mode":"Extra / unexpected arguments — model adds fields not in schema","Mitigation":"additionalProperties: false (OpenAI strict) or schema validation; strip unknown keys defensively"},{"Failure mode":"Malformed JSON — output is not parseable","Mitigation":"Enable provider-level strict mode or constrained decoding; wrap parse in try/catch and retry with an error message"},{"Failure mode":"Wrong types — string where int expected, etc.","Mitigation":"Declare enum or const values where possible; use schema validation (e.g. Pydantic, Zod) before consuming arguments"},{"Failure mode":"Over-calling — model calls tools unnecessarily","Mitigation":"Use tool_choice: \"auto\" and a minimal toolset; evaluate on your task distribution, not just benchmark scores"},{"Failure mode":"Under-calling — model answers in text when a tool call was required","Mitigation":"Force tool use via tool_choice: \"any\" (Anthropic), mode: \"ANY\" (Gemini), or remove text-only response option entirely"},{"Failure mode":"Parallel tool calls in wrong order — parallel calls with dependencies","Mitigation":"Declare dependencies explicitly; set disable_parallel_tool_use: true (Anthropic) or sequential tool_choice forcing when order matters"},{"Failure mode":"Chat-template mismatch — open model's tool schema injected with wrong template","Mitigation":"Always match the inference framework's chat template exactly to the model's training template; mismatches silently degrade reliability"}]}]},{"slug":"evaluating-ai-agents","title":"AI Agent Evaluation: Benchmarks and Methods","url":"https://changegamer.ai/resources/evaluating-ai-agents","markdown":"https://changegamer.ai/resources/evaluating-ai-agents.md","table_count":1,"tables":[{"columns":["Benchmark","Measures","Task domain","Metric","Maintainer"],"rows":[{"Benchmark":"SWE-bench","Measures":"Resolving real GitHub issues in Python codebases end-to-end","Task domain":"Software engineering (12 open-source Python repos, 2,294 tasks)","Metric":"% resolved (pass/fail per task)","Maintainer":"Princeton NLP / SWE-bench org (github.com/swe-bench/SWE-bench)"},{"Benchmark":"SWE-bench Verified","Measures":"Same as SWE-bench but on 500 human-validated tasks (93 developers removed 68% of originals for bad harnesses, vague specs, or environment deps)","Task domain":"Software engineering","Metric":"% resolved","Maintainer":"SWE-bench org + OpenAI Preparedness team (swebench.com)"},{"Benchmark":"GAIA","Measures":"Generalist assistants on 466 real-world Q&A tasks requiring multi-tool chaining (web browse, file read, code execute, reasoning) across 3 difficulty levels","Task domain":"Generalist / cross-tool","Metric":"Exact-match accuracy; human baseline ~92% vs best agents ~50–55%","Maintainer":"Meta AI, HuggingFace, AutoGPT team (huggingface.co/spaces/gaia-benchmark/leaderboard)"},{"Benchmark":"BFCL (Berkeley Function Calling Leaderboard)","Measures":"Tool/function-call correctness: single, parallel, and multi-turn calls across programming languages, evaluated via AST matching","Task domain":"Function / tool calling","Metric":"Overall accuracy; separate live vs non-live scores","Maintainer":"Gorilla LLM, UC Berkeley (gorilla.cs.berkeley.edu) — V4 adds agentic web search, agentic memory management, and agentic format-sensitivity evaluation (still the current major version as of mid-2026)"},{"Benchmark":"tau-bench","Measures":"Original agent–tool–user interaction benchmark: simulated customer conversations requiring API tool use and policy adherence","Task domain":"Customer service (airline, retail)","Metric":"pass^k — probability all k i.i.d. trials succeed","Maintainer":"Sierra Research — deprecated: the repo is unmaintained and now tells users to switch to its successor, tau2-bench (github.com/sierra-research/tau-bench)"},{"Benchmark":"tau2-bench (now τ³-bench)","Measures":"Dual-control extension: agent must guide a simulated user toward a shared goal. τ³-bench is the current release in this same repo, adding a RAG-based banking_knowledge domain and full-duplex voice evaluation","Task domain":"Customer service (airline, retail, telecom, banking)","Metric":"pass^k; voice and text variants","Maintainer":"Sierra Research (github.com/sierra-research/tau2-bench) — τ³-bench 1.0.0 released 2026-03-18; a 2026-07-22 v1.0.1 grading-fix patch followed (banking_knowledge scores are not comparable across the two releases)"},{"Benchmark":"Terminal-Bench","Measures":"Autonomous, end-to-end terminal/CLI tasks (code compilation, model training, server setup) in a sandboxed shell, each with an instruction, a verification script, and a reference solution","Task domain":"Terminal / CLI agentic tasks","Metric":"Automated pass/fail per task via the verification script","Maintainer":"Laude Institute / harbor-framework (github.com/laude-institute/terminal-bench) — public beta, ~100 tasks as of this fetch; a \"Terminal-Bench 2.0\" successor is referenced but not yet the primary benchmark"},{"Benchmark":"WebArena","Measures":"Web-browsing agents on 812 realistic tasks across self-hosted shopping, forum, GitLab, and CMS sites","Task domain":"Web navigation","Metric":"Task success rate","Maintainer":"CMU / web-arena-x org (github.com/web-arena-x/webarena)"},{"Benchmark":"VisualWebArena","Measures":"Multimodal web agents on 910 visually grounded tasks (image + text inputs) across shopping, classifieds, Reddit","Task domain":"Visual web navigation","Metric":"Task success rate; human baseline ~88.7%, best agents ~16–30%","Maintainer":"CMU (github.com/web-arena-x/visualwebarena)"},{"Benchmark":"AgentBench","Measures":"LLM-as-agent across 8 diverse environments: OS, database, knowledge graph, web shopping, web browsing, card game, lateral puzzles, household","Task domain":"Multi-environment / generalist","Metric":"Overall score (normalized per environment)","Maintainer":"THUDM / Tsinghua University (github.com/THUDM/AgentBench) — ICLR 2024; still active, not superseded (extended by companion benchmarks VisualAgentBench and AgentBench-FC)"},{"Benchmark":"MLE-bench","Measures":"ML engineering: agents solve 75 Kaggle competitions end-to-end (train models, prepare data, run experiments)","Task domain":"Machine learning engineering","Metric":"% competitions earning any medal vs Kaggle human leaderboard","Maintainer":"OpenAI (github.com/openai/mle-bench) — ICLR 2025; new leaderboard submissions paused since Apr 2026 pending a fairer v2 process"},{"Benchmark":"OSWorld","Measures":"Computer-use agents on 369 desktop tasks across Ubuntu, Windows, macOS — real apps (LibreOffice, VS Code, GIMP, Chrome, Thunderbird) in a VM","Task domain":"Desktop / GUI computer use","Metric":"Task success rate (execution-based in VM snapshot)","Maintainer":"OSWorld team (os-world.github.io)"},{"Benchmark":"OSWorld 2.0","Measures":"Long-horizon computer-use workflows (108 tasks) across 7 professional domains — research, creative, engineering, business/finance, admin/compliance, healthcare — with partial-credit checkpoint scoring, not just OSWorld 1.0's shorter single-session tasks","Task domain":"Desktop / GUI computer use (long-horizon, multi-app)","Metric":"Task success rate + partial-credit checkpoints (execution-based)","Maintainer":"XLANG Lab (HKU) + Snorkel AI (github.com/xlang-ai/OSWorld-V2; arXiv 2606.29537) — released June 2026"}]}]},{"slug":"agent-memory-context","title":"Agent Memory and Context Management","url":"https://changegamer.ai/resources/agent-memory-context","markdown":"https://changegamer.ai/resources/agent-memory-context.md","table_count":1,"tables":[{"columns":["Type","What it holds","Typical substrate"],"rows":[{"Type":"Working / short-term","What it holds":"Current conversation buffer, active task state","Typical substrate":"Context window directly"},{"Type":"Long-term","What it holds":"Persisted user facts, preferences, entity relationships","Typical substrate":"Key-value store, vector DB, graph DB"},{"Type":"Episodic","What it holds":"Past task trajectories, conversation summaries","Typical substrate":"Vector DB (semantic retrieval) or append log"},{"Type":"Semantic","What it holds":"World knowledge, domain facts, reference documents","Typical substrate":"Vector DB (RAG)"},{"Type":"Procedural","What it holds":"Learned skills, reusable tool patterns, updated system prompts","Typical substrate":"Prompt store; model fine-tune in extreme cases"}]}]},{"slug":"rag-retrieval-for-agents","title":"RAG and Retrieval for Agents","url":"https://changegamer.ai/resources/rag-retrieval-for-agents","markdown":"https://changegamer.ai/resources/rag-retrieval-for-agents.md","table_count":2,"tables":[{"columns":["Stage","What happens","Failure mode"],"rows":[{"Stage":"Ingest / parse","What happens":"Documents loaded and converted to plain text","Failure mode":"Garbled tables, lost structure, wrong encoding"},{"Stage":"Chunk","What happens":"Text split into retrieval units","Failure mode":"Boundaries break mid-concept; size/overlap wrong for query patterns"},{"Stage":"Embed","What happens":"Chunks encoded to dense vectors","Failure mode":"Domain mismatch degrades recall; stale model on new vocabulary"},{"Stage":"Index","What happens":"Vectors stored in ANN index; optional BM25 index built in parallel","Failure mode":"Index staleness; missing incremental update path"},{"Stage":"Retrieve","What happens":"Query embedded; top-k fetched by ANN similarity or lexical score","Failure mode":"Irrelevant chunks pass threshold; relevant chunks below cutoff"},{"Stage":"Rerank (optional)","What happens":"Cross-encoder scores and reorders top-k","Failure mode":"Reranker latency budget exceeded; reranker domain mismatch"},{"Stage":"Assemble context","What happens":"Top chunks formatted and injected into prompt","Failure mode":"Lost-in-the-middle; token budget overflow; contradictory chunks"},{"Stage":"Generate","What happens":"LLM produces answer grounded in context","Failure mode":"Hallucination despite context; faithful-but-wrong summary"}]},{"columns":["Failure mode","Cause","Mitigation"],"rows":[{"Failure mode":"Irrelevant chunks","Cause":"Embedding domain mismatch; threshold too loose","Mitigation":"Fine-tune or swap embedding model; tighten top-k cutoff; add reranker"},{"Failure mode":"Contradictory chunks","Cause":"Multiple source versions in index","Mitigation":"Dedup at ingest; metadata-filter by source recency; surface contradictions explicitly"},{"Failure mode":"Lost-in-the-middle","Cause":"Critical chunk placed in middle of long context","Mitigation":"Place highest-scored chunks at start/end; see Liu et al. arXiv:2307.03172 (TACL 2024) — also covered in /resources/agent-memory-context"},{"Failure mode":"Stale index","Cause":"Source documents updated after ingestion","Mitigation":"Incremental re-ingestion pipeline; TTL-based invalidation; updated metadata on chunks"},{"Failure mode":"Embedding-domain mismatch","Cause":"General-purpose embedder on specialized domain","Mitigation":"Domain-adaptive fine-tuning; switch to a specialized embedding model"},{"Failure mode":"Context poisoning","Cause":"Adversarial content in the retrieval corpus","Mitigation":"Validate chunks before injection; treat retrieved text as untrusted data (see /resources/agentic-security-checklist)"}]}]},{"slug":"code-execution-sandboxing","title":"Code Execution Sandboxing for Agents","url":"https://changegamer.ai/resources/code-execution-sandboxing","markdown":"https://changegamer.ai/resources/code-execution-sandboxing.md","table_count":1,"tables":[{"columns":["Product","Isolation","Cold start","GPU","Key differentiator"],"rows":[{"Product":"E2B (e2b.dev)","Isolation":"Firecracker microVM","Cold start":"~150 ms","GPU":"No","Key differentiator":"Agent-first SDK; Python/JS; MCP integration; free tier; production references (Perplexity, Manus)"},{"Product":"Modal (modal.com)","Isolation":"gVisor containers","Cold start":"Fast","GPU":"Yes (A100, H100)","Key differentiator":"50k–100k concurrent sandboxes; GPU access; Lovable and Quora in production"},{"Product":"Daytona (daytona.io)","Isolation":"Sysbox containers (user-namespace isolation)","Cold start":"<90 ms","GPU":"No","Key differentiator":"Open-source; stateful persistent workspace; sub-90 ms via pre-warmed pools; $24M Series A Feb 2026"},{"Product":"Cloudflare Sandbox (developers.cloudflare.com/sandbox)","Isolation":"Containers (GA Apr 2026) + Dynamic Workers V8 isolates (beta)","Cold start":"ms (isolates) / container","GPU":"No","Key differentiator":"Two-tier: full Linux containers via Sandbox SDK + isolate-based Dynamic Workers (100× faster); edge-distributed"},{"Product":"Northflank (northflank.com)","Isolation":"Kata Containers (Cloud Hypervisor) + gVisor","Cold start":"—","GPU":"No","Key differentiator":"Only platform offering both Kata and gVisor; BYOC (AWS/GCP/Azure); unlimited sessions; 2M+ isolated workloads/month"},{"Product":"Vercel Sandbox (vercel.com/sandbox)","Isolation":"Firecracker microVM","Cold start":"—","GPU":"No","Key differentiator":"GA (Jan 2026); free; 45 min–5 hr session cap; backed by Vercel Fluid compute; open-source Open Agents stack"}]}]},{"slug":"embeddings-vector-search","title":"Embeddings and Vector Search for Agents","url":"https://changegamer.ai/resources/embeddings-vector-search","markdown":"https://changegamer.ai/resources/embeddings-vector-search.md","table_count":1,"tables":[{"columns":["Metric","Formula basis","Best for"],"rows":[{"Metric":"Cosine similarity","Formula basis":"Angle between vectors","Best for":"Default for most retrieval; normalizes magnitude"},{"Metric":"Dot product","Formula basis":"Magnitude × angle","Best for":"Equivalent to cosine when vectors are unit-normalized; faster"},{"Metric":"Euclidean (L2)","Formula basis":"Absolute distance","Best for":"Useful when magnitude carries information (e.g., sparse embeddings)"}]}]},{"slug":"voice-realtime-agents","title":"Voice and Realtime Agents","url":"https://changegamer.ai/resources/voice-realtime-agents","markdown":"https://changegamer.ai/resources/voice-realtime-agents.md","table_count":2,"tables":[{"columns":["Dimension","Cascaded pipeline"],"rows":[{"Dimension":"Latency","Cascaded pipeline":"Higher (three sequential models); target sub-second requires fast STT + cached LLM prefix + streaming TTS"},{"Dimension":"Interruptibility","Cascaded pipeline":"Requires explicit barge-in logic at each stage boundary"},{"Dimension":"Emotion / prosody","Cascaded pipeline":"TTS adds prosody; quality varies by provider"},{"Dimension":"Cost","Cascaded pipeline":"Pay for three separate model calls per turn"},{"Dimension":"Control","Cascaded pipeline":"High: swap any component independently; use any LLM"},{"Dimension":"Open-weight path","Cascaded pipeline":"Yes — each stage can run on open-weight models"}]},{"columns":["Dimension","Native speech-to-speech"],"rows":[{"Dimension":"Latency","Native speech-to-speech":"Lower end-to-end (one model, streaming output)"},{"Dimension":"Interruptibility","Native speech-to-speech":"Built into the model; lower barge-in latency"},{"Dimension":"Emotion / prosody","Native speech-to-speech":"Richer; the model controls vocal tone end-to-end"},{"Dimension":"Cost","Native speech-to-speech":"Single model call, but audio tokens are expensive"},{"Dimension":"Control","Native speech-to-speech":"Lower: you cannot swap the underlying LLM independently"},{"Dimension":"Open-weight path","Native speech-to-speech":"Limited — open-weight native speech-to-speech models are still emerging as of mid-2026"}]}]},{"slug":"web-data-for-agents","title":"Web Data and Scraping for Agents","url":"https://changegamer.ai/resources/web-data-for-agents","markdown":"https://changegamer.ai/resources/web-data-for-agents.md","table_count":1,"tables":[{"columns":["Job","What you need","Tools"],"rows":[{"Job":"1. Read a known URL → clean text","What you need":"URL-to-Markdown conversion","Tools":"Jina Reader, Firecrawl /scrape, trafilatura, Mozilla Readability"},{"Job":"2. Crawl a site / scrape at scale","What you need":"Multi-URL crawl + JS rendering + anti-bot","Tools":"Firecrawl /crawl, Apify, Crawlee, Browserbase, Bright Data, ScrapingBee"},{"Job":"3. Search the web","What you need":"Search query → ranked URLs + snippets or answers","Tools":"Tavily, Exa, Brave Search API, Serper, Perplexity Sonar API, built-in provider tools"}]}]},{"slug":"deploying-serving-llms","title":"Deploying and Serving LLMs for Agents","url":"https://changegamer.ai/resources/deploying-serving-llms","markdown":"https://changegamer.ai/resources/deploying-serving-llms.md","table_count":1,"tables":[{"columns":["Scenario","Recommended tier"],"rows":[{"Scenario":"Variable / bursty agent load; no GPU ops","Recommended tier":"Per-token API (Together AI, Fireworks, Bedrock)"},{"Scenario":"High steady-volume or data-residency requirement","Recommended tier":"Self-hosted vLLM or SGLang on dedicated GPU"},{"Scenario":"NVIDIA-maximum performance (H100/H200/B200)","Recommended tier":"TensorRT-LLM + Triton (via Baseten or self-hosted)"},{"Scenario":"Dev / local testing","Recommended tier":"Ollama or LM Studio"},{"Scenario":"Apple Silicon on-device / edge","Recommended tier":"MLX LM or Ollama (MLX backend preview)"},{"Scenario":"Low-resource / CPU-only / air-gapped","Recommended tier":"llama.cpp"}]}]},{"slug":"prompt-context-engineering","title":"Prompt and Context Engineering for Agents","url":"https://changegamer.ai/resources/prompt-context-engineering","markdown":"https://changegamer.ai/resources/prompt-context-engineering.md","table_count":1,"tables":[{"columns":["Failure mode","Description","Mitigation"],"rows":[{"Failure mode":"Context rot","Description":"Recall degrades as window length grows","Mitigation":"Compaction; just-in-time retrieval"},{"Failure mode":"Lost-in-the-middle","Description":"Model under-weights information in the middle of a long context","Mitigation":"Put high-priority context at the start or end; summarize the middle"},{"Failure mode":"Context poisoning","Description":"Adversarial data injected into retrieved content or tool outputs","Mitigation":"Treat all external content as untrusted data, not instructions. See /resources/agentic-security-checklist"},{"Failure mode":"Context clash / distraction","Description":"Conflicting instructions from different context segments","Mitigation":"Use structured delimiters; isolate sub-agent windows"}]}]},{"slug":"durable-execution-for-agents","title":"Durable Execution for Long-Running Agents","url":"https://changegamer.ai/resources/durable-execution-for-agents","markdown":"https://changegamer.ai/resources/durable-execution-for-agents.md","table_count":2,"tables":[{"columns":["Model","Description","Examples"],"rows":[{"Model":"Event-sourcing / full replay","Description":"Workflow function is re-executed from start on every resume; each step is compared against the event history and short-circuited","Examples":"Temporal, Azure Durable Functions"},{"Model":"Durable-state-store / code-first","Description":"Journal records step outcomes; replay injects stored results without full re-execution of orchestration logic","Examples":"Restate, DBOS (Postgres-backed), Inngest (memoization)"},{"Model":"Managed state machine","Description":"Workflow is a declarative YAML/JSON state machine; engine manages state externally","Examples":"AWS Step Functions (ASL), GCP Workflows"},{"Model":"Code-on-Durable-Objects","Description":"Worker code runs on a per-workflow Durable Object; steps are persisted as the object's durable state","Examples":"Cloudflare Workflows"}]},{"columns":["Situation","Recommended approach"],"rows":[{"Situation":"Already on AWS; need durable multi-step agent workflows","Recommended approach":"AWS Step Functions (Standard Workflows) — native integration, zero extra infra"},{"Situation":"Already on Azure","Recommended approach":"Azure Durable Functions — first-party, event-sourcing model, supports long-running orchestrations"},{"Situation":"Already on GCP","Recommended approach":"GCP Workflows — managed state machine, callback-based HITL"},{"Situation":"Already on Cloudflare Workers","Recommended approach":"Cloudflare Workflows — co-located with edge compute, Durable Objects-backed"},{"Situation":"Need portable, code-first durability; want to self-host","Recommended approach":"Temporal (mature, large ecosystem), Restate (lighter footprint, suspension-native), or DBOS (Postgres-only dependency)"},{"Situation":"Managed serverless, code-first, TypeScript/JavaScript-first","Recommended approach":"Inngest — step memoization, managed infra, waitForEvent HITL (an official, newer self-hosting path now also exists)"},{"Situation":"Already using LangGraph; need HITL and checkpoint-based fault tolerance within a graph","Recommended approach":"LangGraph checkpointers + interrupt() — no extra service needed"},{"Situation":"Using OpenAI Agents SDK; need memory continuity across sessions but not crash-resume semantics","Recommended approach":"Agents SDK Sessions — simplest path; add a dedicated engine if mid-run durability is required"}]}]},{"slug":"mcp-primitives","title":"MCP Primitives: Resources, Prompts, Sampling, and Elicitation","url":"https://changegamer.ai/resources/mcp-primitives","markdown":"https://changegamer.ai/resources/mcp-primitives.md","table_count":2,"tables":[{"columns":["Primitive","Side","Controlled by","Who decides to invoke it"],"rows":[{"Primitive":"Tools","Side":"Server","Controlled by":"Model","Who decides to invoke it":"The LLM autonomously decides to call a tool"},{"Primitive":"Resources","Side":"Server","Controlled by":"Application","Who decides to invoke it":"The host app decides what context to expose and inject"},{"Primitive":"Prompts","Side":"Server","Controlled by":"User","Who decides to invoke it":"The user explicitly selects a prompt template"},{"Primitive":"Sampling","Side":"Client","Controlled by":"Server (asks client)","Who decides to invoke it":"The server requests an LLM call from the host"},{"Primitive":"Roots","Side":"Client","Controlled by":"Application","Who decides to invoke it":"The client app declares filesystem/URI boundaries"},{"Primitive":"Elicitation","Side":"Client","Controlled by":"Server (asks user via client)","Who decides to invoke it":"The server requests structured user input mid-session"}]},{"columns":["Use a Resource when...","Use a Tool when..."],"rows":[{"Use a Resource when...":"The data is read-only context the app injects","Use a Tool when...":"The model needs to trigger an action or side effect"},{"Use a Resource when...":"The app (not the model) decides what to include","Use a Tool when...":"The model decides whether and when to call"},{"Use a Resource when...":"The content is stable or subscribable","Use a Tool when...":"The content depends on model-chosen arguments"},{"Use a Resource when...":"Example: open file, DB row, live feed","Use a Tool when...":"Example: search API, code executor, write operation"}]}]},{"slug":"multimodal-agents","title":"Multimodal Agents: Vision, Documents, and Screens","url":"https://changegamer.ai/resources/multimodal-agents","markdown":"https://changegamer.ai/resources/multimodal-agents.md","table_count":1,"tables":[{"columns":["Failure mode","Description"],"rows":[{"Failure mode":"Small or low-contrast text","Description":"Dense fine-print, watermarks, or text on complex backgrounds frequently mis-read. Combine OCR + VLM for precision-critical fields."},{"Failure mode":"Dense tables","Description":"Complex spanning cells and merged headers are prone to misalignment or omission. Verify extracted table content against source."},{"Failure mode":"Spatial reasoning","Description":"Counting objects, estimating distances, or reasoning about exact pixel positions is unreliable without explicit grounding support."},{"Failure mode":"Hallucinated visual details","Description":"VLMs sometimes describe objects or text that are not present. Treat image-derived facts as unverified until cross-checked."},{"Failure mode":"Prompt injection via images","Description":"Adversarial instructions embedded as text within an image enter the model's attention pathway and may override system-prompt constraints. See /resources/agentic-security-checklist."}]}]},{"slug":"agent-delegation-chains","title":"Agent Delegation Chains: Credential Propagation in Multi-Agent Systems","url":"https://changegamer.ai/resources/agent-delegation-chains","markdown":"https://changegamer.ai/resources/agent-delegation-chains.md","table_count":1,"tables":[{"columns":["Pattern","Mechanism","Key property"],"rows":[{"Pattern":"Per-hop token exchange","Mechanism":"RFC 8693 grant-type:token-exchange","Key property":"Each hop holds the narrowest token it needs"},{"Pattern":"Audience binding","Mechanism":"RFC 8707 resource parameter","Key property":"A token replayed to the wrong service is rejected"},{"Pattern":"Chain auditability","Mechanism":"Nested act claim","Key property":"Full delegation path recorded in every token"},{"Pattern":"Forward authorization","Mechanism":"may_act claim in the subject token","Key property":"Issuer pre-approves the next actor"},{"Pattern":"Cryptographic chain integrity","Mechanism":"draft-mw-spice-actor-chain Verified profiles","Key property":"Prevents chain-splicing attacks"},{"Pattern":"Agent-specific consent","Mechanism":"draft-oauth-ai-agents-on-behalf-of-user requested_actor","Key property":"User explicitly authorizes a named agent"}]}]},{"slug":"building-mcp-servers","title":"Building an MCP Server","url":"https://changegamer.ai/resources/building-mcp-servers","markdown":"https://changegamer.ai/resources/building-mcp-servers.md","table_count":1,"tables":[{"columns":["Language","Package","Install"],"rows":[{"Language":"TypeScript","Package":"@modelcontextprotocol/server / @modelcontextprotocol/client (v2.1.0, implements the current 2026-07-28 spec, confirmed via npm this session); legacy single-package @modelcontextprotocol/sdk (v1.30.1) still published for the pre-2026-07-28 protocol model","Install":"npm install @modelcontextprotocol/server @modelcontextprotocol/client"},{"Language":"Python","Package":"mcp (v2.2.0, implements the current 2026-07-28 spec, confirmed via PyPI this session)","Install":"pip install mcp (or uv add \"mcp[cli]\")"},{"Language":"Kotlin","Package":"modelcontextprotocol/kotlin-sdk","Install":"Maven/Gradle — maintained with JetBrains"},{"Language":"Go","Package":"modelcontextprotocol/go-sdk","Install":"go get — maintained with Google"},{"Language":"Swift","Package":"modelcontextprotocol/swift-sdk","Install":"Swift Package Manager"},{"Language":"C#","Package":"modelcontextprotocol/csharp-sdk","Install":"NuGet (ModelContextProtocol, current release v2.2.0, confirmed via nuget.org this session) — maintained with Microsoft; past the v1.0 milestone previously cited"}]}]},{"slug":"graphrag-for-agents","title":"Knowledge Graphs and GraphRAG for Agents","url":"https://changegamer.ai/resources/graphrag-for-agents","markdown":"https://changegamer.ai/resources/graphrag-for-agents.md","table_count":1,"tables":[{"columns":["Dimension","Vector RAG","GraphRAG"],"rows":[{"Dimension":"Build cost","Vector RAG":"Low (embed chunks)","GraphRAG":"High (many LLM calls per chunk)"},{"Dimension":"Update / freshness","Vector RAG":"Re-embed changed chunks","GraphRAG":"Re-extract affected subgraph"},{"Dimension":"Multi-hop queries","Vector RAG":"Poor","GraphRAG":"Strong"},{"Dimension":"Global summarization","Vector RAG":"Poor","GraphRAG":"Strong"},{"Dimension":"Operational complexity","Vector RAG":"Low","GraphRAG":"High"},{"Dimension":"Best for","Vector RAG":"Fact lookup, semantic search","GraphRAG":"Relational, entity-centric, whole-corpus"}]}]},{"slug":"fine-tuning-vs-rag","title":"Fine-Tuning vs RAG vs Prompting","url":"https://changegamer.ai/resources/fine-tuning-vs-rag","markdown":"https://changegamer.ai/resources/fine-tuning-vs-rag.md","table_count":1,"tables":[{"columns":["Symptom","Likely fix"],"rows":[{"Symptom":"Model lacks current or proprietary facts","Likely fix":"RAG"},{"Symptom":"Output format or schema is unreliable","Likely fix":"Better prompt + structured outputs; fine-tune (SFT) if persistent"},{"Symptom":"Tone or style is wrong","Likely fix":"Improve system prompt; fine-tune (SFT) if consistent across inputs"},{"Symptom":"Model too slow or expensive at scale","Likely fix":"Distillation/fine-tune a smaller model; see /resources/agent-cost-latency-optimization"},{"Symptom":"Model makes tool-calling mistakes","Likely fix":"Structured output + typed schemas; SFT on tool-call examples"},{"Symptom":"Need model to follow complex instructions reliably","Likely fix":"Few-shot prompting first; SFT if it fails at scale"},{"Symptom":"Behavior must reflect human ranking preferences","Likely fix":"DPO or RLHF after SFT"}]}]},{"slug":"synthetic-data-generation","title":"Synthetic Data Generation for Agent Training","url":"https://changegamer.ai/resources/synthetic-data-generation","markdown":"https://changegamer.ai/resources/synthetic-data-generation.md","table_count":1,"tables":[{"columns":["Pipeline","Pattern","Notable","License"],"rows":[{"Pipeline":"distilabel (Argilla)","Pattern":"Distillation, preference, critique","Notable":"Unified pipeline over many providers; Ray-distributed","License":"Apache 2.0"},{"Pipeline":"AgentInstruct (Microsoft)","Pattern":"Multi-agent flows from raw documents","Notable":"25M pairs (1M public subset)","License":"dataset CDLA-Permissive-2.0"},{"Pipeline":"APIGen-MT (Salesforce)","Pattern":"Two-phase: task blueprints + simulated agent–human trajectories","Notable":"Multi-turn tool use; xLAM-2 models open-sourced","License":"open (data + models)"},{"Pipeline":"TOUCAN (IBM / UW)","Pattern":"Environment rollout from ~500 real MCP servers","Notable":"1.5M trajectories, 2,000+ tools","License":"Apache 2.0 dataset"}]}]},{"slug":"prompt-caching-for-agents","title":"Prompt Caching for AI Agents","url":"https://changegamer.ai/resources/prompt-caching-for-agents","markdown":"https://changegamer.ai/resources/prompt-caching-for-agents.md","table_count":1,"tables":[{"columns":["Provider","Activation","Min tokens","TTL","Read discount","Notes"],"rows":[{"Provider":"Anthropic Claude","Activation":"Manual (cache_control breakpoints)","Min tokens":"~512–4,096 (model-dependent)","TTL":"5 min default, 1 h opt-in","Read discount":"Large (cache read ≈ 0.1× base input)","Notes":"Write carries a premium (higher for 1 h); up to 4 breakpoints"},{"Provider":"OpenAI GPT-4o+","Activation":"Automatic (prefix-based)","Min tokens":"1,024","TTL":"~5–10 min idle (longer for some models)","Read discount":"Significant on cached prefix (verify per model)","Notes":"Caches in 128-token increments; no explicit controls"},{"Provider":"Google Gemini 2.5+","Activation":"Implicit (auto) or explicit (named cache)","Min tokens":"~2,048","TTL":"Implicit: opportunistic; Explicit: ~60 min, configurable","Read discount":"Large on cached read","Notes":"Explicit caching adds a per-cached-token-hour storage cost"},{"Provider":"DeepSeek","Activation":"Automatic (exact prefix from token 0)","Min tokens":"Not officially documented","TTL":"Not officially documented","Read discount":"Large cache-hit discount","Notes":"Exact-prefix match only; verify current pricing"}]}]},{"slug":"handling-rate-limits-and-retries","title":"Handling LLM Rate Limits (HTTP 429) and Retries for Agents","url":"https://changegamer.ai/resources/handling-rate-limits-and-retries","markdown":"https://changegamer.ai/resources/handling-rate-limits-and-retries.md","table_count":1,"tables":[{"columns":["Header","OpenAI","Anthropic"],"rows":[{"Header":"Requests remaining","OpenAI":"x-ratelimit-remaining-requests","Anthropic":"anthropic-ratelimit-requests-remaining"},{"Header":"Tokens remaining","OpenAI":"x-ratelimit-remaining-tokens","Anthropic":"anthropic-ratelimit-tokens-remaining"},{"Header":"Input/output tokens remaining","OpenAI":"—","Anthropic":"anthropic-ratelimit-input-tokens-remaining / ...-output-tokens-remaining"},{"Header":"Limit (requests / tokens)","OpenAI":"x-ratelimit-limit-requests / ...-tokens","Anthropic":"anthropic-ratelimit-requests-limit / ...-tokens-limit"},{"Header":"Reset time","OpenAI":"x-ratelimit-reset-requests / ...-tokens","Anthropic":"anthropic-ratelimit-requests-reset / ...-tokens-reset (RFC 3339)"},{"Header":"Wait before retry","OpenAI":"Retry-After (on 429)","Anthropic":"retry-after (on 429)"}]}]},{"slug":"shipping-agents-to-production","title":"Shipping AI Agents to Production: A Production-Readiness Checklist","url":"https://changegamer.ai/resources/shipping-agents-to-production","markdown":"https://changegamer.ai/resources/shipping-agents-to-production.md","table_count":1,"tables":[{"columns":["Dimension","Resource"],"rows":[{"Dimension":"Evaluation gates and offline evals","Resource":"/resources/evaluating-ai-agents"},{"Dimension":"Observability, tracing, OTel GenAI","Resource":"/resources/agent-observability"},{"Dimension":"Guardrails and prompt-injection defense","Resource":"/resources/agent-guardrails"},{"Dimension":"Full security threat-surface checklist","Resource":"/resources/agentic-security-checklist"},{"Dimension":"Cost controls, caching, and model routing","Resource":"/resources/agent-cost-latency-optimization"},{"Dimension":"Rate limits, backoff, and batch APIs","Resource":"/resources/handling-rate-limits-and-retries"},{"Dimension":"Durable execution and HITL pause/resume","Resource":"/resources/durable-execution-for-agents"},{"Dimension":"Agent identity and short-lived credentials","Resource":"/resources/agent-identity-authentication"},{"Dimension":"Multi-hop credential delegation","Resource":"/resources/agent-delegation-chains"},{"Dimension":"Model serving and inference infrastructure","Resource":"/resources/deploying-serving-llms"}]}]},{"slug":"reranking-for-rag","title":"Reranking for RAG: Cross-Encoders, LLM Rerankers, and Hosted APIs","url":"https://changegamer.ai/resources/reranking-for-rag","markdown":"https://changegamer.ai/resources/reranking-for-rag.md","table_count":1,"tables":[{"columns":["Approach","Relative latency","Relative quality","Hosted API?"],"rows":[{"Approach":"Cross-encoder (open-weight, e.g. BGE-reranker-v2-m3)","Relative latency":"Low (self-hosted GPU)","Relative quality":"High","Hosted API?":"No (open-weight)"},{"Approach":"Cross-encoder (hosted, e.g. Cohere Rerank 4, Voyage rerank-2.5)","Relative latency":"Low–medium","Relative quality":"High","Hosted API?":"Yes"},{"Approach":"LLM reranker (listwise, frontier model)","Relative latency":"High","Relative quality":"Highest","Hosted API?":"Yes"},{"Approach":"Late-interaction / ColBERT (PLAID)","Relative latency":"Low at scale (GPU)","Relative quality":"High","Hosted API?":"Limited"}]}]},{"slug":"mcp-vs-function-calling","title":"MCP vs Function Calling: When to Use Which","url":"https://changegamer.ai/resources/mcp-vs-function-calling","markdown":"https://changegamer.ai/resources/mcp-vs-function-calling.md","table_count":1,"tables":[{"columns":["Criterion","Function calling","MCP"],"rows":[{"Criterion":"Where the tool runs","Function calling":"In-process (your app code)","MCP":"Out-of-process server"},{"Criterion":"Tool discovery","Function calling":"Static, defined at call time","MCP":"Dynamic, tools/list at session start"},{"Criterion":"Reuse across apps","Function calling":"Manual — duplicate schema per app","MCP":"Zero-copy — connect any MCP client"},{"Criterion":"Provider portability","Function calling":"Tied to one provider schema","MCP":"Client adapts to any provider"},{"Criterion":"Auth requirement","Function calling":"None (your code, your auth)","MCP":"OAuth 2.1 + PKCE for remote servers"},{"Criterion":"Setup cost","Function calling":"Minutes — just JSON schema + handler","MCP":"Higher — server process + transport"},{"Criterion":"Best fit","Function calling":"1–3 tools, single app, prototype","MCP":"Shared toolset, many clients, production"}]}]},{"slug":"chunking-strategies-for-rag","title":"Chunking Strategies for RAG","url":"https://changegamer.ai/resources/chunking-strategies-for-rag","markdown":"https://changegamer.ai/resources/chunking-strategies-for-rag.md","table_count":1,"tables":[{"columns":["Strategy","How it works","Best for","Key tradeoff"],"rows":[{"Strategy":"Fixed-size + overlap","How it works":"Split every N tokens; slide an M-token window between adjacent chunks","Best for":"Uniform, unstructured prose; prototyping","Key tradeoff":"Fast and simple; cuts mid-sentence, mid-concept"},{"Strategy":"Recursive / structural","How it works":"Split on a hierarchy of separators; stay within a size limit","Best for":"Markdown, HTML, code, structured docs","Key tradeoff":"Needs reliable structure; still character-based, not semantic"},{"Strategy":"Semantic","How it works":"Embed adjacent sentences; split where similarity drops below a percentile threshold","Best for":"Dense topic-switching text; academic content","Key tradeoff":"High ingest cost; threshold needs dataset-specific tuning"},{"Strategy":"Document-structure-aware","How it works":"Respect element types (Title, Table, ListItem) as boundaries","Best for":"PDFs, DOCX, HTML with layout metadata","Key tradeoff":"Requires a parsing step to produce element types first"},{"Strategy":"Late chunking","How it works":"Embed the full document with a long-context model; pool token embeddings after splitting","Best for":"Long documents where local chunks lose context","Key tradeoff":"Needs a long-context embedding model; total tokens must fit its window"},{"Strategy":"Contextual retrieval","How it works":"Prepend a short LLM-generated summary to each chunk before embedding and BM25 indexing","Best for":"High-value corpora where recall is critical","Key tradeoff":"An LLM call per chunk at ingest; use prompt caching to lower cost"}]}]},{"slug":"choosing-an-llm-for-agents","title":"How to Choose an LLM for Agentic Tasks","url":"https://changegamer.ai/resources/choosing-an-llm-for-agents","markdown":"https://changegamer.ai/resources/choosing-an-llm-for-agents.md","table_count":2,"tables":[{"columns":["Criterion","What to measure","Why it matters for agents"],"rows":[{"Criterion":"Tool-calling reliability","What to measure":"Schema-valid call rate on BFCL for your call type (single, parallel, multi-turn)","Why it matters for agents":"One malformed call breaks the step; downstream steps operate on corrupt state"},{"Criterion":"Instruction following","What to measure":"Pass rate on YOUR eval set; IFEval as a proxy","Why it matters for agents":"Agents chain instructions; drift accumulates across turns"},{"Criterion":"Structured output","What to measure":"Strict JSON Schema pass rate under constrained decoding","Why it matters for agents":"Downstream parsers treat schema violations as task failures"},{"Criterion":"Long-context behavior","What to measure":"Retrieval accuracy near the nominal context limit","Why it matters for agents":"Nominal window != usable window; quality degrades before the limit"},{"Criterion":"Latency per step","What to measure":"Median time-to-first-token + completion at your p50 input","Why it matters for agents":"Serial loops multiply per-step latency over many steps"},{"Criterion":"Cost per task","What to measure":"Total tokens × price across a full trajectory, not the per-token headline","Why it matters for agents":"A cheaper per-token model that needs more steps can cost more per task"},{"Criterion":"Open-weight vs proxied","What to measure":"Licensing, self-hosting GPU cost, rate-limit ceiling","Why it matters for agents":"Open-weight removes per-call fees and rate ceilings; adds hosting ops"}]},{"columns":["Signal","Lean open-weight","Lean proxied"],"rows":[{"Signal":"Call volume","Lean open-weight":"High and steady","Lean proxied":"Low or bursty"},{"Signal":"Data sensitivity","Lean open-weight":"PII / regulated / cannot leave your infra","Lean proxied":"Public or low-sensitivity"},{"Signal":"Rate limits","Lean open-weight":"Hitting API ceilings","Lean proxied":"Within tier limits"},{"Signal":"Ops capacity","Lean open-weight":"GPU infra + model-update workflow available","Lean proxied":"No infra team"},{"Signal":"Model recency","Lean open-weight":"Willing to lag 1–2 versions","Lean proxied":"Need latest weights immediately"}]}]},{"slug":"structured-outputs-and-json-mode","title":"Structured Outputs and JSON Mode: Provider Reference","url":"https://changegamer.ai/resources/structured-outputs-and-json-mode","markdown":"https://changegamer.ai/resources/structured-outputs-and-json-mode.md","table_count":1,"tables":[{"columns":["Provider","Parameter","Strict guarantee?","anyOf","Defaults","Recursion"],"rows":[{"Provider":"OpenAI (gpt-4o+, GPT-4.1+, GPT-5)","Parameter":"response_format: json_schema, strict:true","Strict guarantee?":"Yes","anyOf":"Root not allowed; use type unions","Defaults":"No (call fails)","Recursion":"No (depth cap)"},{"Provider":"OpenAI (legacy json_object)","Parameter":"response_format: json_object","Strict guarantee?":"Syntax only","anyOf":"N/A","Defaults":"N/A","Recursion":"N/A"},{"Provider":"Anthropic (recent Claude models)","Parameter":"output_config.format: json_schema","Strict guarantee?":"Yes","anyOf":"Yes","Defaults":"Yes","Recursion":"No"},{"Provider":"Gemini 1.5 / 2.0","Parameter":"responseMimeType + responseSchema","Strict guarantee?":"Subset","anyOf":"No","Defaults":"N/A","Recursion":"No"},{"Provider":"Gemini 2.5+","Parameter":"responseMimeType + responseJsonSchema","Strict guarantee?":"Full JSON Schema","anyOf":"Yes","Defaults":"Yes","Recursion":"Limited"},{"Provider":"vLLM / SGLang (XGrammar)","Parameter":"guided_json","Strict guarantee?":"Yes","anyOf":"Yes","Defaults":"N/A","Recursion":"Yes"},{"Provider":"llama.cpp","Parameter":"grammar (GBNF)","Strict guarantee?":"Yes","anyOf":"Via grammar","Defaults":"N/A","Recursion":"Yes"}]}]},{"slug":"agent-response-caching","title":"Application-Level Response Caching for AI Agents","url":"https://changegamer.ai/resources/agent-response-caching","markdown":"https://changegamer.ai/resources/agent-response-caching.md","table_count":1,"tables":[{"columns":["Cache type","Mechanism","Eliminates the call?","False-positive risk"],"rows":[{"Cache type":"Exact-match","Mechanism":"SHA-256 hash of the full request","Eliminates the call?":"Yes, for identical requests","False-positive risk":"None"},{"Cache type":"Semantic","Mechanism":"Embed query → similarity search → return if above threshold","Eliminates the call?":"Yes, for near-duplicate queries","False-positive risk":"Low–medium (threshold-dependent)"},{"Cache type":"Provider prefix caching","Mechanism":"Provider reuses KV state on shared input prefix","Eliminates the call?":"No — input-token discount only","False-positive risk":"None (provider-managed)"}]}]},{"slug":"hybrid-search-for-rag","title":"Hybrid Search for RAG: BM25 + Dense Retrieval and Fusion","url":"https://changegamer.ai/resources/hybrid-search-for-rag","markdown":"https://changegamer.ai/resources/hybrid-search-for-rag.md","table_count":2,"tables":[{"columns":["Method","How it represents documents","Catches","Misses"],"rows":[{"Method":"Okapi BM25","How it represents documents":"TF-IDF-weighted term bag","Catches":"Exact/partial keyword matches; rare tokens","Misses":"Paraphrase; vocabulary mismatch"},{"Method":"SPLADE","How it represents documents":"Transformer logits projected to vocabulary space (sparse)","Catches":"Query expansion; some semantic generalisation","Misses":"Needs a GPU at ingest"},{"Method":"Learned sparse (LLM-based)","How it represents documents":"Decoder-only LLM as encoder","Catches":"Strong semantic + lexical; good zero-shot","Misses":"Higher ingest cost; less widely deployed"}]},{"columns":["Database","Sparse method","Fusion","Notes"],"rows":[{"Database":"Weaviate","Sparse method":"BM25","Fusion":"RRF and relativeScoreFusion","Notes":"relativeScoreFusion normalises scores before fusion"},{"Database":"Qdrant","Sparse method":"Sparse vectors (BM25/SPLADE)","Fusion":"Universal Query API with prefetch (RRF or DBSF)","Notes":"Multi-stage prefetch allows hybrid + rerank in one request; DBSF (Distribution-Based Score Fusion) is a second built-in fusion mode alongside RRF"},{"Database":"Elasticsearch / OpenSearch","Sparse method":"BM25","Fusion":"Native RRF retriever","Notes":"Dedicated hybrid/RRF retriever APIs"},{"Database":"Pinecone","Sparse method":"Sparse vectors per record","Fusion":"Alpha-weighted combination","Notes":"alpha: 1.0 = pure dense, 0.0 = pure sparse"},{"Database":"Milvus","Sparse method":"Sparse vectors (BM25/SPLADE)","Fusion":"Weighted and RRF","Notes":"Sparse-dense hybrid in one collection"}]}]},{"slug":"prompt-management-and-versioning","title":"Prompt Management and Versioning: The Ops of Prompts in Production","url":"https://changegamer.ai/resources/prompt-management-and-versioning","markdown":"https://changegamer.ai/resources/prompt-management-and-versioning.md","table_count":2,"tables":[{"columns":["Scheme","Format","When to use"],"rows":[{"Scheme":"Commit hash","Format":"abc123f","When to use":"Registry tools auto-generate these"},{"Scheme":"Monotonic integer","Format":"v1, v2, v3","When to use":"Simple; common registry default"},{"Scheme":"Semantic version","Format":"1.2.0","When to use":"When you need a major/minor/patch breaking-change signal"},{"Scheme":"Environment label","Format":"production, staging, canary","When to use":"A pointer to a specific immutable version"}]},{"columns":["Category","Representative tools"],"rows":[{"Category":"Integrated LLMOps (prompts + evals + tracing)","Representative tools":"LangSmith Prompt Hub, Langfuse Prompt Management, Agenta (open-source), MLflow Prompt Registry"},{"Category":"Prompt-management-first","Representative tools":"PromptLayer"},{"Category":"In-repo via Git","Representative tools":"Any VCS, paired with a CI eval harness"}]}]},{"slug":"choosing-a-vector-database","title":"Choosing a Vector Database","url":"https://changegamer.ai/resources/choosing-a-vector-database","markdown":"https://changegamer.ai/resources/choosing-a-vector-database.md","table_count":1,"tables":[{"columns":["Option","Type","Best when","Main tradeoff"],"rows":[{"Option":"pgvector","Type":"Add-on (Postgres)","Best when":"Already on Postgres; &lt; ~10 M vectors vanilla; 100 M+ with pgvectorscale/DiskANN; need ACID","Main tradeoff":"Ops tied to Postgres; limited distributed scale"},{"Option":"Qdrant","Type":"Dedicated (self-host/managed)","Best when":"Production RAG; strong filtered + hybrid search","Main tradeoff":"More infra than pgvector if you have no dedicated stack"},{"Option":"Weaviate","Type":"Dedicated (self-host/managed)","Best when":"Object store + vector; multi-tenant SaaS","Main tradeoff":"Heavier footprint; config complexity"},{"Option":"Milvus","Type":"Dedicated (self-host)","Best when":"Billion-scale; distributed","Main tradeoff":"Complex deployment"},{"Option":"Pinecone","Type":"Fully managed","Best when":"No-ops priority; serverless auto-scale","Main tradeoff":"Vendor lock-in; per-query cost at high QPS"},{"Option":"Elasticsearch / OpenSearch","Type":"Add-on (search cluster)","Best when":"Already running ES/OS; want BM25 hybrid","Main tradeoff":"Not purpose-built; operational weight"},{"Option":"MongoDB Atlas Vector Search","Type":"Add-on (Atlas)","Best when":"Already on Atlas; vector + document in one query","Main tradeoff":"Atlas-only; managed cost"},{"Option":"Redis","Type":"Add-on (cache layer)","Best when":"Ultra-low latency; data already in Redis","Main tradeoff":"Memory-bound; less suited to large cold corpora"},{"Option":"LanceDB","Type":"Embedded / managed","Best when":"Columnar analytics + vectors; multimodal","Main tradeoff":"Single-node OSS; Enterprise for distributed"},{"Option":"Chroma","Type":"Embedded / managed","Best when":"Local dev, prototyping, teaching","Main tradeoff":"Single-node; limited production hybrid story"},{"Option":"FAISS","Type":"Library (no server)","Best when":"Research; custom pipelines; recall baseline","Main tradeoff":"No server/persistence — you build everything"}]}]},{"slug":"vibe-coding-agentic-engineering","title":"The New SDLC With Vibe Coding: Agentic Engineering Explained","url":"https://changegamer.ai/resources/vibe-coding-agentic-engineering","markdown":"https://changegamer.ai/resources/vibe-coding-agentic-engineering.md","table_count":1,"tables":[{"columns":["","Vibe coding","Agentic engineering"],"rows":[{"col1":"Intent","Vibe coding":"Explore, prototype, get something working","Agentic engineering":"Ship and maintain production software"},{"col1":"Prompts","Vibe coding":"Loose, conversational","Agentic engineering":"Formal specs, acceptance criteria"},{"col1":"Verification","Vibe coding":"\"Looks like it works\"","Agentic engineering":"Automated tests, evals, CI/CD gates"},{"col1":"Human role","Vibe coding":"Accept output","Agentic engineering":"Review architecture, security, and risk"},{"col1":"Best for","Vibe coding":"Throwaway scripts, demos, learning","Agentic engineering":"Anything other people depend on"}]}]},{"slug":"agent-wallets-x402","title":"Agent Wallets: Paying Per Run with x402","url":"https://changegamer.ai/resources/agent-wallets-x402","markdown":"https://changegamer.ai/resources/agent-wallets-x402.md","table_count":1,"tables":[{"columns":["Piece","What it is","Notes"],"rows":[{"Piece":"Wallet","What it is":"An EVM account the agent can sign with","Notes":"USDC on Base is the ecosystem default; fund it with small amounts only"},{"Piece":"Client library","What it is":"Wraps HTTP and handles the 402→sign→retry loop","Notes":"JS/TS: @x402/fetch or @x402/axios + @x402/evm; Python: x402[httpx] (async) or x402[requests] (sync)"},{"Piece":"Budget policy","What it is":"Your own spend controls","Notes":"The upto scheme lets you authorize a *maximum* and be charged actual usage"}]}]},{"slug":"selling-to-agents","title":"Selling to Agents: Charging AI Agents for Your API or Content","url":"https://changegamer.ai/resources/selling-to-agents","markdown":"https://changegamer.ai/resources/selling-to-agents.md","table_count":1,"tables":[{"columns":["Rail","Status here"],"rows":[{"Rail":"HTTP 402 + Bearer key (Stripe-backed)","Status here":"ACTIVE — premium resources gated; keys minted automatically on checkout"},{"Rail":"Native x402 endpoint (/api/x402/<slug>)","Status here":"Scaffolded, dormant — returns HTTP 503 until on-chain settlement is enabled server-side"},{"Rail":"RSL per-crawl license (/license.xml)","Status here":"Declared, not yet collected — collective registration pending"},{"Rail":"Cloudflare Pay Per Crawl / TollBit","Status here":"Waitlisted / signup pending"}]}]},{"slug":"agent-spend-controls","title":"Agent Spend Controls: Budget Caps, Approval Gates, and Kill Switches","url":"https://changegamer.ai/resources/agent-spend-controls","markdown":"https://changegamer.ai/resources/agent-spend-controls.md","table_count":1,"tables":[{"columns":["Layer","What it caps","Mechanism","Where it lives"],"rows":[{"Layer":"LLM/API cost","What it caps":"Tokens and inference spend","Mechanism":"Provider org/project budgets; gateway virtual-key budgets","Where it lives":"Anthropic Console, OpenAI project settings, or an AI gateway — see /resources/ai-gateways-llm-routing"},{"Layer":"Wallet/payment-protocol","What it caps":"Stablecoin or fiat authorized per call/session","Mechanism":"x402 upto ceilings; AP2 Intent Mandate price limits; ACP Shared Payment Token scope","Where it lives":"The agent's own signing key or delegated mandate — see /resources/agentic-payment-protocols"},{"Layer":"Card-network agent token","What it caps":"Fiat spend on existing card rails","Mechanism":"Visa/Mastercard tokenized agent credentials with per-transaction, MCC, time, and frequency limits","Where it lives":"Issued by the card network, bound to one agent + merchant scope"}]}]},{"slug":"agentic-browsers","title":"Agentic AI Browsers: Comet, Atlas, and the Prompt-Injection Attack Surface","url":"https://changegamer.ai/resources/agentic-browsers","markdown":"https://changegamer.ai/resources/agentic-browsers.md","table_count":1,"tables":[{"columns":["Product","Vendor","Status (Atlas and Edge checked 2026-11-03; Comet and Neon last checked Jul 2026)","Signature capability"],"rows":[{"Product":"Comet","Vendor":"Perplexity","Status (Atlas and Edge checked 2026-11-03; Comet and Neon last checked Jul 2026)":"Live; free tier since Oct 2025; Android/iOS shipped","Signature capability":"Sidebar agent, Deep Research, cross-tab automation"},{"Product":"ChatGPT Atlas","Vendor":"OpenAI","Status (Atlas and Edge checked 2026-11-03; Comet and Neon last checked Jul 2026)":"Stop date Aug 9, 2026 (passed; post-shutdown status not verified); browser agent moves into ChatGPT/Codex","Signature capability":"Agent mode: opens tabs, acts on the user's behalf"},{"Product":"Edge Copilot Mode (\"Browse with Copilot\")","Vendor":"Microsoft","Status (Atlas and Edge checked 2026-11-03; Comet and Neon last checked Jul 2026)":"Copilot Mode retired May 13, 2026 (search-reported; no Microsoft page read); features moved into default Edge","Signature capability":"Features moved into default Edge; the 2025 Copilot Mode enterprise preview is historical"},{"Product":"Opera Neon","Vendor":"Opera","Status (Atlas and Edge checked 2026-11-03; Comet and Neon last checked Jul 2026)":"Live; MCP Connector added Mar 31, 2026","Signature capability":"\"Neon Do\" task execution, ODRA research agent"}]}]},{"slug":"prompt-injection-design-patterns","title":"Prompt Injection Design Patterns: Architectural Defenses for Agents","url":"https://changegamer.ai/resources/prompt-injection-design-patterns","markdown":"https://changegamer.ai/resources/prompt-injection-design-patterns.md","table_count":1,"tables":[{"columns":["Pattern","Core idea","What it rules out"],"rows":[{"Pattern":"Action-Selector","Core idea":"The model picks from a fixed, closed set of predefined actions/tool calls, like an LLM-modulated switch statement","What it rules out":"Constructing a novel or parameterized tool call from untrusted text"},{"Pattern":"Plan-Then-Execute","Core idea":"The model generates the full plan of tool calls *before* any untrusted data is ingested","What it rules out":"Injected content encountered mid-execution altering which actions still run"},{"Pattern":"LLM Map-Reduce","Core idea":"Untrusted content is processed one item at a time by an isolated \"map\" LLM call; only the extracted, sanitized outputs reach the privileged \"reduce\" context","What it rules out":"A single untrusted document directly steering the agent's overall reasoning"},{"Pattern":"Dual LLM","Core idea":"A privileged LLM (has tool access, never sees untrusted data) delegates parsing of untrusted content to a quarantined LLM (sees the data, has no tool access); results pass back only as opaque references","What it rules out":"The LLM that reads attacker-controlled text ever being the one that calls a tool"},{"Pattern":"Code-Then-Execute","Core idea":"The model emits code rather than direct tool calls; the code is constrained/reviewed before running","What it rules out":"Untrusted data flowing anywhere except through vetted, inspectable operations"},{"Pattern":"Context-Minimization","Core idea":"Trim the context window down to the minimum a given step actually requires","What it rules out":"Untrusted text sitting in context long enough to influence unrelated later steps"}]}]},{"slug":"llm-model-deprecation","title":"LLM Model Deprecation: Detecting and Handling End-of-Life Models","url":"https://changegamer.ai/resources/llm-model-deprecation","markdown":"https://changegamer.ai/resources/llm-model-deprecation.md","table_count":1,"tables":[{"columns":["Vendor","Lifecycle stages","Minimum notice","Where it is announced"],"rows":[{"Vendor":"OpenAI","Lifecycle stages":"Not formally staged in the API surface","Minimum notice":"≥6 months (GA), ≥3 months (specialized variant), as little as 2 weeks (preview)","Where it is announced":"developers.openai.com/api/docs/deprecations + email to active users"},{"Vendor":"Anthropic","Lifecycle stages":"Active → Legacy → Deprecated → Retired","Minimum notice":"≥60 days for publicly released models","Where it is announced":"platform.claude.com/docs/en/about-claude/model-deprecations + email; warning text in responses during the Deprecated window"},{"Vendor":"Google Gemini","Lifecycle stages":"Stable / Preview / Latest-alias / Experimental","Minimum notice":"≥2 weeks (preview); 2 weeks' email notice before a -latest alias swap; stable models get an advance shutdown-eligibility date","Where it is announced":"ai.google.dev/gemini-api/docs/deprecations"}]}]},{"slug":"mcp-2026-spec-revision","title":"MCP Goes Stateless: The 2026-07-28 Spec Revision Explained","url":"https://changegamer.ai/resources/mcp-2026-spec-revision","markdown":"https://changegamer.ai/resources/mcp-2026-spec-revision.md","table_count":1,"tables":[{"columns":["Language","Package","Status"],"rows":[{"Language":"Python","Package":"mcp v2.0.0","Status":"Stable; pip install mcp now resolves to 2.x"},{"Language":"TypeScript","Package":"v2.0.0, split into @modelcontextprotocol/server / client","Status":"Stable"},{"Language":"Go","Package":"go-sdk v1.7.0","Status":"Stable"},{"Language":"C#","Package":"ModelContextProtocol v2.0.0","Status":"Stable"}]}]},{"slug":"ai-supply-chain-provenance","title":"AI Supply Chain Provenance: SBOMs, SLSA, and Artifact Signing for Agents and MCP Servers","url":"https://changegamer.ai/resources/ai-supply-chain-provenance","markdown":"https://changegamer.ai/resources/ai-supply-chain-provenance.md","table_count":1,"tables":[{"columns":["Standard","Governance","What it records","Layer"],"rows":[{"Standard":"CycloneDX AI/ML-BOM","Governance":"OWASP + Ecma International (ECMA-424)","What it records":"component/model/dataset inventory inside an artifact","Layer":"contents"},{"Standard":"SPDX AI/Dataset profiles","Governance":"Linux Foundation (ISO/IEC 5962)","What it records":"same purpose, ISO-standardized alternative","Layer":"contents"},{"Standard":"SLSA","Governance":"OpenSSF / Linux Foundation","What it records":"how, where, and by whom an artifact was built","Layer":"build process"},{"Standard":"in-toto + Sigstore","Governance":"in-toto community / OpenSSF","What it records":"signed proof the recorded build/sign steps really happened","Layer":"attestation & signing"}]}]},{"slug":"ai-red-teaming-tools","title":"AI Red Teaming Tools for LLM Apps and Agents: garak, PyRIT, promptfoo","url":"https://changegamer.ai/resources/ai-red-teaming-tools","markdown":"https://changegamer.ai/resources/ai-red-teaming-tools.md","table_count":1,"tables":[{"columns":["Situation","Start with"],"rows":[{"Situation":"Baseline a model or endpoint against known failure classes (jailbreaks, encoding tricks, leakage)","Start with":"garak"},{"Situation":"Scripted multi-turn or multi-step attacks, custom scorers, research-style experiments","Start with":"PyRIT"},{"Situation":"Regression-test attacks on every pull request; app-level tests defined in YAML","Start with":"promptfoo"},{"Situation":"Need a scoping and reporting framework for a human-led exercise","Start with":"OWASP GenAI Red Teaming Guide"}]}]},{"slug":"llm-tokenization-and-token-counting","title":"LLM Tokenization and Token Counting: tiktoken, Provider Counting Endpoints, and Why Counts Differ","url":"https://changegamer.ai/resources/llm-tokenization-and-token-counting","markdown":"https://changegamer.ai/resources/llm-tokenization-and-token-counting.md","table_count":1,"tables":[{"columns":["Need","Use","Why"],"rows":[{"Need":"What you were actually billed or rate-limited on","Use":"The usage fields in the provider response","Why":"Only the provider's own accounting is authoritative"},{"Need":"Gate or route a request before sending, on a hosted provider","Use":"The provider's token-counting endpoint (Anthropic and Gemini: count_tokens)","Why":"Uses the target model's real tokenizer and request structure"},{"Need":"Fast offline estimate, no network call","Use":"A tokenizer library, e.g. tiktoken for OpenAI models","Why":"Cheap and local, but an approximation of request framing"},{"Need":"Model with no published tokenizer or counting endpoint","Use":"Its own tokenizer if available, plus a safety margin","Why":"Do not borrow another vendor's tokenizer as a stand-in"}]}]},{"slug":"mcp-tool-poisoning","title":"MCP Tool Poisoning: Definition, Attack Variants, and Defenses","url":"https://changegamer.ai/resources/mcp-tool-poisoning","markdown":"https://changegamer.ai/resources/mcp-tool-poisoning.md","table_count":1,"tables":[{"columns":["Variant","What changes","Where to defend"],"rows":[{"Variant":"Poisoned description","What changes":"Hostile instructions embedded in a tool's description or parameter text. OWASP static indicators: model-directed imperatives, sensitive-path references (~/.ssh, .env), exfiltration patterns (send/post/upload near a URL), zero-width or bidi characters, instructions hidden in HTML/markdown comments","Where to defend":"Static metadata scanning, human-visible tool text"},{"Variant":"Schema poisoning","What changes":"Contract or schema altered so a benign operation maps to a destructive one (OWASP MCP03 wording)","Where to defend":"Signed schemas, policy-as-code invariants"},{"Variant":"Rug pull","What changes":"A server changes a tool's description after the client has already approved it (Invariant Labs, 2025-04-01)","Where to defend":"Pinning and hash comparison on every connect"},{"Variant":"Cross-server shadowing","What changes":"A malicious server's tool description modifies the agent's behavior toward a trusted server's tool (Invariant Labs example: a bogus \"add\" tool whose description redirects a trusted send_email tool)","Where to defend":"Per-session tool scoping, separate trust domains"}]}]},{"slug":"a2a-protocol","title":"A2A Protocol (Agent2Agent): Agent Card, Operations, Task States, Bindings","url":"https://changegamer.ai/resources/a2a-protocol","markdown":"https://changegamer.ai/resources/a2a-protocol.md","table_count":1,"tables":[{"columns":["Binding","Spelling (spec main branch, at time of fetch)"],"rows":[{"Binding":"JSON-RPC","Spelling (spec main branch, at time of fetch)":"PascalCase: SendMessage, SendStreamingMessage, GetTask, ListTasks, CancelTask, SubscribeToTask, GetExtendedAgentCard"},{"Binding":"HTTP+JSON","Spelling (spec main branch, at time of fetch)":"POST /message:send, POST /message:stream, GET /tasks/{id}, GET /tasks, POST /tasks/{id}:cancel, POST /tasks/{id}:subscribe, GET /extendedAgentCard"},{"Binding":"gRPC","Spelling (spec main branch, at time of fetch)":"normative A2AService, Protocol Buffers v3 over HTTP/2 with TLS"}]}]},{"slug":"agent-client-protocol","title":"Agent Client Protocol (ACP): How Editors Talk to Coding Agents","url":"https://changegamer.ai/resources/agent-client-protocol","markdown":"https://changegamer.ai/resources/agent-client-protocol.md","table_count":2,"tables":[{"columns":["Direction","Methods"],"rows":[{"Direction":"Client to agent","Methods":"initialize, authenticate, session/new, session/prompt, session/load, session/resume, session/close, logout, session/set_mode; notification session/cancel"},{"Direction":"Agent to client","Methods":"session/request_permission, fs/read_text_file, fs/write_text_file, terminal/create, terminal/output, terminal/release, terminal/wait_for_exit, terminal/kill, elicitation/create; notifications elicitation/complete, session/update"}]},{"columns":["Protocol","Connects","Relation to ACP"],"rows":[{"Protocol":"ACP","Connects":"editor/client <-> coding agent","Relation to ACP":"this entry"},{"Protocol":"MCP","Connects":"agent <-> tools and data","Relation to ACP":"ACP reuses MCP JSON types and forwards MCP servers to the agent"},{"Protocol":"A2A","Connects":"agent <-> agent","Relation to ACP":"different layer; see /resources/a2a-protocol"},{"Protocol":"A2UI","Connects":"agent <-> user-facing app UI","Relation to ACP":"different layer; see /resources/a2ui-protocol"}]}]}]}