Tencent/WeKnora · error
skills are not enabled
Error message
skills are not enabled
What it means
Feature-flag guard in Manager.LoadSkill: the Manager was constructed with skills disabled (m.enabled == false), so any skill load request is rejected outright. This is a configuration state, not a lookup failure — the skill may exist but the subsystem is off.
Source
Thrown at internal/agent/skills/manager.go:259
// This is used for system prompt injection (Level 1)
func (m *Manager) GetAllMetadata() []*SkillMetadata {
if !m.enabled {
return nil
}
m.mu.RLock()
defer m.mu.RUnlock()
// Return a copy to prevent external modification
result := make([]*SkillMetadata, len(m.metadataCache))
copy(result, m.metadataCache)
return result
}
// LoadSkill loads the full instructions of a skill (Level 2)
func (m *Manager) LoadSkill(ctx context.Context, skillName string) (*Skill, error) {
if !m.enabled {
return nil, fmt.Errorf("skills are not enabled")
}
// Check if skill is allowed
if !m.isSkillAllowed(skillName) {
return nil, fmt.Errorf("skill not allowed: %s", skillName)
}
return m.resolveSource(skillName).LoadSkillInstructions(skillName)
}
// isSkillAllowed checks if a skill is in the allowed list
func (m *Manager) isSkillAllowed(skillName string) bool {
if len(m.allowedSkills) == 0 {
return true
}
for _, name := range m.allowedSkills {
if name == skillName {
return trueView on GitHub (pinned to 988cbb0330)
Solutions
- Enable skills in the manager/agent configuration if skill support is intended
- Gate the calling feature (e.g. execute_skill) on skill availability before invoking LoadSkill
- Inform the user the skills feature is disabled in this deployment
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at internal/agent/skills/manager.go:259 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Tencent/WeKnora@988cbb0330 (2026-09-02).
Data as JSON: /api/errors/4192af75fa2f4d29.
Report an issue: GitHub.