skill_discovery
skill_discovery
¶
Skill discovery -- mine recurring tool sequences from traces.
Classes¶
DiscoveredSkill
dataclass
¶
DiscoveredSkill(name: str, description: str, tool_sequence: List[str], frequency: int, avg_outcome: float, example_inputs: List[str] = list())
A skill discovered from trace analysis.
SkillDiscovery
¶
SkillDiscovery(*, min_frequency: int = 3, min_sequence_length: int = 2, max_sequence_length: int = 4, min_outcome: float = 0.5)
Mine recurring tool sequences from trace data to auto-generate skills.
Analyzes TraceStore data for patterns like: - "web_search -> file_write" (research-then-save) - "file_read -> calculator -> file_write" (read-compute-save)
When a sequence appears >= min_frequency times with positive outcomes, it's surfaced as a DiscoveredSkill that can be registered.
Source code in src/openjarvis/learning/agents/skill_discovery.py
Attributes¶
discovered_skills
property
¶
discovered_skills: List[DiscoveredSkill]
Return the most recently discovered skills.
Functions¶
analyze_traces
¶
analyze_traces(traces: List[Any]) -> List[DiscoveredSkill]
Analyze a list of traces for recurring tool sequences.
| PARAMETER | DESCRIPTION |
|---|---|
traces
|
List of Trace objects (or dicts with 'steps' and 'outcome' keys). Each trace should have steps with 'step_type' and 'tool_name'.
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
List of DiscoveredSkill objects meeting frequency and outcome thresholds.
|
|
Source code in src/openjarvis/learning/agents/skill_discovery.py
to_skill_manifests
¶
Convert discovered skills to TOML-compatible manifest dicts.