Skip to main content

agents performing actions on your SaaS

Project description

StackOne AI SDK

PyPI version GitHub release (latest by date)

StackOne AI provides a unified interface for accessing various SaaS tools through AI-friendly APIs.

Features

  • Unified interface for multiple SaaS tools
  • AI-friendly tool descriptions and parameters
  • Tool Calling: Direct method calling with tool.call() for intuitive usage
  • Glob Pattern Filtering: Advanced tool filtering with patterns like "hris_*" and exclusions "!hris_delete_*"
  • Meta Tools (Beta): Dynamic tool discovery and execution based on natural language queries
  • Integration with popular AI frameworks:
    • OpenAI Functions
    • LangChain Tools
    • CrewAI Tools
    • LangGraph Tool Node

Requirements

  • Python 3.9+ (core SDK functionality)
  • Python 3.10+ (for MCP server and CrewAI examples)

Installation

Basic Installation

pip install stackone-ai

Optional Features

# Install with MCP server support (requires Python 3.10+)
pip install 'stackone-ai[mcp]'

# Install with CrewAI examples (requires Python 3.10+)
pip install 'stackone-ai[examples]'

# Install everything
pip install 'stackone-ai[mcp,examples]'

Quick Start

from stackone_ai import StackOneToolSet

# Initialize with API key
toolset = StackOneToolSet()  # Uses STACKONE_API_KEY env var
# Or explicitly: toolset = StackOneToolSet(api_key="your-api-key")

# Get HRIS-related tools with glob patterns
tools = toolset.get_tools("hris_*", account_id="your-account-id")
# Exclude certain tools with negative patterns
tools = toolset.get_tools(["hris_*", "!hris_delete_*"])

# Use a specific tool with the new call method
employee_tool = tools.get_tool("hris_get_employee")
# Call with keyword arguments
employee = employee_tool.call(id="employee-id")
# Or with traditional execute method
employee = employee_tool.execute({"id": "employee-id"})

Integration Examples

LangChain Integration

StackOne tools work seamlessly with LangChain, enabling powerful AI agent workflows:

from langchain_openai import ChatOpenAI
from stackone_ai import StackOneToolSet

# Initialize StackOne tools
toolset = StackOneToolSet()
tools = toolset.get_tools("hris_*", account_id="your-account-id")

# Convert to LangChain format
langchain_tools = tools.to_langchain()

# Use with LangChain models
model = ChatOpenAI(model="gpt-4o-mini")
model_with_tools = model.bind_tools(langchain_tools)

# Execute AI-driven tool calls
response = model_with_tools.invoke("Get employee information for ID: emp123")

# Handle tool calls
for tool_call in response.tool_calls:
    tool = tools.get_tool(tool_call["name"])
    if tool:
        result = tool.execute(tool_call["args"])
        print(f"Result: {result}")
CrewAI Integration (Python 3.10+)

CrewAI uses LangChain tools natively, making integration seamless:

Note: CrewAI requires Python 3.10+. Install with pip install 'stackone-ai[examples]'

from crewai import Agent, Crew, Task
from stackone_ai import StackOneToolSet

# Get tools and convert to LangChain format
toolset = StackOneToolSet()
tools = toolset.get_tools("hris_*", account_id="your-account-id")
langchain_tools = tools.to_langchain()

# Create CrewAI agent with StackOne tools
agent = Agent(
    role="HR Manager",
    goal="Analyze employee data and generate insights",
    backstory="Expert in HR analytics and employee management",
    tools=langchain_tools,
    llm="gpt-4o-mini"
)

# Define task and execute
task = Task(
    description="Find all employees in the engineering department",
    agent=agent,
    expected_output="List of engineering employees with their details"
)

crew = Crew(agents=[agent], tasks=[task])
result = crew.kickoff()

Meta Tools (Beta)

Meta tools enable dynamic tool discovery and execution without hardcoding tool names:

# Get meta tools for dynamic discovery
tools = toolset.get_tools("hris_*")
meta_tools = tools.meta_tools()

# Search for relevant tools using natural language
filter_tool = meta_tools.get_tool("meta_search_tools")
results = filter_tool.call(query="manage employees", limit=5)

# Execute discovered tools dynamically
execute_tool = meta_tools.get_tool("meta_execute_tool")
result = execute_tool.call(toolName="hris_list_employees", params={"limit": 10})

Examples

For more examples, check out the examples/ directory:

License

Apache 2.0 License

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

stackone_ai-0.3.2.tar.gz (620.8 kB view details)

Uploaded Source

Built Distribution

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

stackone_ai-0.3.2-py3-none-any.whl (136.8 kB view details)

Uploaded Python 3

File details

Details for the file stackone_ai-0.3.2.tar.gz.

File metadata

  • Download URL: stackone_ai-0.3.2.tar.gz
  • Upload date:
  • Size: 620.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.13

File hashes

Hashes for stackone_ai-0.3.2.tar.gz
Algorithm Hash digest
SHA256 3303f6237cdd0c36276c93752e5e0c6ef8100eb3afe40ea544c6410a4fdf2ea6
MD5 0058e1ae6b6e1e66dc778a84270e7c5a
BLAKE2b-256 9fa5300270048997ae966494fe9f910cce35e01b870733c2799cd891ba0a903a

See more details on using hashes here.

File details

Details for the file stackone_ai-0.3.2-py3-none-any.whl.

File metadata

File hashes

Hashes for stackone_ai-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 92a72c37c0e6ef2b4206e695a2a3bbaf9117a158dc8c91bed80ceccaf924d850
MD5 1099fe663c34dfbe45608640b12070e8
BLAKE2b-256 8d903e0d3814ac599933f5c32eecc25c4c1fcc7650bfbb91677f8d42b1050f7d

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