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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file skillpacks-0.1.22.tar.gz
.
File metadata
- Download URL: skillpacks-0.1.22.tar.gz
- Upload date:
- Size: 18.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.10.1 Darwin/22.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b78b3d894737e78fe917112ad6c5160b1edb7339f1f9706bc04129627503808b |
|
MD5 | 5ee1bfee025cc00d96b3f286aac92ddc |
|
BLAKE2b-256 | ca42d68477f8da24dae35b62ce59b99d5a510e92bf6bd805cc3ac74d6b9fb782 |
File details
Details for the file skillpacks-0.1.22-py3-none-any.whl
.
File metadata
- Download URL: skillpacks-0.1.22-py3-none-any.whl
- Upload date:
- Size: 25.7 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | cee26311be8b59f9dd210844b38ecb7c7aa00761837c97e2db7a017896a74384 |
|
MD5 | 8ab093ad09b1feb95eb9056fa547fa13 |
|
BLAKE2b-256 | eb83f7cf50165a975269337abc2a2d3183569141fce73611fdf1320976dae502 |