| Crates.io | thulp-skills |
| lib.rs | thulp-skills |
| version | 0.2.0 |
| created_at | 2026-01-15 00:32:07.701709+00 |
| updated_at | 2026-01-15 07:16:02.395247+00 |
| description | Skill composition and execution for thulp |
| homepage | |
| repository | https://github.com/dirmacs/thulp |
| max_upload_size | |
| id | 2044244 |
| size | 117,083 |
Skill composition and execution for thulp.
This crate provides a system for defining and executing complex tool workflows called "skills." Skills are predefined sequences of tool calls that accomplish higher-level tasks by orchestrating multiple tools in a coordinated manner.
use thulp_skills::{Skill, SkillStep, SkillRegistry};
use serde_json::json;
// Create a skill
let skill = Skill::new("search_and_summarize", "Search and summarize results")
.with_input("query")
.with_step(SkillStep {
name: "search".to_string(),
tool: "web_search".to_string(),
arguments: json!({"query": "{{query}}"}),
continue_on_error: false,
})
.with_step(SkillStep {
name: "summarize".to_string(),
tool: "summarize".to_string(),
arguments: json!({"text": "{{search.results}}"}),
continue_on_error: false,
});
// Register skills
let mut registry = SkillRegistry::new();
registry.register(skill);
// Execute skills with a transport
// let result = skill.execute(&transport, &input_args).await?;
A skill consists of:
Each step contains:
Licensed under either of:
at your option.