{"id":31603,"date":"2026-02-03T05:10:57","date_gmt":"2026-02-03T13:10:57","guid":{"rendered":"https:\/\/www.pingcap.com\/?p=31603"},"modified":"2026-02-20T06:29:40","modified_gmt":"2026-02-20T14:29:40","slug":"introducing-tidb-skills","status":"publish","type":"post","link":"https:\/\/www.pingcap.com\/ko\/blog\/introducing-tidb-skills\/","title":{"rendered":"Teaching AI Agents to Speak \u201cProduction\u201d SQL: Introducing TiDB Skills"},"content":{"rendered":"<p>AI coding agents are excellent at producing code that &#8220;works on my machine&#8221;. But as every database engineer knows, there is a massive gap between a query that runs in a local Docker container and one that survives in a high-concurrency production environment.<\/p>\n\n\n\n<p>We keep seeing the same issues arise when agents generate SQL based on generic tutorials:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>&#8220;Looks fine&#8221; queries<\/strong> that explode at scale because the plan is wrong (and nobody checked <a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/sql-statement-explain\/\"><code>EXPLAIN<\/code><\/a>.<\/li>\n\n\n\n<li><strong>Insecure connections<\/strong> caused by incomplete TLS verification settings.<\/li>\n\n\n\n<li><strong>Transaction<\/strong><strong> bugs<\/strong> where the app assumes InnoDB-like defaults, but the distributed engine is running in a different mode.<\/li>\n\n\n\n<li><strong>Compatibility pitfalls<\/strong> where features exist in MySQL but behave differently in distributed systems.<\/li>\n<\/ul>\n\n\n\n<p>Most database incidents aren&#8217;t caused by missing syntax; they&#8217;re caused by <strong>missing context<\/strong>.<\/p>\n\n\n\n<p>That is why we are introducing <strong><a href=\"https:\/\/github.com\/pingcap\/agent-rules\">TiDB Skills<\/a><\/strong>, a GitHub repository of machine-readable context that agents (like Claude Code, Cursor, or Codex) can retrieve at write-time to generate safer, production-grade SQL for <strong><a href=\"https:\/\/www.pingcap.com\/ko\/tidb\/cloud\/\">TiDB Cloud<\/a>.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"How_TiDB_Skills_Works\"><\/span>How TiDB Skills Works<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>We packaged these operational &#8220;gotchas&#8221; into small, machine-readable skill folders. This allows agents to reliably look up the right rules at the moment they&#8217;re writing SQL, reviewing a migration, or troubleshooting a production issue.<\/p>\n\n\n\n<p>The repo is structured to allow agents to retrieve <em>only<\/em> the context they need, keeping the prompt window efficient:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"212\" src=\"https:\/\/static.pingcap.com\/files\/2026\/02\/03003552\/tidb-skills.png\" alt=\"\" class=\"wp-image-31610\" srcset=\"https:\/\/static.pingcap.com\/files\/2026\/02\/03003552\/tidb-skills.png 600w, https:\/\/static.pingcap.com\/files\/2026\/02\/03003552\/tidb-skills-300x106.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n\n\n\n<p>The workflow is designed to be simple and invisible to the user:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Select<\/strong>: The agent selects the relevant skill folder (e.g., <code>skills\/tidb-sql<\/code> when generating SQL).<\/li>\n\n\n\n<li><strong>Retrieve<\/strong>: It pulls in only the reference it needs for the specific task (e.g., <code>transactions.md<\/code> when working on multi-step writes).<\/li>\n\n\n\n<li><strong>Apply<\/strong>: It applies the guidance as constraints while generating code, rather than relying on &#8220;best effort&#8221; guesses.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Deep_Dive_The_Gap_Between_%E2%80%9CGeneric%E2%80%9D_and_%E2%80%9CProduction%E2%80%9D\"><\/span>Deep Dive: The Gap Between &#8220;Generic&#8221; and &#8220;Production&#8221;<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>To see the difference this makes, let&#8217;s look at two specific examples where generic SQL generation fails in production.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1<\/strong>. <strong>The Transaction Trap<\/strong><\/h3>\n\n\n\n<p>Without the <code>tidb-sql<\/code> skill, an agent simply writes <code>BEGIN<\/code>, implicitly assuming pessimistic locking. With the skill, the agent is forced to make a conscious choice between modes.<\/p>\n\n\n\n<p><strong>The Rule (from <code>transactions.md<\/code>):<\/strong> &#8220;Prefer <strong>pessimistic<\/strong> when conflicts are common&#8230; Consider <strong>optimistic<\/strong> when write-write conflicts are rare and you can handle commit failures in the app.&#8221;<\/p>\n\n\n\n<p><strong>The Agent&#8217;s Output:<\/strong> By consuming this rule, the agent understands that if it chooses Optimistic mode, it <em>must<\/em> also generate the application-level retry loop. It stops treating <code>COMMIT<\/code> as a guaranteed success.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-- The agent now explicitly declares the mode &#91;cite: 64]\nBEGIN PESSIMISTIC;\n-- ... DML ...\nCOMMIT;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2<\/strong>. <strong>The Primary Key Hotspot<\/strong><\/h3>\n\n\n\n<p>Agents trained on MySQL tutorials love <code>AUTO_INCREMENT<\/code>. In a single-node database, this is fine. In a distributed system, sequentially increasing IDs cause all writes to hit a single region (a &#8220;hotspot&#8221;), killing write performance.<\/p>\n\n\n\n<p><strong>The Rule (from <code>hotspots.md<\/code>):<\/strong> &#8220;Hotspot Avoidance \/ ID Strategy (Medium-High): when and how to use AUTO_RANDOM.&#8221;<\/p>\n\n\n\n<p><strong>The Agent&#8217;s Output:<\/strong> Instead of the generic default, the agent generates a schema optimized for correctness at scale:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE users (\n  -- Agent switches to AUTO_RANDOM for distribution \n  id BIGINT PRIMARY KEY AUTO_RANDOM, \n  email VARCHAR(255) NOT NULL,\n  ...\n);<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_Toolkit_Whats_Included\"><\/span>The Toolkit: What&#8217;s Included<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The guidance is organized around a core SQL skill plus supporting connection and ORM skills. Here is the breakdown of the context we are injecting into the agents.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.<strong> <\/strong>Safety &amp; Correctness (Critical)<\/h3>\n\n\n\n<p>These skills focus on preventing data loss and connection failures:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/docs.pingcap.com\/tidbcloud\/secure-connections-to-serverless-clusters\/?plan=starter#does-tidb-cloud-have-to-configure-tls-to-establish-a-secure-connection\">TLS and Connection Safety<\/a><\/strong>: Enforces strict SSL verification requirements and client configuration patterns to prevent flaky or insecure connections.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/transaction-overview\/\">Transactions and Concurrency<\/a><\/strong>: This is one of the most common pitfalls. The skill clarifies <strong>optimistic vs. pessimistic<\/strong> transactions, how to handle commit failures, and when to use session vs. global knobs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2. Performance &amp; Scale (High Signal)<\/h3>\n\n\n\n<p>Agents often write schema without considering distributed performance. These skills guide them toward scalable patterns:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Hotspot Avoidance \/ ID Strategy<\/strong>: Teaches the agent when and how to use <code>AUTO_RANDOM<\/code> instead of <code>AUTO_INCREMENT<\/code> to avoid write hotspots on primary keys.<\/li>\n\n\n\n<li><strong>Query Plans and Diagnostics<\/strong>: Instructs the agent on how to use <a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/sql-statement-explain\/\"><code>EXPLAIN<\/code><\/a> \uadf8\ub9ac\uace0 <code>EXPLAIN ANALYZE<\/code> to verify performance, and when to refresh statistics.<\/li>\n\n\n\n<li><strong>Compatibility Pitfalls<\/strong>: Flags common constructs that &#8220;work on MySQL but break on TiDB&#8221;.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3. Advanced Features<\/h3>\n\n\n\n<p>We also cover advanced features that require specific DDL or availability checks:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Vector Search<\/strong>: Provides correct patterns for <a href=\"https:\/\/docs.pingcap.com\/tidbcloud\/vector-search-overview\/\"><code>VECTOR<\/code><\/a> types, vector functions, and vector index DDL.<\/li>\n\n\n\n<li><strong>Recovery Playbooks<\/strong>: Syntax for flashback-based recovery workflows, including <a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/sql-statement-flashback-database\/\"><code>FLASHBACK TABLE\/DATABASE<\/code><\/a>.<\/li>\n\n\n\n<li><strong>Full-Text Search<\/strong>: Specific SQL patterns and availability gotchas for TiDB&#8217;s implementation of full-text search.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4. Application Integration (Drivers &amp; ORMs)<\/h3>\n\n\n\n<p>For application integration, we provide specific driver skills that cover pooling, safe parameterization, and TLS wiring. This ensures the &#8220;default Node.js driver&#8221; path is production-safe.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Node.js<\/strong>: <code>tidbx-javascript-mysql2<\/code> for standard pooling\/TLS, and <code>tidbx-javascript-mysqljs<\/code> for legacy codebases.<\/li>\n\n\n\n<li><strong>TypeScript\/ORM<\/strong>: <code>tidbx-kysely<\/code> \uadf8\ub9ac\uace0 <code>tidbx-prisma<\/code> for typed SQL, schema management, and correct <code>DATABASE_URL<\/code> TLS parameters.<\/li>\n\n\n\n<li><strong>Serverless\/Edge<\/strong>: <code>tidbx-serverless-driver<\/code> guidance for HTTP-based connectivity in edge runtimes where TCP is not an option.<\/li>\n\n\n\n<li><strong>Python<\/strong>: <code>pytidb<\/code> guidance for CRUD, vector search, and hybrid search integration.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Install_in_Your_Agent\"><\/span>Install in Your Agent<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The repo is available at <a href=\"https:\/\/github.com\/pingcap\/agent-rules\">pingcap\/agent-rules<\/a>. You can install these skills directly into your agent&#8217;s configuration using Vercel&#8217;s skills package.<\/p>\n\n\n\n<p>Run the following command in your terminal. It will prompt you to choose the skills you want and which agent you are using (Claude Code, Codex, Cursor, etc.):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npx skills add pingcap\/agent-rules<\/code><\/pre>\n\n\n\n<p>Once installed, your agent will automatically pick the right skill at the right time\u2014you usually do not need to think about &#8220;which skill to use&#8221;.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"FAQ\"><\/span>FAQ<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><strong>Q: Does this work for standard MySQL?<\/strong> A: Many skills (like TLS safety, <code>EXPLAIN<\/code> checks, and safe parameterization) are universal best practices for any MySQL environment. However, distributed features like <code>AUTO_RANDOM<\/code> or specific transaction modes are optimized for TiDB and may require adjustment for single-node MySQL.<\/p>\n\n\n\n<p><strong>Q: Do I need to manually trigger these skills?<\/strong> A: No. Once installed via the <code>skills<\/code> CLI, agents like Claude Code or Cursor will automatically detect the context (e.g., when you ask to &#8220;write a schema for TiDB&#8221;) and retrieve the relevant rules before generating code.<\/p>\n\n\n\n<p><strong>Q: Does this replace code review?<\/strong> A: No. Think of TiDB Skills as a &#8220;guardrail&#8221; or a linter that runs <em>during<\/em> generation. It catches common &#8220;junior engineer&#8221; mistakes (like missing TLS or hotspots) early, but production changes should always go through human review.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Wrap_Up\"><\/span>Wrap Up<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>These skills are not a replacement for code review or security policies, but they act as a &#8220;guardrail&#8221; to prevent common foot-guns. They give your AI agents the missing context to warn you early, generate safer defaults, and produce SQL that is likely to survive production.<\/p>\n\n\n\n<p>If you run into a MySQL\/TiDB &#8220;gotcha&#8221; that isn&#8217;t covered yet, <strong><a href=\"https:\/\/github.com\/pingcap\/agent-rules\">open an issue or PR<\/a><\/strong> so the next agent run gets it right by default.<\/p>","protected":false},"excerpt":{"rendered":"<p>AI coding agents are excellent at producing code that &#8220;works on my machine&#8221;. But as every database engineer knows, there is a massive gap between a query that runs in a local Docker container and one that survives in a high-concurrency production environment. We keep seeing the same issues arise when agents generate SQL based [&hellip;]<\/p>\n","protected":false},"author":203,"featured_media":31632,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ub_ctt_via":"","footnotes":""},"categories":[6],"tags":[441,147,157,111],"class_list":["post-31603","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering","tag-agentic-ai","tag-distributed-sql","tag-sql","tag-tidb"],"acf":[],"featured_image_src":"https:\/\/static.pingcap.com\/files\/2026\/02\/03051029\/tidb-skills-3-1-1.png","author_info":{"display_name":"Qizhi Wang","author_link":"https:\/\/www.pingcap.com\/ko\/blog\/author\/qizhi-wang\/"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Production-Grade AI Coding for TiDB | pingcap\/agent-rules<\/title>\n<meta name=\"description\" content=\"Stop &quot;works on my machine&quot; AI errors. Use TiDB Skills to give agents the context needed for scalable, hotspot-free, and secure SQL generation.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/introducing-tidb-skills\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Production-Grade AI Coding for TiDB | pingcap\/agent-rules\" \/>\n<meta property=\"og:description\" content=\"Stop &quot;works on my machine&quot; AI errors. Use TiDB Skills to give agents the context needed for scalable, hotspot-free, and secure SQL generation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pingcap.com\/ko\/blog\/introducing-tidb-skills\/\" \/>\n<meta property=\"og:site_name\" content=\"TiDB\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/pingcap2015\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-03T13:10:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-20T14:29:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/static.pingcap.com\/files\/2026\/02\/03003436\/tidb-skills-2-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"3751\" \/>\n\t<meta property=\"og:image:height\" content=\"1876\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Qizhi Wang\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:site\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Qizhi Wang\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/\"},\"author\":{\"name\":\"Qizhi Wang\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/58795d2dcbbffb6a317ad67d271c4322\"},\"headline\":\"Teaching AI Agents to Speak \u201cProduction\u201d SQL: Introducing TiDB Skills\",\"datePublished\":\"2026-02-03T13:10:57+00:00\",\"dateModified\":\"2026-02-20T14:29:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/\"},\"wordCount\":1065,\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2026\/02\/03051029\/tidb-skills-3-1-1.png\",\"keywords\":[\"Agentic AI\",\"Distributed SQL\",\"SQL\",\"TiDB\"],\"articleSection\":[\"Engineering\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/\",\"url\":\"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/\",\"name\":\"Production-Grade AI Coding for TiDB | pingcap\/agent-rules\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2026\/02\/03051029\/tidb-skills-3-1-1.png\",\"datePublished\":\"2026-02-03T13:10:57+00:00\",\"dateModified\":\"2026-02-20T14:29:40+00:00\",\"description\":\"Stop \\\"works on my machine\\\" AI errors. Use TiDB Skills to give agents the context needed for scalable, hotspot-free, and secure SQL generation.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/#primaryimage\",\"url\":\"https:\/\/static.pingcap.com\/files\/2026\/02\/03051029\/tidb-skills-3-1-1.png\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2026\/02\/03051029\/tidb-skills-3-1-1.png\",\"width\":3751,\"height\":1251},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.pingcap.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Teaching AI Agents to Speak \u201cProduction\u201d SQL: Introducing TiDB Skills\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.pingcap.com\/#website\",\"url\":\"https:\/\/www.pingcap.com\/\",\"name\":\"TiDB\",\"description\":\"TiDB | SQL at Scale\",\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.pingcap.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.pingcap.com\/#organization\",\"name\":\"PingCAP\",\"url\":\"https:\/\/www.pingcap.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png\",\"width\":811,\"height\":232,\"caption\":\"PingCAP\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/facebook.com\/pingcap2015\",\"https:\/\/x.com\/PingCAP\",\"https:\/\/linkedin.com\/company\/pingcap\",\"https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/58795d2dcbbffb6a317ad67d271c4322\",\"name\":\"Qizhi Wang\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg\",\"caption\":\"Qizhi Wang\"},\"description\":\"Principle AI SDE\",\"url\":\"https:\/\/www.pingcap.com\/ko\/blog\/author\/qizhi-wang\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Production-Grade AI Coding for TiDB | pingcap\/agent-rules","description":"Stop \"works on my machine\" AI errors. Use TiDB Skills to give agents the context needed for scalable, hotspot-free, and secure SQL generation.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.pingcap.com\/ko\/blog\/introducing-tidb-skills\/","og_locale":"ko_KR","og_type":"article","og_title":"Production-Grade AI Coding for TiDB | pingcap\/agent-rules","og_description":"Stop \"works on my machine\" AI errors. Use TiDB Skills to give agents the context needed for scalable, hotspot-free, and secure SQL generation.","og_url":"https:\/\/www.pingcap.com\/ko\/blog\/introducing-tidb-skills\/","og_site_name":"TiDB","article_publisher":"https:\/\/facebook.com\/pingcap2015","article_published_time":"2026-02-03T13:10:57+00:00","article_modified_time":"2026-02-20T14:29:40+00:00","og_image":[{"width":3751,"height":1876,"url":"https:\/\/static.pingcap.com\/files\/2026\/02\/03003436\/tidb-skills-2-1.png","type":"image\/png"}],"author":"Qizhi Wang","twitter_card":"summary_large_image","twitter_creator":"@PingCAP","twitter_site":"@PingCAP","twitter_misc":{"Written by":"Qizhi Wang","Est. reading time":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/#article","isPartOf":{"@id":"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/"},"author":{"name":"Qizhi Wang","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/58795d2dcbbffb6a317ad67d271c4322"},"headline":"Teaching AI Agents to Speak \u201cProduction\u201d SQL: Introducing TiDB Skills","datePublished":"2026-02-03T13:10:57+00:00","dateModified":"2026-02-20T14:29:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/"},"wordCount":1065,"publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2026\/02\/03051029\/tidb-skills-3-1-1.png","keywords":["Agentic AI","Distributed SQL","SQL","TiDB"],"articleSection":["Engineering"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/","url":"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/","name":"Production-Grade AI Coding for TiDB | pingcap\/agent-rules","isPartOf":{"@id":"https:\/\/www.pingcap.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/#primaryimage"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2026\/02\/03051029\/tidb-skills-3-1-1.png","datePublished":"2026-02-03T13:10:57+00:00","dateModified":"2026-02-20T14:29:40+00:00","description":"Stop \"works on my machine\" AI errors. Use TiDB Skills to give agents the context needed for scalable, hotspot-free, and secure SQL generation.","breadcrumb":{"@id":"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/#primaryimage","url":"https:\/\/static.pingcap.com\/files\/2026\/02\/03051029\/tidb-skills-3-1-1.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2026\/02\/03051029\/tidb-skills-3-1-1.png","width":3751,"height":1251},{"@type":"BreadcrumbList","@id":"https:\/\/www.pingcap.com\/blog\/introducing-tidb-skills\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pingcap.com\/"},{"@type":"ListItem","position":2,"name":"Teaching AI Agents to Speak \u201cProduction\u201d SQL: Introducing TiDB Skills"}]},{"@type":"WebSite","@id":"https:\/\/www.pingcap.com\/#website","url":"https:\/\/www.pingcap.com\/","name":"\ud2f0DB","description":"TiDB | SQL at Scale","publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.pingcap.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.pingcap.com\/#organization","name":"PingCAP","url":"https:\/\/www.pingcap.com\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/","url":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","width":811,"height":232,"caption":"PingCAP"},"image":{"@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/pingcap2015","https:\/\/x.com\/PingCAP","https:\/\/linkedin.com\/company\/pingcap","https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA"]},{"@type":"Person","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/58795d2dcbbffb6a317ad67d271c4322","name":"Qizhi Wang","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/","url":"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg","contentUrl":"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg","caption":"Qizhi Wang"},"description":"Principle AI SDE","url":"https:\/\/www.pingcap.com\/ko\/blog\/author\/qizhi-wang\/"}]}},"grav_blocks":false,"card_markup":"<a class=\"card-resource bg-white\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/introducing-tidb-skills\/\"><div class=\"card-resource__image-container\"><img class=\"card-resource__image\" alt=\"tidb skills 3-1\" src=\"https:\/\/static.pingcap.com\/files\/2026\/02\/03051029\/tidb-skills-3-1-1.png\" loading=\"lazy\" width=3751 height=1251 \/><\/div><div class=\"card-resource__content-container\"><div class=\"card-resource__content-head\"><div class=\"card-resource__category\">Engineering<\/div><\/div><h5 class=\"card-resource__title\">Teaching AI Agents to Speak \u201cProduction\u201d SQL: Introducing TiDB Skills<\/h5><\/div><\/a>","_links":{"self":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/31603","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/users\/203"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/comments?post=31603"}],"version-history":[{"count":22,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/31603\/revisions"}],"predecessor-version":[{"id":31930,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/31603\/revisions\/31930"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media\/31632"}],"wp:attachment":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media?parent=31603"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/categories?post=31603"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/tags?post=31603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}