Close Menu
    Trending
    • Elon Musk Is Committing to Five More Years as Tesla CEO
    • What the Most Detailed Peer-Reviewed Study on AI in the Classroom Taught Us
    • Smart Caching for Fast LLM Tools — ColdStarts & HotContext, Part 1 | by Zeneil Ambekar | May, 2025
    • Why Your Audience Isn’t Listening Anymore (And What You Can Do About It)
    • I Teach Data Viz with a Bag of Rocks
    • AI strategies from the front lines
    • Introduction To Linear Regression | by Jeet Mukherjee | May, 2025
    • DDN Teams With NVIDIA on AI Data Platform Reference Design
    Finance StarGate
    • Home
    • Artificial Intelligence
    • AI Technology
    • Data Science
    • Machine Learning
    • Finance
    • Passive Income
    Finance StarGate
    Home»Artificial Intelligence»Creating an AI Agent to Write Blog Posts with CrewAI
    Artificial Intelligence

    Creating an AI Agent to Write Blog Posts with CrewAI

    FinanceStarGateBy FinanceStarGateApril 4, 2025No Comments13 Mins Read
    Share Facebook Twitter Pinterest LinkedIn Tumblr Reddit Telegram Email
    Share
    Facebook Twitter LinkedIn Pinterest Email


    I like writing. You might discover that in the event you observe me or my weblog. For that cause, I’m continuously producing new content material and speaking about Information Science and Synthetic Intelligence.

    I found this ardour a few years in the past after I was simply beginning my path in Information Science, studying and evolving my abilities. At the moment, I heard some extra skilled professionals within the space saying {that a} good research method was working towards new abilities and writing about it someplace, instructing no matter you realized.

    As well as, I had simply moved to the US, and no person knew me right here. So I needed to begin someplace, creating my skilled picture on this aggressive market. I bear in mind I talked to my cousin, who’s additionally within the Tech business, and he informed me: write weblog posts about your experiences. Inform folks what you’re doing. And so I did. 

    And I by no means stopped.

    Quick ahead to 2025, now I’ve nearly 200 revealed articles, lots of them with In direction of Information Science, a broadcast E book, and viewers. 

    Writing helped me a lot within the Information Science space.

    Most not too long ago, one in all my pursuits has been the wonderful Pure Language Processing and Giant Language Fashions topics. Studying about how these trendy fashions work is fascinating. 

    That curiosity led me to experiment with Agentic Ai as nicely. So, I realized about CrewAI, a simple and open-source package deal that helps us construct AI brokers in a enjoyable and straightforward method, with little code. I made a decision to check it by making a crew of brokers to put in writing a weblog publish, after which see how that goes.

    On this publish, we are going to learn to create these brokers and make them work collectively to supply a easy weblog publish.

    Let’s do this.

    What’s a Crew?

    A crew of AI brokers is a mix of two or extra brokers, every of them performing a job in direction of a closing purpose.

    On this case research, we are going to create a crew that can work collectively to supply a small weblog publish a couple of given matter that we are going to present.

    Crew of Brokers workflow. Picture by the writer

    The move works like this:

    1. We select a given matter for the brokers to put in writing about.
    2. As soon as the crew is began, it can go to the data base, learn a few of my beforehand written articles, and attempt to mimic my writing model. Then, it generates a set of tips and passes it to the subsequent agent.
    3. Subsequent, the Planner agent takes over and searches the Web on the lookout for good content material concerning the matter. It creates a plan of content material and sends it to the subsequent agent.
    4. The Author agent receives the writing plan and executes it in line with the context and knowledge acquired.
    5. Lastly, the content material is handed to the final agent, the Editor, who evaluations the content material and returns the ultimate doc because the output.

    Within the following part, we are going to see how this may be created.

    Code

    CrewAI is a good Python package deal as a result of it simplifies the code for us. So, let’s start by putting in the 2 wanted packages.

    pip set up crewai crewai-tools

    Subsequent, if you would like, you’ll be able to observe the directions on their Quickstart web page and have a full mission construction created for you with simply a few instructions on a terminal. Mainly, it can set up some dependencies, generate the folder construction instructed for CrewAI tasks, in addition to generate some .yaml and .py recordsdata. 

    I personally want to create these myself, however it’s as much as you. The web page is listed within the References part.

    Folder Construction

    So, right here we go.

    We are going to create these folders:

    And these recordsdata:

    • Within the config folder: create the recordsdata brokers.yaml and duties.yaml
    • Within the data folder, that’s the place I’ll add the recordsdata with my writing model.
    • Within the mission root: create crew.py and predominant.py.
    Folders construction. Picture by the writer.

    Make certain to create the folders with the names talked about, as CrewAI seems for brokers and duties contained in the config folder and for the data base inside a data folder.

    Subsequent, allow us to set our brokers. 

    Brokers

    The brokers are composed of:

    • Title of the agent: writer_style
    • Function: LLMs are good position gamers, so right here you’ll be able to inform them which position to play.
    • Objective: inform the mannequin what the purpose of that agent is.
    • Backstory: Describe the story behind this agent, who it’s, what it does. 
    writer_style:
      position: >
        Writing Fashion Analyst
      purpose: >
        Totally learn the data base and be taught the traits of the crew, 
        akin to tone, model, vocabulary, temper, and grammar.
      backstory: >
        You might be an skilled ghost author who can mimic any writing model.
        You understand how to determine the tone and elegance of the unique author and mimic 
        their writing model.
        Your work is the idea for the Content material Author to put in writing an article on this matter.

    I gained’t bore you with all of the brokers created for this crew. I consider you bought the thought. It’s a set of prompts explaining to every agent what they will do. All of the brokers directions are saved within the brokers.yaml file.

    Consider it as in the event you have been a supervisor hiring folks to create a group. Take into consideration what sorts of execs you would wish, and what abilities are wanted.

    We’d like 4 professionals who will work in direction of the ultimate purpose of manufacturing written content material: (1) a Author Stylist, (2) a Planner, (3) a Author, and (4) an Editor. 

    If you wish to see the setup for them, simply verify the complete code within the GitHub repository.

    Duties

    Now, again to the analogy of the supervisor hiring folks, as soon as we “employed” our whole crew, it’s time to separate the duties. We all know that we need to produce a weblog publish, now we have 4 brokers, however what every of them will do.

    Nicely, that will probably be configured within the file duties.yaml.

    For instance, let me present you the code for the Author agent. As soon as once more, these are the components wanted for the immediate:

    • Title of the duty: write
    • Description: The outline is like telling the skilled the way you need that job to be carried out, identical to we’d inform a brand new rent methods to carry out their new job. Give exact directions to get the perfect consequence doable.
    • Anticipated output: That is how we need to see the output. Discover that I give directions like the scale of the weblog publish, the amount of paragraphs, and different info that helps my agent to offer me the anticipated output. 
    • Agent to carry out it: Right here, we’re indicating the agent who will carry out this job, utilizing the identical title set within the brokers.yaml file.
    • Output file: Now all the time relevant, but when so, that is the argument to make use of. We requested for a markdown file as output.
    write:
      description: >
        1. Use the content material plan to craft a compelling weblog publish on {matter}.
        2. Incorporate search engine marketing key phrases naturally.
        3. Sections/Subtitles are correctly named in an enticing method. Make certain 
        so as to add Introduction, Drawback Assertion, Code, Earlier than You Go, References.
        4. Add a summarizing conclusion - That is the "Earlier than You Go" part.
        5. Proofread for grammatical errors and alignment with the author's model.
        6. Use analogies to make the article extra partaking and sophisticated ideas simpler
        to know.
      expected_output: >
        A well-written weblog publish in markdown format, prepared for publication.
        The article have to be inside a 7 to 12 minutes learn.
        Every part should have no less than 3 paragraphs.
        When writing code, you'll write a snippet of code and clarify what it does. 
        Watch out to not add an enormous snippet at a time. Break it in cheap chunks.
        Within the examples, create a pattern dataset for the code.
        Within the Earlier than You Go part, you'll write a conclusion that's partaking
        and factually correct.
      agent: content_writer
      output_file: blog_post.md

    After the brokers and duties are outlined, it’s time to create our crew move.

    Coding the Crew

    Now we are going to create the file crew.py, the place we are going to translate the beforehand introduced move to Python code.

    We start by importing the wanted modules.

    #Imports
    import os
    from crewai import Agent, Process, Course of, Crew, LLM
    from crewai.mission import CrewBase, agent, crew, job
    from crewai.data.supply.pdf_knowledge_source import PDFKnowledgeSource
    from crewai_tools import SerperDevTool

    We are going to use the fundamental Agent, Process, Crew, Course of and LLM to create our move. PDFKnowledgeSource will assist the primary agent studying my writing model, and SerperDevTool is the software to look the web. For that one, be certain that to get your API key at https://serper.dev/signup.

    A finest apply in software program growth is to maintain your API keys and configuration settings separate out of your code. We’ll use a .env file for this, offering a safe place to retailer these values. Right here’s the command to load them into our surroundings.

    from dotenv import load_dotenv
    load_dotenv()

    Then, we are going to use the PDFKnowledgeSource to point out the Crew the place to seek for the author’s model. By default, that software seems on the data folder of your mission, thus the significance of the title being the identical.

    # Data sources
    
    pdfs = PDFKnowledgeSource(
        file_paths=['article1.pdf',
                    'article2.pdf',
                    'article3.pdf'
                    ]
    )

    Now we will arrange the LLM we need to use for the Crew. It may be any of them. I examined a bunch of them, and people I appreciated probably the most have been qwen-qwq-32b and gpt-4o. In case you select OpenAI’s, you have to an API Key as nicely. For Qwen-QWQ, simply uncomment the code and remark out the OpenAI’s traces.. You want an API key from Groq. 

    # LLMs
    
    llm = LLM(
        # mannequin="groq/qwen-qwq-32b",
        # api_key= os.environ.get("GROQ_API_KEY"),
        mannequin= "gpt-4o",
        api_key= os.environ.get("OPENAI_API_KEY"),
        temperature=0.4
    )

    Now now we have to create a Crew Base, displaying the place CrewAI can discover the brokers and duties configuration recordsdata.

    # Creating the crew: base reveals the place the brokers and duties are outlined
    
    @CrewBase
    class BlogWriter():
        """Crew to put in writing a weblog publish"""
        agents_config = "config/brokers.yaml"
        tasks_config = "config/duties.yaml"

    Brokers Capabilities

    And we’re able to create the code for every agent. They’re composed of a decorator @agent to point out that the next perform is an agent. We then use the category Agent and point out the title of the agent within the config file, the extent of verbosity, being 1 low, 2 excessive. You may also use a Boolean worth, akin to true or false.

    Lastly, we specify if the agent makes use of any software, and what mannequin it can use.

    # Configuring the brokers
        @agent
        def writer_style(self) -> Agent:
            return Agent(
                    config=self.agents_config['writer_style'],
                    verbose=1,
                    knowledge_sources=[pdfs]
                    )
    
        @agent
        def planner(self) -> Agent:
            return Agent(
            config=self.agents_config['planner'],
            verbose=True,
            instruments=[SerperDevTool()],
            llm=llm
            )
    
        @agent
        def content_writer(self) -> Agent:
            return Agent(
            config=self.agents_config['content_writer'],
            verbose=1
            )
    
        @agent
        def editor(self) -> Agent:
            return Agent(
            config=self.agents_config['editor'],
            verbose=1
            )

    Duties Capabilities

    The following step is creating the duties. Equally to the brokers, we are going to create a perform and adorn it with @job. We use the category Process to inherit CrewAI’s functionalities after which level to the duty for use from our duties.yaml file for use for every job created. If any output file is predicted, use the output_file argument.

    # Configuring the duties    
    
        @job
        def model(self) -> Process:
            return Process(
            config=self.tasks_config['mystyle'],
            )
    
        @job
        def plan(self) -> Process:
            return Process(
            config=self.tasks_config['plan'],
            )
    
        @job
        def write(self) -> Process:
            return Process(
            config=self.tasks_config['write'],
            output_file='output/blog_post.md' # That is the file that will probably be include the ultimate weblog publish.
            )
    
        @job
        def edit(self) -> Process:
            return Process(
            config=self.tasks_config['edit']
            )

    Crew

    To connect all the things collectively, we now create a perform and adorn it with the @crew decorator. That perform will line up the brokers and the duties within the order to be carried out, for the reason that course of chosen right here is the best: sequential. In different phrases, all the things runs in sequence, from begin to end.

    @crew
    
        def crew(self) -> Crew:
            """Creates the Weblog Submit crew"""
    
            return Crew(
                brokers= [self.writer_style(), self.planner(), self.content_writer(), self.editor(), self.illustrator()],
                duties= [self.style(), self.plan(), self.write(), self.edit(), self.illustrate()],
                course of=Course of.sequential,
                verbose=True
            )

    Working the Crew

    Working the crew could be very easy. We create the predominant.py file and import the Crew Base BlogWriter created. Then we simply use the features crew().kickoff(inputs) to run it, passing a dictionary with the inputs for use to generate the weblog publish.

    # Script to run the weblog author mission
    
    # Warning management
    import warnings
    warnings.filterwarnings('ignore')
    from crew import BlogWriter
    
    
    def write_blog_post(matter: str):
        # Instantiate the crew
        my_writer = BlogWriter()
        # Run
        consequence = (my_writer
                  .crew()
                  .kickoff(inputs = {
                      'matter': matter
                      })
        )
    
        return consequence
    
    if __name__ == "__main__":
    
        write_blog_post("Value Optimization with Python")

    There it’s. The result’s a pleasant weblog publish created by the LLM. See under.

    Ensuing weblog publish. GIF by the writer.

    That’s so good!

    Earlier than You Go

    Earlier than you go, know that this weblog publish was 100% created by me. This crew I created was an experiment I wished to do to be taught extra about methods to create AI brokers and make them work collectively. And, like I stated, I like writing, so that is one thing I’d have the ability to learn and assess the standard.

    My opinion is that this crew nonetheless didn’t do an excellent job. They have been in a position to full the duties efficiently, however they gave me a really shallow publish and code. I’d not publish this, however no less than it could possibly be a begin, possibly. 

    From right here, I encourage you to be taught extra about CrewAI. I took their free course the place João de Moura, the creator of the package deal, reveals us methods to create completely different sorts of crews. It’s actually fascinating.

    GitHub Repository

    https://github.com/gurezende/Crew_Writer

    About Me

    If you wish to be taught extra about my work, or observe my weblog (it’s actually me!), listed here are my contacts and portfolio.

    https://gustavorsantos.me

    References

    [Quickstart CrewAI](https://docs.crewai.com/quickstart)

    [CrewAI Documentation](https://docs.crewai.com/introduction)

    [GROQ](https://groq.com/)

    [OpenAI](https://openai.com)

    [CrewAI Free Course](https://learn.crewai.com/)



    Source link

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Previous Articleinstall cuML and use it. step 1 | by Xiaokangkang | Apr, 2025
    Next Article Trump Extends TikTok Sale Deadline for 75 Days Again
    FinanceStarGate

    Related Posts

    Artificial Intelligence

    What the Most Detailed Peer-Reviewed Study on AI in the Classroom Taught Us

    May 21, 2025
    Artificial Intelligence

    I Teach Data Viz with a Bag of Rocks

    May 20, 2025
    Artificial Intelligence

    Optimizing Multi-Objective Problems with Desirability Functions

    May 20, 2025
    Add A Comment

    Comments are closed.

    Top Posts

    Designing a new way to optimize complex coordinated systems | MIT News

    April 25, 2025

    JPMorgan’s CEO Doesn’t Care About the Hybrid Work Petition

    February 14, 2025

    Photonic processor could enable ultrafast AI computations with extreme energy efficiency | MIT News

    February 16, 2025

    Help Guide Students to College with a Class 101 Franchise

    April 8, 2025

    Humanoids at Work: Revolution or Workforce Takeover?

    February 10, 2025
    Categories
    • AI Technology
    • Artificial Intelligence
    • Data Science
    • Finance
    • Machine Learning
    • Passive Income
    Most Popular

    How to Make a Data Science Portfolio That Stands Out | by Egor Howell | Feb, 2025

    February 3, 2025

    AI Optimizes Headlines for Maximum Clicks & Shares By Daniel Reitberg – Daniel David Reitberg

    February 26, 2025

    Teen With Cerebral Palsy Starts Business Making $5M a Year

    March 19, 2025
    Our Picks

    Waabi says its virtual robotrucks are realistic enough to prove the real ones are safe

    March 11, 2025

    A Simple Implementation of the Attention Mechanism from Scratch

    April 1, 2025

    Codie Sanchez’s Contrarian Thinking Announces the Appointment of Marc Hustvedt, Former MrBeast President

    February 28, 2025
    Categories
    • AI Technology
    • Artificial Intelligence
    • Data Science
    • Finance
    • Machine Learning
    • Passive Income
    • Privacy Policy
    • Disclaimer
    • Terms and Conditions
    • About us
    • Contact us
    Copyright © 2025 Financestargate.com All Rights Reserved.

    Type above and press Enter to search. Press Esc to cancel.