I run 8 AI agents that handle my content operations.
Each agent has specialized skills. My blog agent knows:
- Research trending topics
- Write in my voice
- Optimize for SEO
- Publish to WordPress
- Share on social media
- Track performance
There are 47 total skills across all agents.
What Are AI Agent Skills?
Skills are functions your AI can execute. Without them, your AI is just a chatbot that answers questions and doesn't do anything else.
The Core Skill Types
1. Input Skills (Gathering Information)
read_file()- Read local filessearch_web()- Search Google/webfetch_webpage()- Get webpage contentquery_database()- Get data from DBcall_api()- Get data from APIsread_email()- Check inboxget_analytics()- Fetch performance data
2. Processing Skills (Thinking/Analysis)
analyze_text()- Extract insightssummarize_content()- Condense informationextract_data()- Pull specific infocategorize()- Organize itemsscore_quality()- Rate contentgenerate_ideas()- Brainstormoptimize_seo()- Improve for search
3. Output Skills (Taking Action)
write_file()- Save content locallypublish_post()- Publish to CMSsend_email()- Email peoplepost_social()- Share on social mediaupdate_database()- Store dataschedule_task()- Queue future actionnotify()- Send alerts
How to Build a Custom Skill
Step-by-step process:
-
Define What You Need
- Determine the actions your agent needs to take.
- Decide on the inputs and outputs.
-
Write the Skill Class
Example:
CheckDuplicatePostSkillclass CheckDuplicatePostSkill: name = "check_duplicate_post" description = "Search existing posts for similar topics" parameters = { "topic": "string - the post topic to check", "similarity_threshold": "float - how similar is too similar (0-1)" } def execute(self, topic: str, similarity_threshold: float = 0.8): existing_posts = self.get_all_posts() for post in existing_posts: similarity = self.calculate_similarity(topic, post['title']) if similarity >= similarity_threshold: return { 'status': 'duplicate_found', 'similar_post': post, 'similarity': similarity } return { 'status': 'no_duplicate' } def calculate_similarity(self, text1: str, text2: str): import openai prompt = f""" Compare these two topics: Topic 1: {text1} Topic 2: {text2} Return similarity score 0-1 (1 = identical topics, 0 = completely different) """ response = openai.chat.completions.create( model="gpt-4", messages=[{"role": "user", "content": prompt}] ) score = float(response.choices[0].message.content.strip()) return score def get_all_posts(self): pass
Step 3: Register the Skill with Your Agent
from langchain.agents import initialize_agent, Tool
from langchain_openai import ChatOpenAI
tools = [
Tool(
name=CheckDuplicatePostSkill.name,
description=CheckDuplicatePostSkill.description,
func=CheckDuplicatePostSkill().execute
)
]
agent = initialize_agent(
tools=tools,
llm=ChatOpenAI(model="gpt-4"),
agent="openai-functions",
verbose=True
)
result = agent.run("Check if we've already written about AI agents before")
My Blog Publishing Agent's Skill Stack
My agent has 12 skills:
- Research Skills (4):
search_trends(),analyze_competition(),research_topic(),find_keywords() - Content Skills (4):
check_duplicates(),generate_outline(),write_content(),optimize_seo() - Publishing Skills (4):
create_images(),publish_post(),share_social(),track_performance()
My Blog Agent Workflow
class BlogPublishingAgent(ContentAgent):
def __init__(self):
super().__init__()
self.add_skill(SearchTrendsSkill)
self.add_skill(ResearchTopicSkill)
self.add_skill(CheckDuplicatesSkill)
self.add_skill(GenerateOutlineSkill)
self.add_skill(WriteContentSkill)
self.add_skill(OptimizeSEOSkill)
self.add_skill(CreateImagesSkill)
self.add_skill(PublishPostSkill)
self.add_skill(ShareSocialSkill)
self.add_skill(TrackPerformanceSkill)
def publish_blog_post(self, topic: str = None):
if not topic:
trends = self.skills['search_trends'].execute()
topic = trends['top_topics'][0]
dup_check = self.skills['check_duplicates'].execute(topic)
if dup_check['status'] == 'duplicate_found':
return
research = self.skills['research_topic'].execute(topic)
outline = self.skills['generate_outline'].execute(
topic=topic,
research=research['data']
)
content = self.skills['write_content'].execute(
outline=outline['outline'],
research=research['data']
)
optimized = self.skills['optimize_seo'].execute(
content=content['text'],
keyword=topic
)
image = self.skills['create_images'].execute(
topic=topic,
style="professional"
)
post = self.skills['publish_post'].execute(
title=optimized['title'],
content=optimized['content'],
featured_image=image['url'],
status='publish'
)
self.skills['share_social'].execute(
post_url=post['url'],
platforms=['twitter', 'linkedin']
)
self.skills['track_performance'].execute(
post_id=post['post_id']
)
print(f"✅ Published: {post['url']}")
Best Practices for Building Skills
- Single Responsibility: Each skill does one thing well.
- Clear Error Handling
- Descriptive Metadata
- Idempotent When Possible
- Log Everything
Tools & Frameworks
- LangChain (Free/Open Source)
- AutoGPT
- n8n ($20-50/month)
Real Results
Before skills: 3 hours per blog post
After skills: 15 minutes oversight per post
Impact: 92% time savings, 4x output with no quality loss.
Getting Started This Weekend
Saturday (3 hours):
- Choose agent framework
- Build first 3 skills
Sunday (3 hours):
- Register skills with agent
- Create simple workflow
Week 1: Add more skills
Month 2: Fully autonomous operation
Call To Action
Check out my real AI tools at axon.nepa-ai.com.
