# Thoughts & Stories: AI

> Sharing my experiences, learnings, and adventures in tech and beyond.

URL: https://www.matthewswong.com/en/blog/category/ai/

- [AI Agent Harness Engineering: What Research and Real Runs Show](https://www.matthewswong.com/en/blog/ai-agent-harness-engineering-research/)
- [How to Write a CLAUDE.md File That Works in Claude Code](https://www.matthewswong.com/en/blog/cara-menulis-claude-md-yang-efektif/)
- [Backstage MCP Actions Backend: Secure AI Access to Your Portal](https://www.matthewswong.com/en/blog/backstage-mcp-actions-backend-ai-agents/)
- [Stack Overflow Developer Survey 2026: AI Agent Trust](https://www.matthewswong.com/en/blog/stack-overflow-developer-survey-2026-ai-agent-trust/)
- [METR AI Developer Productivity Study 2026: What It Really Says](https://www.matthewswong.com/en/blog/metr-developer-productivity-2026-uplift-update/)
- [Perplexity SPACE: Firecracker Agent Sandbox, Warm Pools, E2B](https://www.matthewswong.com/en/blog/perplexity-space-firecracker-agent-sandbox/)
- [Docker Sandboxes sbx: Run Claude Code in Cloud MicroVMs](https://www.matthewswong.com/en/blog/docker-sandboxes-cloud-sandboxes-sbx-guide/)
- [kagent Kubernetes Tutorial: AI Agents on a Laptop Cluster](https://www.matthewswong.com/en/blog/kagent-ai-agents-kubernetes-tutorial/)
- [Kubernetes Agent Sandbox CRD: Isolated Stateful AI Agents](https://www.matthewswong.com/en/blog/kubernetes-agent-sandbox-crd-ai-agents/)
- [Kubernetes AI Conformance: What the KARs Demand of a Platform](https://www.matthewswong.com/en/blog/kubernetes-ai-conformance-program-explained/)
- [Cloudflare Code Mode MCP: Two Tools, 1,000 Tokens, a Sandbox](https://www.matthewswong.com/en/blog/cloudflare-code-mode-mcp-two-tools-1000-tokens/)
- [Elastic nightshift AI SRE: Start With the Investigation Engine](https://www.matthewswong.com/en/blog/elastic-nightshift-ai-sre-four-engines/)
- [A2A vs MCP: Which AI Agent Protocol Do You Actually Need?](https://www.matthewswong.com/en/blog/a2a-vs-mcp-agent-protocols/)
- [AI Agent Cost Optimization: Budget Per Task, Not Per Call](https://www.matthewswong.com/en/blog/ai-agent-cost-per-task-budgets/)
- [AI Agent Evaluation: How to Test Tool Calls and Trajectories](https://www.matthewswong.com/en/blog/ai-agent-evals-trajectory-testing/)
- [ChatGPT Plugins (Apps SDK) Guide: Build an ERP Plugin on MCP](https://www.matthewswong.com/en/blog/chatgpt-plugins-apps-sdk-mcp-guide/)
- [Claude Managed Agents vs OpenAI Agents API: Full Comparison](https://www.matthewswong.com/en/blog/claude-managed-agents-vs-openai-agents-api/)
- [Google ADK 2.0 Tutorial: Graph Workflows and Multi-Agents](https://www.matthewswong.com/en/blog/google-adk-2-graph-workflows-tutorial/)
- [LangChain create_agent Middleware Guide: PII, Limits, Fallback](https://www.matthewswong.com/en/blog/langchain-create-agent-middleware-guide/)
- [LangGraph vs CrewAI in 2026: Which for Production Agents?](https://www.matthewswong.com/en/blog/langgraph-vs-crewai-production-agents/)
- [Mastra TypeScript Agent Framework Tutorial: Workflows and Evals](https://www.matthewswong.com/en/blog/mastra-typescript-agent-framework-tutorial/)
- [Microsoft Agent Framework 1.0: Semantic Kernel Migration Guide](https://www.matthewswong.com/en/blog/microsoft-agent-framework-semantic-kernel-migration/)
- [OpenAI Agent Builder Shutdown: Migrate Before Nov 30, 2026](https://www.matthewswong.com/en/blog/openai-agent-builder-shutdown-migration/)
- [OpenAI Agents API Tutorial: Hosted Agents and Sandboxes](https://www.matthewswong.com/en/blog/openai-agents-api-hosted-sandbox-tutorial/)
- [OpenAI Agents API vs Agents SDK vs Responses API: Which?](https://www.matthewswong.com/en/blog/openai-agents-api-vs-agents-sdk/)
- [OpenAI Agents SDK Guardrails: Input, Output and Tool Checks](https://www.matthewswong.com/en/blog/openai-agents-sdk-guardrails-tripwires/)
- [OpenAI Agents SDK Handoffs vs Agents as Tools Explained](https://www.matthewswong.com/en/blog/openai-agents-sdk-handoffs-vs-agents-as-tools/)
- [OpenAI Agents SDK Sandbox Agents: Manifest, Docker, E2B](https://www.matthewswong.com/en/blog/openai-agents-sdk-sandbox-agents-manifest/)
- [OpenAI Agents SDK Sessions: SQLite, Redis and Postgres Memory](https://www.matthewswong.com/en/blog/openai-agents-sdk-sessions-redis-sqlalchemy/)
- [OpenAI Agents SDK TypeScript Tutorial: Build a Tool Agent](https://www.matthewswong.com/en/blog/openai-agents-sdk-typescript-tutorial/)
- [OpenAI Agents SDK vs Google ADK vs Claude Agent SDK (2026)](https://www.matthewswong.com/en/blog/openai-agents-sdk-vs-google-adk-vs-claude-agent-sdk/)
- [OpenAI ChatKit Tutorial: Self-Hosted Agent Chat in React](https://www.matthewswong.com/en/blog/openai-chatkit-self-hosted-chat-ui/)
- [OpenAI DevDay 2026 for Developers: Sol, Ultrafast, Agents API](https://www.matthewswong.com/en/blog/openai-devday-2026-developer-announcements/)
- [OpenAI Dots Agents Explained: Always-On ChatGPT Agents](https://www.matthewswong.com/en/blog/openai-dots-always-on-chatgpt-agents/)
- [OpenAI Evals Shutdown: Migrate Your Evals to Promptfoo](https://www.matthewswong.com/en/blog/openai-evals-shutdown-promptfoo-migration/)
- [OpenAI Realtime Voice Agent over SIP with gpt-realtime-2.1](https://www.matthewswong.com/en/blog/openai-realtime-voice-agent-sip-phone/)
- [OpenAI Responses API Remote MCP: Approvals, Filters, Tunnels](https://www.matthewswong.com/en/blog/openai-responses-remote-mcp-approvals/)
- [OpenAI Skills API: SKILL.md Bundles in the Hosted Shell](https://www.matthewswong.com/en/blog/openai-skills-api-hosted-shell/)
- [Playwright MCP vs Browser Use vs Stagehand: Browser Agents](https://www.matthewswong.com/en/blog/playwright-mcp-vs-browser-use-vs-stagehand/)
- [WhatsApp AI Agent Indonesia: UMKM Order Bot with Agents SDK](https://www.matthewswong.com/en/blog/whatsapp-ai-agent-umkm-indonesia/)
- [Bahasa Indonesia LLM Token Cost: 1.23x, Not 2-3x, Measured](https://www.matthewswong.com/en/blog/bahasa-indonesia-llm-token-cost/)
- [RAG Bahasa Indonesia: Postgres Full-Text Search Misses Docs](https://www.matthewswong.com/en/blog/rag-bahasa-indonesia-search-retrieval/)
- [Speech-to-Text Bahasa Indonesia in Production: Real Whisper WER](https://www.matthewswong.com/en/blog/speech-to-text-bahasa-indonesia-production/)
- [How ChatGPT Astra Built My 3D Portfolio Game, Step by Step](https://www.matthewswong.com/en/blog/chatgpt-astra-3d-portfolio-game-archipelago/)
- [A2A Protocol: How AI Agents Discover and Delegate to Peers](https://www.matthewswong.com/en/blog/a2a-protocol-agent-interoperability/)
- [Indonesia AI Adoption: Is the Country on the Right Path?](https://www.matthewswong.com/en/blog/indonesia-ai-adoption-right-path/)
- [Indonesia Grok Block: AI Image Moderation for Product Builders](https://www.matthewswong.com/en/blog/indonesia-grok-block-ai-moderation-lesson/)
- [Onboarding an AI Coding Agent to an Unfamiliar Codebase](https://www.matthewswong.com/en/blog/ai-agent-onboarding-unfamiliar-codebase/)
- [Prompt Regression Testing in CI: Assert a Rate, Not an Answer](https://www.matthewswong.com/en/blog/prompt-regression-testing-ci-evals/)
- [Sahabat AI: Indonesian LLM Developer Guide and Token Costs](https://www.matthewswong.com/en/blog/sahabat-ai-indonesian-llm-developer-guide/)
- [Deterministic Hooks vs Agent Judgement in Claude Code](https://www.matthewswong.com/en/blog/deterministic-hooks-vs-agent-judgement/)
- [AI Code Review as a CI Merge Gate: What Should Block](https://www.matthewswong.com/en/blog/ai-code-review-merge-gate-ci/)
- [Context Engineering for AI Coding Agents in a Monorepo](https://www.matthewswong.com/en/blog/context-engineering-monorepo-ai-agents/)
- [LLM Token Budget for a Small Engineering Team: Where It Goes](https://www.matthewswong.com/en/blog/llm-token-budget-engineering-team/)
- [Go and TypeScript: Strict Types for AI-Assisted Coding](https://www.matthewswong.com/en/blog/go-typescript-ai-assisted-coding/)
- [Claude Code Advisor Tool: A Second Model at Key Moments](https://www.matthewswong.com/en/blog/claude-code-advisor-tool-second-opinion/)
- [Claude Code Auto Memory: What Claude Remembers and Why](https://www.matthewswong.com/en/blog/claude-code-auto-memory-recall/)
- [Claude Code Fast Mode and Effort Levels: Speed vs Cost](https://www.matthewswong.com/en/blog/claude-code-fast-mode-effort-levels/)
- [Claude Code goal Command: Turns Until a Condition Holds](https://www.matthewswong.com/en/blog/claude-code-goal-command-autonomous-loop/)
- [Claude Code Plugin Dependencies and Version Constraints](https://www.matthewswong.com/en/blog/claude-code-plugin-dependencies-versioning/)
- [Claude Code Plugin Marketplace: Authoring marketplace.json](https://www.matthewswong.com/en/blog/claude-code-plugin-marketplace-authoring/)
- [Claude Code Background Agents: The Supervisor Model](https://www.matthewswong.com/en/blog/claude-code-agent-view-background-sessions/)
- [Claude Code Channels: Push Events Into a Live Session](https://www.matthewswong.com/en/blog/claude-code-channels-external-events/)
- [Claude Code Ultrareview: A Verified Multi-Agent Review](https://www.matthewswong.com/en/blog/claude-code-code-review-ultrareview/)
- [Claude Code in Chrome: Browser Automation From the CLI](https://www.matthewswong.com/en/blog/claude-code-chrome-browser-automation/)
- [Claude Code 1M Context: When It Helps and When It Hurts](https://www.matthewswong.com/en/blog/claude-code-1m-context-window-strategy/)
- [Claude Code Cross-Session Messaging: Sessions That Talk](https://www.matthewswong.com/en/blog/claude-code-cross-session-messaging/)
- [Claude Code Model Config: Aliases, Fallbacks, Effort](https://www.matthewswong.com/en/blog/claude-code-model-config-fallback-picker/)
- [Claude Code Prompt Caching: Tune the TTL, Cut the Bill](https://www.matthewswong.com/en/blog/claude-code-prompt-caching-ttl-tuning/)
- [Claude Code Tool Search: Defer MCP Tools, Save Context](https://www.matthewswong.com/en/blog/claude-code-tool-search-deferred-tools/)
- [Claude Code Agent Teams: Parallel Multi-Agent Workflows](https://www.matthewswong.com/en/blog/claude-code-agent-teams-guide/)
- [Claude Code Dynamic Workflows: Orchestrate 1,000 Agents](https://www.matthewswong.com/en/blog/claude-code-dynamic-workflows-orchestration/)
- [Claude Code Remote Control: Drive Local Sessions Remotely](https://www.matthewswong.com/en/blog/claude-code-remote-control-mobile-sessions/)
- [Claude Code Usage Data: What 400,000 Sessions Reveal](https://www.matthewswong.com/en/blog/claude-code-usage-statistics-research-2026/)
- [Free-Tier Model Fallback Chains for an Autonomous Agent](https://www.matthewswong.com/en/blog/hermes-agent-free-tier-model-fallback-chain/)
- [Autonomous Agent Prompt Design: Tiny Commits That Land](https://www.matthewswong.com/en/blog/hermes-agent-prompt-design-tiny-commits/)
- [Give an Autonomous Coding Agent Memory: KNOWLEDGE + RAG](https://www.matthewswong.com/en/blog/autonomous-agent-knowledge-rag-loop/)
- [Claude Code MCP Server Setup: Scopes, Auth, Tool Budget](https://www.matthewswong.com/en/blog/claude-code-mcp-server-setup-governance/)
- [Claude Code Context Window: Compaction and Token Control](https://www.matthewswong.com/en/blog/claude-code-context-window-compaction/)
- [Claude Code in a Monorepo: Scoped CLAUDE.md and Skills](https://www.matthewswong.com/en/blog/claude-code-monorepo-workflow/)
- [Claude Code Content Pipeline for a Bilingual Next.js Blog](https://www.matthewswong.com/en/blog/claude-code-bilingual-blog-content-pipeline/)
- [Claude Code Hooks: Deterministic Agent Guardrails](https://www.matthewswong.com/en/blog/claude-code-hooks-guardrails-guide/)
- [Claude Code Slash Commands: Automate Your Prompts](https://www.matthewswong.com/en/blog/claude-code-slash-commands-guide/)
- [Claude Code Skills: Author On-Demand Procedures](https://www.matthewswong.com/en/blog/claude-code-skills-authoring-guide/)
- [Claude Code Plan Mode: Ship Fewer Broken PRs](https://www.matthewswong.com/en/blog/claude-code-plan-mode-guide/)
- [How to Write a CLAUDE.md That Improves AI Output](https://www.matthewswong.com/en/blog/writing-claude-md-memory-guide/)
- [Claude Code Checkpointing: Rewind Risky Changes](https://www.matthewswong.com/en/blog/claude-code-checkpointing-rewind-guide/)
- [Claude Code Cost Optimization: Cut Token Spend](https://www.matthewswong.com/en/blog/claude-code-cost-optimization-guide/)
- [Claude Code Output Styles: Custom System Prompts](https://www.matthewswong.com/en/blog/claude-code-output-styles-guide/)
- [AI Writer-Reviewer Pattern for Coding Agents](https://www.matthewswong.com/en/blog/ai-writer-reviewer-agent-pattern/)
- [How to Fix AI Agent Infinite Handoff Loops](https://www.matthewswong.com/en/blog/ai-agent-handoff-loops-fix/)
- [Best Terminal AI Coding Agents in 2026](https://www.matthewswong.com/en/blog/best-terminal-ai-coding-agents-2026/)
- [Claude Code Skills vs Hooks vs Subagents vs MCP](https://www.matthewswong.com/en/blog/claude-code-skills-vs-hooks-vs-subagents/)
- [Claude Code vs Cursor vs Copilot: 2026 Compared](https://www.matthewswong.com/en/blog/claude-code-vs-cursor-vs-copilot/)
- [Fan-Out vs Pipeline: AI Agent Patterns](https://www.matthewswong.com/en/blog/fan-out-vs-pipeline-agent-pattern/)
- [Claude Code Subagents: Setup and Workflow Guide](https://www.matthewswong.com/en/blog/claude-code-subagents-setup-guide/)
- [Best Claude Code Plugins 2026: 62 Agentic Workflow Tools](https://www.matthewswong.com/en/blog/claude-code-plugins-marketplace-guide/)
- [AI Product Description Generator SaaS for Sellers](https://www.matthewswong.com/en/blog/ai-product-description-saas-indonesia/)
- [Agentic Coding Workflow: Best Practices for AI Agents](https://www.matthewswong.com/en/blog/agentic-coding-workflow-best-practices/)
- [AI Agent vs LLM: What Is the Difference?](https://www.matthewswong.com/en/blog/ai-agent-vs-llm-model/)
- [Claude Code vs Codex: Agentic Coding Compared](https://www.matthewswong.com/en/blog/claude-code-vs-codex-agentic-coding/)
- [DeepSeek V4 Flash: Building a Spider-Man Cafe Tracker](https://www.matthewswong.com/en/blog/deepseek-v4-flash-cafe-tracker/)
- [How Claude Code Works: Agentic Coding Explained](https://www.matthewswong.com/en/blog/how-claude-code-works-agentic-coding/)
- [Human-in-the-Loop Design for AI Agents](https://www.matthewswong.com/en/blog/human-in-the-loop-ai-agents/)
- [MCP OAuth: Why Authentication for AI Agents Is Hard](https://www.matthewswong.com/en/blog/mcp-oauth-authentication-hard/)
- [MCP vs Function Calling: How AI Agents Use Tools](https://www.matthewswong.com/en/blog/mcp-vs-function-calling/)
- [Multi-Agent Orchestration: Subagents Explained](https://www.matthewswong.com/en/blog/multi-agent-orchestration-subagents-workflow/)
- [Spec-Driven Development With AI Coding Agents](https://www.matthewswong.com/en/blog/spec-driven-development-ai-agents/)
- [Cloudflare Wallets: Programmable Payments for AI Agents](https://www.matthewswong.com/en/blog/cloudflare-wallets-agentic-payments/)
- [Context Engineering for LLM Agents: Write, Select, Compress](https://www.matthewswong.com/en/blog/context-engineering-llm-agents/)
- [Run Local LLMs with Ollama: Models, API, and Modelfile](https://www.matthewswong.com/en/blog/ollama-run-local-llms/)
- [Vercel AI SDK 5 Guide: Type-Safe Chat, Tools & Agents](https://www.matthewswong.com/en/blog/vercel-ai-sdk-5-guide/)
- [llms.txt Explained: The AI Standard for Website Content](https://www.matthewswong.com/en/blog/llms-txt-ai-website-standard/)
- [LLM Structured Output: JSON Schema That Actually Validates](https://www.matthewswong.com/en/blog/llm-structured-output-json-schema/)
- [LLM Evals in CI: Testing Prompts Like Code](https://www.matthewswong.com/en/blog/llm-evaluation-testing-ci-pipeline/)
- [Building Agents with the Claude Agent SDK](https://www.matthewswong.com/en/blog/claude-agent-sdk-building-agents/)
- [Semantic Caching for LLMs: Cut Cost on Repeat Questions](https://www.matthewswong.com/en/blog/semantic-caching-llm-cost-reduction/)
- [Document Data Extraction with Multimodal LLMs](https://www.matthewswong.com/en/blog/multimodal-llm-document-data-extraction/)
- [Building a Streaming Chatbot with Groq and Next.js](https://www.matthewswong.com/en/blog/groq-nextjs-streaming-chatbot/)
- [Claude Fable 5: What Developers Need to Know](https://www.matthewswong.com/en/blog/claude-fable-5-developers-guide/)
- [LLM Prompt Caching: The Cheapest Cost Optimization You Are Not Using](https://www.matthewswong.com/en/blog/llm-prompt-caching-cost-optimization/)
- [AI Agents in Production: Lessons from a Year of Agentic Workflows](https://www.matthewswong.com/en/blog/ai-agents-production-lessons/)
- [MCP Explained: What the Model Context Protocol Actually Solves](https://www.matthewswong.com/en/blog/mcp-model-context-protocol-explained/)
- [How I Combine Opus 4.7 and Sonnet 4.6 in Claude Code](https://www.matthewswong.com/en/blog/claude-opus-4-7-whats-new/)
- [Hermes AI Agent by Nous Research: Architecture, Self-Learning Loop, and Getting Started](https://www.matthewswong.com/en/blog/hermes-ai-agent-nousresearch-guide/)
- [MCP Authorization with Cerbos: Policy-as-Code for AI Agents](https://www.matthewswong.com/en/blog/mcp-auth-cerbos-authorization/)
- [How I Cut My LLM API Bill by 60% Without Touching Model Quality](https://www.matthewswong.com/en/blog/llm-api-cost-optimization/)
- [AI Agent Workflow Automation in 2025: What Actually Works](https://www.matthewswong.com/en/blog/ai-agent-workflow-automation-2025/)
- [RAG Pipeline Production Lessons: What Nobody Tells You](https://www.matthewswong.com/en/blog/rag-pipeline-production-lessons/)
- [Claude API Tool Use in Production: A Real-World Guide](https://www.matthewswong.com/en/blog/claude-api-tool-use-production/)
- [OpenAI vs Anthropic vs Google Gemini: A Developer's Honest Comparison (2025)](https://www.matthewswong.com/en/blog/openai-vs-anthropic-vs-gemini-developers/)
- [LangChain vs Building Your Own LLM Orchestration: When to Use Each](https://www.matthewswong.com/en/blog/langchain-vs-custom-llm/)
- [AI-Powered Code Review with GitHub Actions: My Setup](https://www.matthewswong.com/en/blog/ai-code-review-github-actions/)
- [pgvector vs Pinecone vs Qdrant: Choosing Your Vector Database in 2025](https://www.matthewswong.com/en/blog/pgvector-vs-pinecone-comparison/)
- [Prompt Engineering for Production: Beyond the Basics](https://www.matthewswong.com/en/blog/prompt-engineering-production/)
- [AI Content Generation Quality Control: What I Learned the Hard Way](https://www.matthewswong.com/en/blog/ai-content-generation-quality/)
- [Prompt Injection Defense: How I Harden AI Systems Against Manipulation](https://www.matthewswong.com/en/blog/ai-prompt-injection-defense/)
- [Building an MCP Server from Scratch: A Practical Developer Guide](https://www.matthewswong.com/en/blog/mcp-server-development-guide/)
- [AI Agent Memory Persistence Patterns: From Volatile to Long-Term](https://www.matthewswong.com/en/blog/ai-agent-memory-persistence-patterns/)
- [Running Local LLMs with Ollama in Production: What I Learned](https://www.matthewswong.com/en/blog/local-llm-ollama-production/)
- [AI Observability: How to Log, Trace, and Monitor LLM Applications](https://www.matthewswong.com/en/blog/ai-observability-llm-logging/)
- [Function Calling Patterns: OpenAI vs Anthropic Tool Use in Production](https://www.matthewswong.com/en/blog/function-calling-openai-anthropic/)

---

- HTML version: https://www.matthewswong.com/en/blog/category/ai/
- Bahasa Indonesia: https://www.matthewswong.com/id/blog/category/ai/
- Site index for agents: https://www.matthewswong.com/llms.txt
- Sitemap: https://www.matthewswong.com/sitemap.xml
- API description (OpenAPI): https://www.matthewswong.com/openapi.json
