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, V1EnvState
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(
state=V1EnvState(),
prompt=response.prompt,
action=v1action,
tool=desktop.ref(),
result=result,
)
Mark actions as approved
episode.approve_one(event.id)
episode.approve_prior(event.id)
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)
Integrations
Skillpacks is integrated with:
- MLLM A prompt management, routing, and schema validation library for multimodal LLMs
- Taskara A task management library for AI agents
- Surfkit A platform for AI agents
- Threadmem A thread management library for AI agents
Come join us on Discord.
Backends
Thread and prompt storage can be backed by:
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