Skip to main content

Anthropic Agent Skills implementation for LangChain

Project description

LangChain Skills Adapter

This package provides an easy way to work with Agent Skills in your LangChain/LangGraph project by treating Skills as any other tool in LangChain, allowing you to easily integrate skills with existing workflows and agents. For developers, Skills work like any other LangChain tool.

alt text

Create SkillTool

SkillTool accepts 2 arguments: directories (required) and description_template (optional).

Supported Directory Structures:

Scenario 1 - Direct skill directory:

skills/
└── pdf/
    └── SKILL.md          # Skill name: "pdf"

Usage: SkillTool(directories="skills/pdf")

Scenario 2 - Parent directory with multiple skills:

.copilot/skills/
├── pdf/
│   └── SKILL.md          # Skill name: "pdf"
├── pptx/
│   └── SKILL.md          # Skill name: "pptx"
└── excel/
    └── SKILL.md          # Skill name: "excel"

Usage: SkillTool(directories=".copilot/skills") # Discovers all three skills

Scenario 3 - Nested skill directories:

skills/
├── documents/
│   ├── pdf/
│   │   └── SKILL.md      # Skill name: "pdf"
│   └── word/
│       └── SKILL.md      # Skill name: "word"
└── data/
    └── csv/
        └── SKILL.md      # Skill name: "csv"

Usage: SkillTool(directories="skills") # Recursively discovers all nested skills

Scenario 4 - Multiple parent directories:

~/.agents/skills/
└── pdf/
    └── SKILL.md          # Skill name: "pdf"

./custom-skills/
└── excel/
    └── SKILL.md          # Skill name: "excel"

Usage: SkillTool(directories=["~/.agents/skills", "./custom-skills"])

from langchain_skills import SkillTool

# Load skills from a directory
skill_tool = SkillTool(directories=".agent/skills/")

Example Usage

from langchain_community.agent_toolkits import FileManagementToolkit
from langchain_community.tools import ShellTool

from langchain_skills import SkillTool

# Load skills from a directory
skill_tool = SkillTool(directories=".agent/skills/")

# Create tools
file_management_toolkit = FileManagementToolkit(root_dir='..').get_tools()
bash_tool = ShellTool()

# Combine all tools
tools = file_management_toolkit + [bash_tool, skill_tool]

agent = create_agent(model, tools)

It is highly recommended to provide FileManagementToolkit and ShellTool, which act as supporting tools in case your skill is not just a SKILL.md file. Even if the skill is a simple single SKILL.md file, it depends on what is actually written in that SKILL.md file. It depends on your use case.

Important:

Since this setup makes use of FileSystemTools and ShellTool, ensure proper security and safety measures. This is not the responsibility of this library.

Inspiration

This work is inspired by Spring AI's SkillTool implementation:
https://github.com/spring-ai-community/spring-ai-agent-utils/blob/main/spring-ai-agent-utils/src/main/java/org/springaicommunity/agent/tools/SkillsTool.java

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

langchain_skills_adapter-0.1.0.tar.gz (481.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

langchain_skills_adapter-0.1.0-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file langchain_skills_adapter-0.1.0.tar.gz.

File metadata

  • Download URL: langchain_skills_adapter-0.1.0.tar.gz
  • Upload date:
  • Size: 481.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for langchain_skills_adapter-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c7fcb7453db44af9e443b447c9d1b5d31b3ad2107d795dcff231d67e14ae5c21
MD5 f4428d812322529a66ba290d1d0b1319
BLAKE2b-256 0ffe1ad8ca1fe3062a53de001c20ed133a904806ddd5f8540b357c068b422a45

See more details on using hashes here.

File details

Details for the file langchain_skills_adapter-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for langchain_skills_adapter-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ec366e0ee42213ddc97abe195aa2b1c0297ba0ec83f027b35b20118bc602716b
MD5 c9ab976f4fab2ed2547997228aa7c9a7
BLAKE2b-256 73812a9930aa0d764b822d69b103b0260bf29bd9d1f68fd79a33ab734f608462

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page