- Notifications
You must be signed in to change notification settings - Fork0
agentsea/skillpacks
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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 awebsite |code base |API |database |application |... then swap in that learned layer the moment you need it.
pip install skillpacks
Create an episode to record agent events
fromskillpacksimportEpisodeepisode=Episode(remote="https://foo.bar")
Take an action
frommllmimportRouter,RoleThreadfromskillpacksimportV1Action,V1EnvStatefromagentdeskimportDesktoprouter=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.parsedaction=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
# approve oneepisode.approve_one(event.id)# approve the event and all actions prior to itepisode.approve_prior(event.id)# approve allepisode.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
fromskillpacksimportActionEventactions=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)
fromskillpacks.modelimportInternVLChatfromskillpacks.runtimeimportKubernetesRuntimeruntime=KubernetesRuntime()model=InternVLChat(runtime=runtime)result=model.train(actions=actions,follow=True,publish=True)
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 onDiscord.
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=postgresDB_NAME=skillsDB_HOST=localhostDB_USER=postgresDB_PASS=abc123