Claude-skill-registry agent

Imported skill agent from langchain

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/agent" ~/.claude/skills/majiayu000-claude-skill-registry-agent && rm -rf "$T"
manifest: skills/data/agent/SKILL.md
source content

import os import sys import argparse from dotenv import load_dotenv from langchain_community.utilities import SQLDatabase from langchain_community.agent_toolkits import SQLDatabaseToolkit from deepagents import create_deep_agent from deepagents.backends import FilesystemBackend from langchain_anthropic import ChatAnthropic from rich.console import Console from rich.panel import Panel

Load environment variables

load_dotenv()

console = Console()

def create_sql_deep_agent(): """Create and return a text-to-SQL Deep Agent"""

# Get base directory
base_dir = os.path.dirname(os.path.abspath(__file__))

# Connect to Chinook database
db_path = os.path.join(base_dir, "chinook.db")
db = SQLDatabase.from_uri(
    f"sqlite:///{db_path}",
    sample_rows_in_table_info=3
)

# Initialize Claude Sonnet 4.5 for toolkit initialization
model = ChatAnthropic(
    model="claude-sonnet-4-5-20250929",
    temperature=0
)

# Create SQL toolkit and get tools
toolkit = SQLDatabaseToolkit(db=db, llm=model)
sql_tools = toolkit.get_tools()

# Create the Deep Agent with all parameters
agent = create_deep_agent(
    model=model,                                  # Claude Sonnet 4.5 with temperature=0
    memory=["./AGENTS.md"],                       # Agent identity and general instructions
    skills=["./skills/"],                         # Specialized workflows (query-writing, schema-exploration)
    tools=sql_tools,                              # SQL database tools
    subagents=[],                                 # No subagents needed
    backend=FilesystemBackend(root_dir=base_dir)  # Persistent file storage
)

return agent

def main(): """Main entry point for the SQL Deep Agent CLI""" parser = argparse.ArgumentParser( description="Text-to-SQL Deep Agent powered by LangChain DeepAgents and Claude Sonnet 4.5", formatter_class=argparse.RawDescriptionHelpFormatter, epilog=""" Examples: python agent.py "What are the top 5 best-selling artists?" python agent.py "Which employee generated the most revenue by country?" python agent.py "How many customers are from Canada?" """ ) parser.add_argument( "question", type=str, help="Natural language question to answer using the Chinook database" )

args = parser.parse_args()

# Display the question
console.print(Panel(
    f"[bold cyan]Question:[/bold cyan] {args.question}",
    border_style="cyan"
))
console.print()

# Create the agent
console.print("[dim]Creating SQL Deep Agent...[/dim]")
agent = create_sql_deep_agent()

# Invoke the agent
console.print("[dim]Processing query...[/dim]\n")

try:
    result = agent.invoke({
        "messages": [{"role": "user", "content": args.question}]
    })

    # Extract and display the final answer
    final_message = result["messages"][-1]
    answer = final_message.content if hasattr(final_message, 'content') else str(final_message)

    console.print(Panel(
        f"[bold green]Answer:[/bold green]\n\n{answer}",
        border_style="green"
    ))

except Exception as e:
    console.print(Panel(
        f"[bold red]Error:[/bold red]\n\n{str(e)}",
        border_style="red"
    ))
    sys.exit(1)

if name == "main": main()