articom-sdk


Namearticom-sdk JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummarySDK for building and self-hosting skills for the Articom Agentic Marketplace.
upload_time2025-09-03 07:20:38
maintainerNone
docs_urlNone
authorArticom Inc.
requires_python<4.0,>=3.9
licenseMIT
keywords articom ai agent marketplace sdk skills
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# Articom Skills SDK (Python)

This SDK provides the tools to build, test, and serve custom skills for the Articom Agentic Marketplace Platform. It allows developers to create skills that can be self-hosted and made observable to the Articom server.

## Features

-   **Declarative Syntax:** Use simple Python decorators to define skills and their tools.
    
-   **Automatic Schema Generation:** Pydantic models are used for inputs and outputs, which automatically generate the `skill.json` manifest.
    
-   **Built-in Security:** Automatic HMAC signature verification for all incoming requests from the Articom server.
    
-   **Integrated Web Server:** A simple CLI to run a production-ready web server (FastAPI + Uvicorn).
    

## Installation

```
pip install articom-sdk
```

## Quickstart

**1. Create your skill file (e.g., `main.py`):**

```
from pydantic import BaseModel
from articom_sdk import ArticomSkill, Tool

# Define the skill using a decorator
@ArticomSkill(
    name="SupportDeskConnector",
    version="1.0.0",
    author="My Company",
    description="A skill to connect to a generic support desk."
)
class MySkill:

    # Define the input data model for a tool
    class CreateTicketInput(BaseModel):
        customer_email: str
        subject: str
        priority: str

    # Define the output data model
    class CreateTicketOutput(BaseModel):
        ticket_id: str
        status: str

    # Define a tool using a decorator
    @Tool(
        name="create_customer_ticket",
        description="Creates a new support ticket for a customer."
    )
    def create_ticket(self, data: CreateTicketInput) -> CreateTicketOutput:
        """
        This is where your core logic goes.
        Make an API call to your actual support desk system here.
        """
        print(f"Creating ticket for {data.customer_email} with subject '{data.subject}'")
        new_ticket_id = "TICKET-12345"
        return self.CreateTicketOutput(ticket_id=new_ticket_id, status="open")


```

**2. Create a `.env` file for your signing secret:**

```
# .env
ARTICOM_SIGNING_SECRET=your_super_secret_string_from_articom_portal
```

**3. Run your skill server:**

The SDK provides a command-line tool. You just need to point it to your skill file and the class name.

```
poetry run articom serve main:MySkill --port 8000
```

Your skill is now running and ready to be registered with Articom!

**4. Generate the Manifest:**

You can also generate the `skill.json` manifest without running the server. This is useful for CI/CD or validation.

```
poetry run articom generate-manifest main:MySkill
```

