schema-exploration
npx skills add https://github.com/langchain-ai/deepagents --skill schema-exploration
Agent 安装分布
Skill 文档
Schema Exploration Skill
When to Use This Skill
Use this skill when you need to:
- Understand the database structure
- Find which tables contain certain types of data
- Discover column names and data types
- Map relationships between tables
- Answer questions like “What tables are available?” or “What columns does the Customer table have?”
Workflow
1. List All Tables
Use sql_db_list_tables tool to see all available tables in the database.
This returns the complete list of tables you can query.
2. Get Schema for Specific Tables
Use sql_db_schema tool with table names to examine:
- Column names – What fields are available
- Data types – INTEGER, TEXT, DATETIME, etc.
- Sample data – 3 example rows to understand content
- Primary keys – Unique identifiers for rows
- Foreign keys – Relationships to other tables
3. Map Relationships
Identify how tables connect:
- Look for columns ending in “Id” (e.g., CustomerId, ArtistId)
- Foreign keys link to primary keys in other tables
- Document parent-child relationships
4. Answer the Question
Provide clear information about:
- Available tables and their purpose
- Column names and what they contain
- How tables relate to each other
- Sample data to illustrate content
Example: “What tables are available?”
Step 1: Use sql_db_list_tables
Response:
The Chinook database has 11 tables:
1. Artist - Music artists
2. Album - Music albums
3. Track - Individual songs
4. Genre - Music genres
5. MediaType - File formats (MP3, AAC, etc.)
6. Playlist - User-created playlists
7. PlaylistTrack - Tracks in playlists
8. Customer - Store customers
9. Employee - Store employees
10. Invoice - Customer purchases
11. InvoiceLine - Individual items in invoices
Example: “What columns does the Customer table have?”
Step 1: Use sql_db_schema with table name “Customer”
Response:
The Customer table has these columns:
- CustomerId (INTEGER) - Primary key, unique customer ID
- FirstName (NVARCHAR) - Customer's first name
- LastName (NVARCHAR) - Customer's last name
- Company (NVARCHAR) - Company name (optional)
- Address, City, State, Country, PostalCode - Location fields
- Phone (NVARCHAR) - Phone number
- Fax (NVARCHAR) - Fax number
- Email (NVARCHAR) - Email address
- SupportRepId (INTEGER) - Foreign key to Employee table
Sample data shows customers like:
- LuÃs Gonçalves from Brazil
- Leonie Köhler from Germany
- François Tremblay from Canada
Example: “How do I find revenue by artist?”
Step 1: Identify tables needed
- Artist (has artist names)
- Album (links artists to tracks)
- Track (links albums to sales)
- InvoiceLine (has sales data)
- Invoice (has revenue totals)
Step 2: Map relationships
Artist (ArtistId)
â 1:many
Album (ArtistId, AlbumId)
â 1:many
Track (AlbumId, TrackId)
â 1:many
InvoiceLine (TrackId, UnitPrice, Quantity)
Response:
To find revenue by artist, you'll need to:
1. Start with the Artist table
2. JOIN to Album on ArtistId
3. JOIN to Track on AlbumId
4. JOIN to InvoiceLine on TrackId
5. SUM the revenue (UnitPrice * Quantity)
6. GROUP BY artist name
This requires the query-writing skill to execute.
Quality Guidelines
For “list tables” questions:
- Show all table names
- Add brief descriptions of what each contains
- Group related tables (e.g., music catalog, transactions, people)
For “describe table” questions:
- List all columns with data types
- Explain what each column contains
- Show sample data for context
- Note primary and foreign keys
- Explain relationships to other tables
For “how do I query X” questions:
- Identify required tables
- Map the JOIN path
- Explain the relationship chain
- Suggest next steps (use query-writing skill)
Common Exploration Patterns
Pattern 1: Find a Table
“Which table has customer information?” â Use list_tables, then describe Customer table
Pattern 2: Understand Structure
“What’s in the Invoice table?” â Use schema tool to show columns and sample data
Pattern 3: Map Relationships
“How are artists connected to sales?” â Trace the foreign key chain: Artist â Album â Track â InvoiceLine â Invoice
Tips
- Table names in Chinook are singular and capitalized (Customer, not customers)
- Foreign keys typically have “Id” suffix and match a table name
- Use sample data to understand what values look like
- When unsure which table to use, list all tables first