Skip to main content

Pluggable skills for AI agents

Project description


SkillPacks

Pluggable skillsets for AI agents
Explore the docs »

View Demo · Report Bug · Request Feature

Skillpacks provide a means of fine tuning agents on tools, and the ability to hotswap learned skills at inference time.

Teach a model how to use a website | code base | API | database | application | ...   then swap in that learned layer the moment you need it.

Install

pip install skillpacks

Quick Start

Create an episode to record agent events

from skillpacks import Episode

episode = Episode(remote="https://foo.bar")

Take an action

from mllm import Router, RoleThread
from skillpacks import V1Action
from agentdesk import Desktop

router = Router.from_env()
desktop = Desktop.local()

thread = RoleThread()
msg = f"""
I need to open Google to search, your available action are {desktop.json_schema()}
please return your selection as {V1Action.model_json_schema()}
"""
thread.post(role="user", msg=msg)

response = router.chat(thread, expect=V1Action)
v1action = response.parsed

action = desktop.find_action(name=v1action.name)
result = desktop.use(action, **v1action.parameters)

Record the action in the episode

event = episode.record(
    prompt=response.prompt,
    action=v1action,
    tool=desktop.ref(),
    result=result,
)

Mark actions as approved

# approve one
episode.approve_one(event.id)

# approve the event and all actions prior to it
episode.approve_prior(event.id)

# approve all
episode.approve_all()

Get all approved actions in an episode

episode = Episode.find(id="123")[0]
actions = episode.approved_actions()

Get all approved actions in a namespace

from skillpacks import ActionEvent

actions = ActionEvent.find(namespace="foo", approved=True)

Get all approved actions for a tool

actions = ActionEvent.find(tool=desktop.ref(), approved=True)

Tune a model on the actions (In progress)

from skillpacks.model import InternVLChat
from skillpacks.runtime import KubernetesRuntime

runtime = KubernetesRuntime()
model = InternVLChat(runtime=runtime)

result = model.train(actions=actions, follow=True, publish=True)

Backends

Thread and prompt storage can be backed by:

  • Sqlite
  • Postgresql

Sqlite will be used by default. To use postgres simply configure the env vars:

DB_TYPE=postgres
DB_NAME=skills
DB_HOST=localhost
DB_USER=postgres
DB_PASS=abc123

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

skillpacks-0.1.30.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

skillpacks-0.1.30-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

Details for the file skillpacks-0.1.30.tar.gz.

File metadata

  • Download URL: skillpacks-0.1.30.tar.gz
  • Upload date:
  • Size: 19.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.10.1 Darwin/22.6.0

File hashes

Hashes for skillpacks-0.1.30.tar.gz
Algorithm Hash digest
SHA256 8fc5a2f2950116c74fdc9cae793ad5d9130c23b439a8c364e11ee9e65180dabc
MD5 6278053af2e76460b70ca495913f3f0b
BLAKE2b-256 493a7eca595740588d3ac79312644d8ed9ba450515b7ba272e248aae17a03922

See more details on using hashes here.

File details

Details for the file skillpacks-0.1.30-py3-none-any.whl.

File metadata

  • Download URL: skillpacks-0.1.30-py3-none-any.whl
  • Upload date:
  • Size: 26.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.10.1 Darwin/22.6.0

File hashes

Hashes for skillpacks-0.1.30-py3-none-any.whl
Algorithm Hash digest
SHA256 e60f7a4792b4a1506212af8a8c0536926b2ac4cc140a67b1c07e28fa98b01c0c
MD5 dffcac4d14d1fd9a7ae7b01a7817e474
BLAKE2b-256 d1c7641df4e5f15665f71d9fd78fe9ef7a9863b8380b2f9828a9519f23c622ea

See more details on using hashes here.

Supported by

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