This will print the JSON manifest to the console.


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "articom-sdk",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": "articom, ai, agent, marketplace, sdk, skills",
    "author": "Articom Inc.",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/fe/ce/83685a76e5f9236cd42939917d9b905ce28e13bd06a58aa15dc9a62bc5dc/articom_sdk-0.1.1.tar.gz",
    "platform": null,
    "description": "\n# Articom Skills SDK (Python)\n\nThis SDK provides the tools to build, test, and serve custom skills for the Articom Agentic Marketplace Platform. It allows developers to create skills that can be self-hosted and made observable to the Articom server.\n\n## Features\n\n-   **Declarative Syntax:** Use simple Python decorators to define skills and their tools.\n    \n-   **Automatic Schema Generation:** Pydantic models are used for inputs and outputs, which automatically generate the `skill.json` manifest.\n    \n-   **Built-in Security:** Automatic HMAC signature verification for all incoming requests from the Articom server.\n    \n-   **Integrated Web Server:** A simple CLI to run a production-ready web server (FastAPI + Uvicorn).\n    \n\n## Installation\n\n```\npip install articom-sdk\n```\n\n## Quickstart\n\n**1. Create your skill file (e.g., `main.py`):**\n\n```\nfrom pydantic import BaseModel\nfrom articom_sdk import ArticomSkill, Tool\n\n# Define the skill using a decorator\n@ArticomSkill(\n    name=\"SupportDeskConnector\",\n    version=\"1.0.0\",\n    author=\"My Company\",\n    description=\"A skill to connect to a generic support desk.\"\n)\nclass MySkill:\n\n    # Define the input data model for a tool\n    class CreateTicketInput(BaseModel):\n        customer_email: str\n        subject: str\n        priority: str\n\n    # Define the output data model\n    class CreateTicketOutput(BaseModel):\n        ticket_id: str\n        status: str\n\n    # Define a tool using a decorator\n    @Tool(\n        name=\"create_customer_ticket\",\n        description=\"Creates a new support ticket for a customer.\"\n    )\n    def create_ticket(self, data: CreateTicketInput) -> CreateTicketOutput:\n        \"\"\"\n        This is where your core logic goes.\n        Make an API call to your actual support desk system here.\n        \"\"\"\n        print(f\"Creating ticket for {data.customer_email} with subject '{data.subject}'\")\n        new_ticket_id = \"TICKET-12345\"\n        return self.CreateTicketOutput(ticket_id=new_ticket_id, status=\"open\")\n\n\n```\n\n**2. Create a `.env` file for your signing secret:**\n\n```\n# .env\nARTICOM_SIGNING_SECRET=your_super_secret_string_from_articom_portal\n```\n\n**3. Run your skill server:**\n\nThe SDK provides a command-line tool. You just need to point it to your skill file and the class name.\n\n```\npoetry run articom serve main:MySkill --port 8000\n```\n\nYour skill is now running and ready to be registered with Articom!\n\n**4. Generate the Manifest:**\n\nYou can also generate the `skill.json` manifest without running the server. This is useful for CI/CD or validation.\n\n```\npoetry run articom generate-manifest main:MySkill\n```\n\nThis will print the JSON manifest to the console.\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "SDK for building and self-hosting skills for the Articom Agentic Marketplace.",
    "version": "0.1.1",
    "project_urls": {
        "Documentation": "https://github.com/Inforwaves/articom-skill-sdk-python",
        "Homepage": "https://github.com/Inforwaves/articom-skill-sdk-python",
        "Repository": "https://github.com/Inforwaves/articom-skill-sdk-python"
    },
    "split_keywords": [
        "articom",
        " ai",
        " agent",
        " marketplace",
        " sdk",
        " skills"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "26b5b433aff67df07220d83d6b835857df2765a022505079f26f580a2cc128cb",
                "md5": "3d8e5c4bcaca5e94764f7d99d540c582",
                "sha256": "1b9373ab9ecf07e49731f79c5ae65c6d00ba61cd79c355292de538799d7a75d3"
            },
            "downloads": -1,
            "filename": "articom_sdk-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3d8e5c4bcaca5e94764f7d99d540c582",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 8608,
            "upload_time": "2025-09-03T07:20:37",
            "upload_time_iso_8601": "2025-09-03T07:20:37.555445Z",
            "url": "https://files.pythonhosted.org/packages/26/b5/b433aff67df07220d83d6b835857df2765a022505079f26f580a2cc128cb/articom_sdk-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fece83685a76e5f9236cd42939917d9b905ce28e13bd06a58aa15dc9a62bc5dc",
                "md5": "ee6b5042b76e95474e681447ea8ff216",
                "sha256": "fc3789dd635d30eb9f4aadd13e9c112edc76aed73f5e8090446e5286e884a669"
            },
            "downloads": -1,
            "filename": "articom_sdk-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "ee6b5042b76e95474e681447ea8ff216",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 6983,
            "upload_time": "2025-09-03T07:20:38",
            "upload_time_iso_8601": "2025-09-03T07:20:38.806728Z",
            "url": "https://files.pythonhosted.org/packages/fe/ce/83685a76e5f9236cd42939917d9b905ce28e13bd06a58aa15dc9a62bc5dc/articom_sdk-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-03 07:20:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Inforwaves",
    "github_project": "articom-skill-sdk-python",
    "github_not_found": true,
    "lcname": "articom-sdk"
}
        
Elapsed time: 1.01434s