Agent skill
pytidb
PyTiDB (pytidb) setup and usage for TiDB from Python. Covers connecting, table modeling (TableModel), CRUD, raw SQL, transactions, vector/full-text/hybrid search, auto-embedding, custom embedding functions, and reference templates/snippets (vector/hybrid/image) plus agent-oriented examples (RAG/memory/text2sql).
Install this agent skill to your Project
npx add-skill https://github.com/pingcap/agent-rules/tree/main/skills/pytidb
SKILL.md
PyTiDB (pytidb)
Use this skill to connect to TiDB from Python via pytidb, define tables, and build search / AI features on top.
When to Use This Skill
- You want a Python ORM-like experience on TiDB via
pytidb(built on SQLAlchemy). - You want vector search / full-text search / hybrid search on TiDB with high-level APIs.
- You want runnable starter templates (scripts + small examples) you can adapt.
Need to provision a TiDB Cloud cluster first? Use tidbx (TiDB X) for cluster lifecycle guidance.
Code Generation Rules (Python)
- Never hardcode credentials; use env vars (
.env) and document required variables. - Prefer
python -m venv .venvand pinned deps for reproducibility. - When editing requirements.txt, do not invent pytidb versions, use an unpinned pytidb by default unless the user explicitly requests it and the version has been verified to exist.
- Keep examples minimal and runnable; avoid framework-specific assumptions unless the user asks.
- Use parameterized SQL for any dynamic value (SQL injection safety).
- For interactive environments, avoid “table already defined” errors (use
extend_existing/open_table/if rows()==0patterns).
Available Guides
Each guide is a self-contained walkthrough with a checklist and phases:
guides/quickstart.md— one-file “connect → create table → insert → vector search”guides/search.md— vector / full-text / hybrid: when to use which, plus gotchasguides/demos.md— examples playbook (vector/hybrid/image)guides/agent-apps.md— agent-ish examples (RAG / memory / text2sql)guides/troubleshooting.md— connection, TLS, embedding, and index/search issuesguides/custom-embedding.md— implement a custom embedding function (example: BGE-M3)
I’ll infer your intent (CRUD vs search vs “agent app”), then point you to the smallest guide and template set that gets you running.
Templates & Scripts
Each template is a complete file you can copy into your project. Choose the smallest one that matches your goal.
Core usage
templates/quickstart.py— minimal end-to-end: connect → create table → insert → vector searchtemplates/crud.py— basic table modeling + CRUD lifecycle (create/truncate/insert/query/update/delete)templates/auto_embedding.py— auto embedding with pluggable providers (env-driven)templates/vector_search.py— vector search example (optional metadata filter + threshold)templates/hybrid_search.py— hybrid search example (FullTextField + vector field) with fused scoring
Image search
templates/image_search.py— image-to-image or text-to-image search (requires multimodal embedding + Pillow)templates/image_search_data_loader.py— loads Oxford Pets dataset into TiDB (used byimage_search.py)
Custom embeddings
templates/custom_embedding_function.py— exampleBaseEmbeddingFunctionimplementation (BGE-M3 via FlagEmbedding)templates/custom_embedding.py— uses the custom embedder with auto embedding + vector search
Agent-ish examples
templates/rag.py— minimal RAG: retrieve via vector search, then generate via local LLM (Ollama via LiteLLM)templates/memory_lib.py— reusable “memory” library (extract facts → store → retrieve)templates/memory.py— CLI memory chat example usingmemory_lib.pytemplates/text2sql.py— interactive Text2SQL (generates SQL via OpenAI; asks before executing)
Scripts
scripts/validate_connection.py— quick connection +SELECT 1smoke test (supports params orDATABASE_URL)
Related Skills
tidbx— provision/manage TiDB Cloud (TiDB X) clusters
Workflow
I will:
- Confirm your TiDB deployment (Cloud Starter vs self-managed) and how you want to connect (params vs
DATABASE_URL). - Help you set env vars, validate the connection, and choose the right path:
- CRUD/table modeling
- vector/full-text/hybrid search (and embedding provider)
- example templates
- Generate the minimal set of files and commands to get you running.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
tidbx-kysely
Set up Kysely with TiDB Cloud (TiDB X), including @tidbcloud/kysely over the TiDB Cloud serverless HTTP driver for serverless or edge environments, plus standard TCP usage. Use for Kysely + TiDB Cloud connection setup, demo snippets, and environment-specific guidance.
tidb-query-tuning
Diagnose and optimize slow TiDB queries using optimizer hints, session variables, join strategy selection, subquery optimization, and index tuning. Use when a query is slow, produces a bad plan, or needs performance guidance on TiDB.
tidbx-javascript-mysqljs
tidbx
Provision TiDB Cloud Serverless clusters and related resources. Use when creating, deleting, or listing clusters/branches, or managing SQL users via the console.
tidb-cloud-zero
Provision a disposable MySQL-compatible database instantly with no auth required. Includes a claim URL to convert Zero instances into regular TiDB Starter instances when the user needs persistence or more quota.
tidbx-javascript-mysql2
Connect to TiDB from JavaScript/Node.js using the mysql2 driver (mysql2/promise). Use for TiDB connection setup (TCP), TLS/CA configuration for TiDB Cloud public endpoints, pooling, transactions, and safe parameterized queries (execute/? placeholders) plus small runnable connection/CRUD templates.
Didn't find tool you were looking for?