Skip to main content

Jentic SDK for the discovery and execution of APIs and workflows

Project description

Jentic SDK [Beta]

Jentic SDK is a comprehensive library for discovery and execution of APIs and workflows.

The Jentic SDK is backed by the data in the Jentic Public API repository.

Core API & Use Cases

The main entry point is the Jentic class.

Quick Start – search → load → execute

import asyncio
from jentic import Jentic, SearchRequest, LoadRequest, ExecutionRequest

async def main():
    client = Jentic()

    # 1️⃣ find a capability
    results = await client.search(SearchRequest(query="send a Discord DM"))
    entity_id = search.results[0].id  # op_... or wf_...

    # 2️⃣ load details (inspect schemas / auth, see inputs for operations)
    resp = await client.load(LoadRequest(ids=[entity_id]))
    inputs = resp.tool_info[entity_id].inputs

    # 3️⃣ run it
    result = await client.execute(
        ExecutionRequest(id=entity_id, inputs={"recipient_id": "123", "content": "Hello!"})
    )
    print(result)

asyncio.run(main())

LLM Tool Definition & Execution

A typical agent loop with tool use looks like this:

from jentic.lib.agent_runtime import AgentToolManager

manager = AgentToolManager(format="anthropic")
llm_tools = manager.generate_tool_definitions()  # pass to your LLM

# --- within your agent loop ---
while response.stop_reason == "tool_use":
    tool_call = next(b for b in response.content if b.type == "tool_use")
    name      = tool_call.name
    inputs    = tool_call.input

    result = await manager.execute_tool(name, inputs)
    # ... handle result ...

Components

agent_runtime

A library for generating, managing, and executing LLM-compatible tools from Arazzo workflows and OpenAPI operations.

Features:

  • Generate dynamic tool definitions for OpenAI and Anthropic LLMs from project workflows and API operations
  • Execute workflows and operations as tools via a unified interface
  • Provide runtime classes for tool management (AgentToolManager), tool specification (LLMToolSpecManager), and execution (TaskExecutor)
  • Return standardized results for workflow and operation execution

api

A client for the Jentic API Knowledge Hub.

Set JENTIC_API_URL to set the base URL for the API hub client for local testing or testing against the development environment.

Installation

For Development

To install the package in development mode:

# From the current directory
pip install -e .

Then you can import it in your projects:

import jentic

You can also import it to other projects by referencing the package directory by specifying the following in your pyproject.toml:

dependencies = [
    "jentic @ file:///path/to/jentic/sdk"
]

For Production

pip install jentic

API Key

See the root README for instructions on creating an agent and exporting your JENTIC_AGENT_API_KEY. Remember to set it in the environment before running any examples.

Testing

# Run unit tests for jentic
pdm run test

# Run integration tests for dev environment
pdm run integration-dev

# Run integration tests for production environment
pdm run integration

Integration Test Configuration

Integration tests require environment variables to be set in environment-specific files. An example file is provided that you need to copy and configure:

# For development testing
cp tests/integration/.env.example tests/integration/.env.dev

# For production testing
cp tests/integration/.env.example tests/integration/.env.prod

After copying, edit these files to include your API credentials and configuration:

  1. For development testing: tests/integration/.env.dev
  2. For production testing: tests/integration/.env.prod

Example configuration:

# Required UUIDs for Discord API testing
DISCORD_GET_MY_USER_OPERATION_UUID="your_operation_uuid_here"
DISCORD_GET_USER_DETAILS_WORKFLOW_UUID="your_workflow_uuid_here"

# Base URL for Jentic API (Uncomment for Dev)
JENTIC_API_URL=https://directory-api.qa1.eu-west-1.jenticdev.net

# Your Discord bot token
DISCORD_BOTTOKEN="your_bot_token_here"

The integration tests validate:

  1. Loading operation and workflow execution information
  2. Executing Discord operations and workflows
  3. Searching API capabilities
  4. Generating LLM tool definitions
  5. Running LLM tools including both operations and workflows

Linting & Formatting

# Run all linting for jentic
pdm run lint

License

Proprietary - Jentic

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

jentic-0.9.3.tar.gz (49.0 kB view details)

Uploaded Source

Built Distribution

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

jentic-0.9.3-py3-none-any.whl (36.1 kB view details)

Uploaded Python 3

File details

Details for the file jentic-0.9.3.tar.gz.

File metadata

  • Download URL: jentic-0.9.3.tar.gz
  • Upload date:
  • Size: 49.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for jentic-0.9.3.tar.gz
Algorithm Hash digest
SHA256 97ec1ea67a32302cf234cf5ee454b19c76e0614c597589d60ae5f4405833ede2
MD5 8c780ff7b77a997a3e45c22c9b71f2f9
BLAKE2b-256 38e31ef740ca2d980ed5a99429e51416e42a5e79d19e3f8cba09229518e65e26

See more details on using hashes here.

Provenance

The following attestation bundles were made for jentic-0.9.3.tar.gz:

Publisher: jentic-sdk-pypi.yaml on jentic/jentic-sdks

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jentic-0.9.3-py3-none-any.whl.

File metadata

  • Download URL: jentic-0.9.3-py3-none-any.whl
  • Upload date:
  • Size: 36.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for jentic-0.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 cb29e249f050b598fe78bf4efb2f5cc8020b555aa9865de48e8ade63382270c6
MD5 16c6901556286d73178109f3666aec9e
BLAKE2b-256 e6f4ce698e40175d80793b409abe6c7a0083ebe185ad31683834c0c40c0e53c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for jentic-0.9.3-py3-none-any.whl:

Publisher: jentic-sdk-pypi.yaml on jentic/jentic-sdks

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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