AI?
Agentic AI, originally introduced by Andrew Ng as AI โpartnersโ that autonomously plan, execute, and complete complex tasks, is a new concept emerged from the burst of Generative AI applications. The term has rapidly gained popularity since late July 2025, according to its search volume in Google Trends.
โAgentic AIโ Google search volume over the past 12 months
Despite its recent appearance, the research article from BCG โHow Agentic AI Is Transforming Enterprise Platformsโ indicates that organizations have been actively adopting Agenticโฆ
AI?
Agentic AI, originally introduced by Andrew Ng as AI โpartnersโ that autonomously plan, execute, and complete complex tasks, is a new concept emerged from the burst of Generative AI applications. The term has rapidly gained popularity since late July 2025, according to its search volume in Google Trends.
โAgentic AIโ Google search volume over the past 12 months
Despite its recent appearance, the research article from BCG โHow Agentic AI Is Transforming Enterprise Platformsโ indicates that organizations have been actively adopting Agentic AI workflows to transform their core technology platforms and assist in marketing automation, customer services, workplace productivity etc, leading to 20% to 30% faster workflow cycles.
From LLMs to Multi-Agent Systems
What distinguishes an Agentic AI system from traditional automation systems is its autonomy to plan actions and logic, as long as achieving a specific, predefined objective. As a result, there is less rigid orchestration or predetermined decision-making trajectories governing the Agentโs intermediate steps. โSynergizing Reasoning and Acting in Language Modelsโ is considered the foundational paper that formalizes the early-stage LLM Agent framework โReActโ, consisting of three key elements โ actions, thoughts and observations. If you are interested in more details of how ReAct works, please see my blog post โ6 Common LLM Customization Strategies Briefly Explainedโ.
5. Define Tasks
If an Agent is considered as the employee (โwhoโ) specialised in a domain (e.g. content creation, research), embodied with a persona or characteristics, then Tasks are the actions (โwhatโ) that the employee performs with predefined objectives and output expectations.
In CrewAI, a Task is configured using description, expected_output, and the optional parameter output_file saves the intermediate output as a file. Alternatively, it is also recommended to use a standalone YAML file to provide a cleaner, maintainable way to define Tasks. In the code snippet below, we provide precise instructions for the crew to carry out four tasks and assign them to agents with relevant skillsets. We also save the output of each task in the working folder for the ease of comparing different output versions.
research: research on the market trend of the given topic; assigned to the market researcher.write: write an engaging blog post; assigned to the content creator.refine: refine blog post based for optimal SEO performance; assigned to the marketing specialist.distribute: generate platform-specific messages for distributing on each social media channel; assigned to the marketing specialist.
@task
def research(self) -> Task:
return Task(
description=f'Research the 2025 trends in the {self.topic} area and provide a summary.',
expected_output=f'A summary of the top 3 trending news in {self.topic} with a unique perspective on their significance.',
agent=self.market_researcher()
)
@task
def write(self) -> Task:
return Task(
description=f"Write an engaging blog post about the {self.topic}, based on the research analyst's summary.",
expected_output='A 4-paragraph blog post formatted in markdown with engaging, informative, and accessible content, avoiding complex jargon.',
agent=self.content_creator(),
output_file=f'blog-posts/post-{self.model_name}-{timestamp}.md'
)
@task
def refine(self) -> Task:
return Task(
description="""
Refine the given article draft to be highly SEO optimized for trending keywords.
Include the keywords naturally throughout the text (especially in headings and early paragraphs)
Make the content easy for both search engines and users to understand.
""",
expected_output='A refined 4-paragraph blog post formatted in markdown with engaging and SEO-optimized contents.',
agent=self.marketing_specialist(),
output_file=f'blog-posts/seo_post-{self.model_name}-{timestamp}.md'
)
@task
def distribute(self) -> Task:
return Task(
description="""
Generate three distinct versions of the original blog post description, each tailored for a specific distribution channel:
One version for X (formerly Twitter) โ concise, engaging, and hashtag-optimized.
One version for YouTube post โ suitable for video audience, includes emotive cue and strong call-to-action.
One version for Substack โ slightly longer, informative, focused on newsletter subscribers.
Each description must be optimized for the norms and expectations of the channel, making subtle adjustments to language, length, and formatting.
Output should be in markdown format, with each version separated by a clear divider (---).
Use a short, impactful headline for each version to further increase channel fit.
""",
expected_output='3 versions of descriptions of the original blog post optimized for distribution channel, formatted in markdown, separated by dividers.',
agent=self.marketing_specialist(),
output_file=f'blog-posts/social_media_post-{self.model_name}-{timestamp}.md'
)
The CrewAI output log below shows task execution details, including status, agent assignments, and tool usage.
๐ Crew: crew
โโโ ๐ Task: research (ID: 19968f28-0af7-4e9e-b91f-7a12f87659fe)
โ Assigned to: Market Research Analyst
โ Status: โ
Completed
โ โโโ ๐ง Used Search in a specific website (1)
โโโ ๐ Task: write (ID: 4a5de75f-682e-46eb-960f-43635caa7481)
โ Assigned to: Content Writer
โ Status: โ
Completed
โโโ ๐ Task: refine (ID: fc9fe4f8-7dbb-430d-a9fd-a7f32999b861)
โ **Assigned to: Marketing Specialist**
โ Status: โ
Completed
โ โโโ ๐ง Used Trending Keyword Tool (1)
โโโ ๐ Task: distribute (ID: ed69676a-a6f7-4253-9a2e-7f946bd12fa8)
**Assigned to: Marketing Specialist**
Status: โ
Completed
โโโ ๐ง Used Trending Keyword Tool (2)
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Task Completion โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ Task Completed โ
โ Name: distribute โ
โ Agent: Marketing Specialist โ
โ Tool Args: โ
โ โ
โ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
6. Kick Off the Crew
As the final step in the crew.py script, we orchestrate Tasks, Agents and Tools together to define the crew.
@crew
def crew(self) -> Crew:
return Crew(
agents=self.agents,
tasks=self.tasks,
verbose=True,
planning=True,
)
In the main.py, we instantiate a SocialMediaCrew() object and run the crew by accepting the userโs input for their topic of interest.
# main.py
from social_media_agent.crew import SocialMediaCrew
def run():
# Replace with your inputs, it will automatically interpolate any tasks and agents information
inputs = {
'topic': input('Enter your interested topic: '),
}
SocialMediaCrew(topic=inputs['topic']).crew().kickoff(inputs=inputs)
Now letโs use โAgentic AIโ as an example and here are output files generated by our social media crew after sequentially executing the tasks.
Output from โwriteโ Task

Output from โrefineโ Task

Output from โdistributeโ Task

Take-Home Message
This tutorial demonstrates how to create an Agentic AI system using CrewAI framework. By orchestrating specialized agents with distinct roles and tools, we implement a multi-agent team that is capable of generating optimized content for different social media platforms.
- Environment Setup: Initialize your development environment with necessary dependencies and tools for CrewAI development
- Develop Tools: Develop the foundational tool structure with built-in and custom tool components
- Define Agents: Create specialized agents with clearly defined roles, goals, and backstories. Equip them with relevant tools to support their role.
- Create Tasks: Create tasks with clear descriptions and expected outputs. Assign Agents for task execution.
- Kick Off the Crew: Orchestrate Tasks, Agents and Tools together as a Crew and execute the workflow.