Extending Gideon (Skills)
Gideonâs power comes from its Modular Skill System. A skill is a standalone capability that the agent can âlearnâ and use during task execution.
Anatomy of a Skill
Section titled âAnatomy of a SkillâA skill consists of three parts:
- Definition: The metadata that tells the agent what the skill does and what arguments it needs.
- Implementation: The actual TypeScript code that performs the action.
- Validation: Rules for ensuring the skill was executed correctly (Self-Reflection).
Creating Your First Skill
Section titled âCreating Your First Skillâ1. Define the Skill
Section titled â1. Define the SkillâCreate a new file in src/skills/custom-skill.ts:
export const MyCustomSkill = { name: 'analyze_pcap', description: 'Analyzes a PCAP file for suspicious network traffic', parameters: { type: 'object', properties: { filePath: { type: 'string', description: 'Path to the .pcap file' }, }, required: ['filePath'], },
async execute({ filePath }) { // Your implementation here return { status: 'success', data: 'No threats found' }; }};2. Register the Skill
Section titled â2. Register the SkillâExport your skill from the index file in src/skills/index.ts. Gideon will automatically pick it up and present it to the LLM during the planning phase.
Best Practices
Section titled âBest Practicesâ- Be Descriptive: The LLM relies on the
descriptionfield to decide when to use a skill. Be very specific about its use cases. - Defensive Focus: All skills should align with Gideonâs defensive-only mission.
- Return Structured Data: Always return data that the agent can easily parse and summarize for the final report.
- Error Handling: Gideonâs âSelf-Reflectionâ loop can recover from errors if your skill returns descriptive error messages instead of just crashing.