Skip to content

03 · First Skill

Tool vs. Skill — the difference in one sentence:

A tool is a single call ("count words"). A skill is a curated bundle of a system prompt, trigger keywords, and a matching tool list — a reusable "recipe".

Prerequisites

Time: 5 minutes End state: A @agent-decorated skill is registered with a defined persona, a tool list, and keyword triggers.


1. The @agent decorator as skill primitive

cognithor.sdk offers @agent as a one-decorator skill definition:

from cognithor.sdk import agent, tool


@tool(name="calculate_gcd", description="Compute the greatest common divisor")
async def calculate_gcd(a: int, b: int) -> int:
    while b:
        a, b = b, a % b
    return a


@agent(
    name="math_helper",
    description="Math skill — computes GCD and other number-theory tasks",
    tools=["calculate_gcd"],
    system_prompt="You are a precise math assistant. Answer tersely.",
    trigger_keywords=["gcd", "greatest common divisor"],
    version="0.1.0",
)
class MathHelperAgent:
    async def on_message(self, message: str) -> str:
        return f"Math-Helper processing: {message}"

Skill core ingredients:

Field Purpose
name Unique ID, discoverable via SDKRegistry
tools Which tools this skill is allowed to call
system_prompt Persona — how the skill thinks and speaks
trigger_keywords When the skill router activates this skill
max_iterations Safety cap on the tool-use loop (default: 5)

2. Discover the skill

from cognithor.sdk.decorators import get_registry

registry = get_registry()
defn = registry.get_agent("math_helper")
print(defn.name, defn.tools, defn.trigger_keywords)
# → math_helper ['calculate_gcd'] ['gcd', 'greatest common divisor']

3. Full example

Create main.py — see examples/quickstart/03_first_skill/main.py.

4. Skill scaffolder

For faster scaffolding:

from cognithor.sdk import scaffold_agent

src = scaffold_agent(
    name="my_skill",
    description="My skill",
    keywords=["hello", "world"],
)
print(src)  # → a complete Python file with @tool + @agent + @hook

The result is a ready-to-run Python file, ready for customization.

5. What's the difference from the Community Skill Marketplace?

The Community Skill Marketplace (cognithor.skills.community.*) is the hosted distribution layer: published, SHA-256-verified skills with publisher trust levels, ratings, and REST API. Anything you build with @agent can later be published there.

The SDK layer (@agent decorator) is the developer entry point: register locally, test locally, optionally publish.


Next: 04 · Guardrails