{"id":36602,"date":"2025-04-01T19:09:31","date_gmt":"2025-04-01T13:39:31","guid":{"rendered":"https:\/\/mobisoftinfotech.com\/resources\/?p=36602"},"modified":"2025-10-15T16:38:18","modified_gmt":"2025-10-15T11:08:18","slug":"custom-ai-agent-development-crew-ai-framework","status":"publish","type":"post","link":"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework","title":{"rendered":"Custom AI Agent Development: How To Create AI Agents With Crew AI Agent Framework With Function Calling Support"},"content":{"rendered":"<p>In the last tutorial we saw<strong> <\/strong><a href=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/build-ai-agents-crewai-framework\"><strong>how we can create an AI agent with Crew AI<\/strong><\/a> in pure python code. It&#8217;s advised for the reader to check that tutorial out to understand how Crew AI agents work at the code level.<\/p>\n\n\n\n<p>As your AI agents become more ambitious, you need proper structure to develop custom AI agents. The CrewAI framework offers a CLI utility that allows you to generate the scaffolding to jumpstart the creation of your AI agent. In this tutorial, we will create a simple Math Agent to demonstrate how to create AI agents using CrewAI CLI. Also, while developing custom AI agents, it&#8217;s a common requirement that you need to perform functions that the traditional LLM can\u2019t perform. To solve this, LLMs have introduced a concept of \u201c<a href=\"https:\/\/python.langchain.com\/docs\/concepts\/tool_calling\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Tool Calling<\/strong><\/a>\u201d or \u201c<a href=\"https:\/\/platform.openai.com\/docs\/guides\/function-calling?api-mode=chat\"><strong>Function Calling<\/strong><\/a>\u201d. Function Calling provides LLMs the power to perform tasks beyond just generating textual output. In this blog, we will also create a custom tool that the LLM can use to solve mathematical expressions. For businesses looking to streamline their AI integration, you may want to explore <a href=\"https:\/\/mobisoftinfotech.com\/services\/ai-strategy-consulting\"><strong>AI strategy consulting services<\/strong><\/a>, which can help align your AI efforts with long-term goals.&nbsp;&nbsp;<\/p>\n\n\n\n<p style=\"text-align:left;\"><strong>Note: All the code for this tutorial is present at this <a href=\"https:\/\/github.com\/mobisoftinfotech\/crew-ai-agent-tutorial\" target=\"_blank\" rel=\"noreferrer noopener\">Github<\/a> repo.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Installation<\/strong><\/h2>\n\n\n\n<p>CrewAI requires Python &gt;=3.10 and &lt;3.13. Here\u2019s how to check your version:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\">python3 --version<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><code>CrewAI<\/code> uses UV to manage dependencies. So we need to install UV. On Mac OS or Linux, you can use:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\">curl -LsSf https:\/\/astral.sh\/uv\/install.sh | sh<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Once the uv command is installed, you can use the following command to install the <code>crewai<\/code> CLI.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\">uv tool install crewai<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Now, we can create our project<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\">crewai create crew math-agent<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Select &#8216;OpenAI&#8217; as the provider and choose &#8216;gpt-4o&#8217; as the model. Since we are going to use function calling in this tutorial ,it&#8217;s important to choose a model that has function calling capabilities.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">This should create a directory structure like the following<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\">math_agent\n\u251c\u2500\u2500 README.md\n\u251c\u2500\u2500 knowledge\n\u2502   \u2514\u2500\u2500 user_preference.txt\n\u251c\u2500\u2500 pyproject.toml\n\u251c\u2500\u2500 src\n\u2502   \u2514\u2500\u2500 math_agent\n\u2502       \u251c\u2500\u2500 __init__.py\n\u2502       \u251c\u2500\u2500 config\n\u2502       \u2502   \u251c\u2500\u2500 agents.yaml\n\u2502       \u2502   \u2514\u2500\u2500 tasks.yaml\n\u2502       \u251c\u2500\u2500 crew.py\n\u2502       \u251c\u2500\u2500 main.py\n\u2502       \u2514\u2500\u2500 tools\n\u2502           \u251c\u2500\u2500 __init__.py\n\u2502           \u2514\u2500\u2500 custom_tool.py\n\u2514\u2500\u2500 tests\n\n<span class=\"hljs-number\">7<\/span> directories, <span class=\"hljs-number\">10<\/span> files\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>pyproject.toml<\/strong><br>A standardized configuration file that holds project metadata, dependencies, and build configuration. It\u2019s used by modern Python packaging tools (like uv) to manage your project environment.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Directory <code>src\/math_agent\/<\/code><\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading h4-title\"><strong>config\/<\/strong><\/h4>\n\n\n\n<p>Contains YAML configuration files that define how your AI agents and their tasks behave:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>agents.yaml<\/strong><br>Specifies the configuration for each agent (roles, goals, backstories, LLM settings, etc.). This file lets you customize the personality and behavior of your agents.<\/li>\n\n\n\n<li><strong>tasks.yaml<\/strong><br>Defines the tasks that the agents will perform. It includes descriptions, expected outputs, and assigns tasks to specific agents. This helps set the workflow for your project.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading h4-title\"><strong>crew.py<\/strong><\/h4>\n\n\n\n<p>Contains the core logic that assembles the crew. Here you define how agents and tasks are orchestrated, including the process (e.g., sequential or parallel) and any custom logic or tool integration.<\/p>\n\n\n\n<h4 class=\"wp-block-heading h4-title\"><strong>main.py<\/strong><\/h4>\n\n\n\n<p>Acts as the entry point to run your project. It typically sets up necessary inputs (like user-defined variables), initializes the crew defined in crew.py, and kicks off the execution process.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong><strong>Tools Directory in Building AI Agents (src\/math_agent\/tools\/)<\/strong><\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading h4-title\"><strong>__init__.py<\/strong><\/h4>\n\n\n\n<p>Marks the tools folder as a Python package, enabling you to import your custom tools into your crew logic.<\/p>\n\n\n\n<h4 class=\"wp-block-heading h4-title\"><strong>custom_tool.py<\/strong><\/h4>\n\n\n\n<p>A placeholder file where you can implement custom tools. These tools extend the functionality of your agents by providing specialized operations or integrations not available in the core framework.<\/p>\n\n\n\n<p>For instance, if you need a conversational AI to handle SQL queries or interact with databases, you can integrate a SQL AI agent. You can dive deeper into how to implement SQL AI agent in this<a href=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/conversational-analytics-sql-ai-agent-database\"> Conversational Analytics Tutorial: How to Implement SQL AI Agent that Speaks Database<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/mobisoftinfotech.com\/services\/ai-strategy-consulting?utm_source=blog&amp;utm_medium=referral&amp;utm_campaign=custom-ai-agent-development-crew-ai-framework-cta1 \"><noscript><img decoding=\"async\" width=\"855\" height=\"363\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/business-ready-ai-agents-crew-ai.png\" alt=\"Proven framework for business-ready AI agents with Crew AI\" class=\"wp-image-36649\" title=\"Discover the Proven Framework for Business-Ready AI Agents\"><\/noscript><img decoding=\"async\" width=\"855\" height=\"363\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20363%22%3E%3C%2Fsvg%3E\" alt=\"Proven framework for business-ready AI agents with Crew AI\" class=\"wp-image-36649 lazyload\" title=\"Discover the Proven Framework for Business-Ready AI Agents\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/business-ready-ai-agents-crew-ai.png\"><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong><strong>Let&#8217;s Build Custom AI Agent!<\/strong><\/strong><\/h2>\n\n\n\n<p>Open the <code>math_agent\/src\/math_agent\/config\/agents.yaml<\/code> and replace its code with the following:&nbsp;<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\">math_expert:\n  role: &gt;\n    Math Expert\n  goal: &gt;\n    Solve math problems\n  backstory: &gt;\n    Yo<span class=\"hljs-string\">u're a math expert with a knack for solving math problems. \n    When the user asks you to solve a math problem, you should use the math_tool to solve the problem.<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Here, as you can see, it&#8217;s important to give precise instructions so that the LLM will understand those clearly.<\/p>\n\n\n\n<p>Next Open <code>math_agent\/src\/math_agent\/config\/tasks.yaml<\/code> and replace its code with the following:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\">math_task:\n  description: &gt;\n    Solve the math problem {problem}\n    Make sure to use the math_tool to solve the problem\n    Before passing the problem to the math_tool, make sure to convert the problem <span class=\"hljs-keyword\">in<\/span> normal english to a pure mathematical expression.\n    For example:\n    <span class=\"hljs-string\">\"What is the sum of 2 and 2?\"<\/span> should be converted to <span class=\"hljs-string\">\"2 + 2\"<\/span>\n    <span class=\"hljs-string\">\"What is the product of 2 and 2?\"<\/span> should be converted to <span class=\"hljs-string\">\"2 * 2\"<\/span>\n    <span class=\"hljs-string\">\"What is the difference between 4 and 2?\"<\/span> should be converted to <span class=\"hljs-string\">\"4 - 2\"<\/span>\n    <span class=\"hljs-string\">\"What is the quotient of 4 and 2?\"<\/span> should be converted to <span class=\"hljs-string\">\"4 \/ 2\"<\/span>\n  expected_output: &gt;\n    The solution to the problem {problem}\n  agent: math_expert\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>It&#8217;s very important to be precise in your task description. Also make sure to give examples wherever possible.&nbsp;<\/p>\n\n\n\n<p>Next, open <code>math_agent\/src\/math_agent\/tools\/custom_tool.py<\/code> and replace its code with the following:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\"><span class=\"hljs-keyword\">from<\/span> crewai.tools <span class=\"hljs-keyword\">import<\/span> tool\n\n<span class=\"hljs-meta\">@tool(\"math_tool\")<\/span>\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">math_tool<\/span><span class=\"hljs-params\">(problem: str)<\/span> -&gt; str:<\/span>\n    <span class=\"hljs-string\">\"\"\"This tool is used to solve math problems.\"\"\"<\/span>\n    <span class=\"hljs-keyword\">return<\/span> eval(problem)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Here the main thing to note is the `<code>@tool(\"math_tool\")<\/code>` decorator which registers the following function as a tool with the identifier &#8220;<code>math_tool<\/code>&#8220;. This means that within the CrewAI ecosystem, this function can be dynamically discovered and invoked by agents as a utility to solve math problems.<\/p>\n\n\n\n<p><strong>Note: Here for the sake of keeping the code simple, we are directly using &#8220;eval&#8221; on LLM generated expressions from the user input. This is not safe in production. Make sure to add proper safeguards for production situations by properly considering the threat vectors.&nbsp;<\/strong><\/p>\n\n\n\n<p>For more information on how AI is being applied to solve complex business problems, check out<a href=\"https:\/\/mobisoftinfotech.com\/services\/artificial-intelligence\"> Artificial Intelligence consulting<\/a> Services.<\/p>\n\n\n\n<p>Next, let&#8217;s put this all together as a crew. Open the <code>math_agent\/src\/math_agent\/crew.py<\/code> file and add the following code:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\"><span class=\"hljs-keyword\">from<\/span> crewai <span class=\"hljs-keyword\">import<\/span> Agent, Crew, Process, Task\n<span class=\"hljs-keyword\">from<\/span> crewai.project <span class=\"hljs-keyword\">import<\/span> CrewBase, agent, crew, task\n<span class=\"hljs-keyword\">from<\/span> math_agent.tools.custom_tool <span class=\"hljs-keyword\">import<\/span> math_tool\n\n<span class=\"hljs-meta\">@CrewBase<\/span>\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">MathAgent<\/span><span class=\"hljs-params\">()<\/span>:<\/span>\n\t<span class=\"hljs-string\">\"\"\"MathAgent crew\"\"\"<\/span>\n\n\tagents_config = <span class=\"hljs-string\">'config\/agents.yaml'<\/span>\n\ttasks_config = <span class=\"hljs-string\">'config\/tasks.yaml'<\/span>\n\n<span class=\"hljs-meta\">\t@agent<\/span>\n\t<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">math_expert<\/span><span class=\"hljs-params\">(self)<\/span> -&gt; Agent:<\/span>\n\t\tconfig = self.agents_config&#091;<span class=\"hljs-string\">'math_expert'<\/span>]\n\t\tconfig&#091;<span class=\"hljs-string\">'tools'<\/span>] = &#091;math_tool]\n\t\t<span class=\"hljs-keyword\">return<\/span> Agent(\n\t\t\tconfig=config,\n\t\t\tverbose=<span class=\"hljs-literal\">True<\/span>\n\t\t)\n\n<span class=\"hljs-meta\">\t@task<\/span>\n\t<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">math_task<\/span><span class=\"hljs-params\">(self)<\/span> -&gt; Task:<\/span>\n\t\tconfig = self.tasks_config&#091;<span class=\"hljs-string\">'math_task'<\/span>]\n\t\tconfig&#091;<span class=\"hljs-string\">'tools'<\/span>] = &#091;math_tool]\n\t\t<span class=\"hljs-keyword\">return<\/span> Task(\n\t\t\tconfig=config,\n\t\t)\n\n<span class=\"hljs-meta\">\t@crew<\/span>\n\t<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">crew<\/span><span class=\"hljs-params\">(self)<\/span> -&gt; Crew:<\/span>\n\t\t<span class=\"hljs-string\">\"\"\"Creates the MathAgent crew\"\"\"<\/span>\n\n\t\t<span class=\"hljs-keyword\">return<\/span> Crew(\n\t\t\tagents=self.agents,\n\t\t\ttasks=self.tasks, \n\t\t\tprocess=Process.sequential,\n\t\t\tverbose=<span class=\"hljs-literal\">True<\/span>,\n\t\t)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Let me explain the code block by block.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\">agents_config = <span class=\"hljs-string\">'config\/agents.yaml'<\/span>\ntasks_config = <span class=\"hljs-string\">'config\/tasks.yaml'<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Here, we are creating 2 instance variables to point to the YAML config files shown earlier.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\"><span class=\"hljs-meta\">@agent<\/span>\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">math_expert<\/span><span class=\"hljs-params\">(self)<\/span> -&gt; Agent:<\/span>\n     config = self.agents_config&#091;<span class=\"hljs-string\">'math_expert'<\/span>]\n     config&#091;<span class=\"hljs-string\">'tools'<\/span>] = &#091;math_tool]\n     <span class=\"hljs-keyword\">return<\/span> Agent(\n            config=config,\n            verbose=<span class=\"hljs-literal\">True<\/span>\n     )<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Here we load the config for the `math_expert` and give the math_tool access to it.&nbsp;<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\"><span class=\"hljs-meta\">@task<\/span>\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">math_task<\/span><span class=\"hljs-params\">(self)<\/span> -&gt; Task:<\/span>\n\tconfig = self.tasks_config&#091;<span class=\"hljs-string\">'math_task'<\/span>]\n\tconfig&#091;<span class=\"hljs-string\">'tools'<\/span>] = &#091;math_tool]\n\t<span class=\"hljs-keyword\">return<\/span> Task(\n\t\tconfig=config,\n\t)\n\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Then we load the config for the <code>math_task<\/code> and give the <code>math_tool<\/code> access to it.&nbsp;<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\"><span class=\"hljs-meta\">@crew<\/span>\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">crew<\/span><span class=\"hljs-params\">(self)<\/span> -&gt; Crew:<\/span>\n\t  <span class=\"hljs-string\">\"\"\"Creates the MathAgent crew\"\"\"<\/span>\n\n\t  <span class=\"hljs-keyword\">return<\/span> Crew(\n\t\t\tagents=self.agents,\n\t\t\ttasks=self.tasks, \n\t\t\tprocess=Process.sequential,\n\t\t\tverbose=<span class=\"hljs-literal\">True<\/span>,\n\t\t)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Here we are assembling our crew. Now let&#8217;s create the main file to run the agent: <code>math_agent\/src\/math_agent\/main.py<\/code><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\"><span class=\"hljs-comment\">#!\/usr\/bin\/env python<\/span>\n<span class=\"hljs-keyword\">import<\/span> warnings\n\n<span class=\"hljs-keyword\">from<\/span> math_agent.crew <span class=\"hljs-keyword\">import<\/span> MathAgent\n\nwarnings.filterwarnings(<span class=\"hljs-string\">\"ignore\"<\/span>, category=SyntaxWarning, module=<span class=\"hljs-string\">\"pysbd\"<\/span>)\n\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">run<\/span><span class=\"hljs-params\">()<\/span>:<\/span>\n    <span class=\"hljs-string\">\"\"\"\n    Run the crew.\n    \"\"\"<\/span>\n    inputs = {\n        <span class=\"hljs-string\">'problem'<\/span>: <span class=\"hljs-string\">'What is the sum of 3 and 5?'<\/span>,\n    }\n    \n    <span class=\"hljs-keyword\">try<\/span>:\n        MathAgent().crew().kickoff(inputs=inputs)\n    <span class=\"hljs-keyword\">except<\/span> Exception <span class=\"hljs-keyword\">as<\/span> e:\n        <span class=\"hljs-keyword\">raise<\/span> Exception(<span class=\"hljs-string\">f\"An error occurred while running the crew: <span class=\"hljs-subst\">{e}<\/span>\"<\/span>)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Here the <code>run()<\/code> method is being used to create an instance of our <code>MathCrew<\/code> and to start it. We pass our math question in the <code>input<\/code> dict as <code>problem<\/code>.&nbsp;<\/p>\n\n\n\n<p>To run the code type in terminal:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\">crewai run&nbsp;&nbsp;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This should run your AI agent. It will print some debugging information. Somewhere there you should see something like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\"><span class=\"hljs-comment\"># Agent: Math Expert<\/span>\n<span class=\"hljs-comment\">## Final Answer: <\/span>\nThe solution to the problem What <span class=\"hljs-keyword\">is<\/span> the sum of <span class=\"hljs-number\">3<\/span> <span class=\"hljs-keyword\">and<\/span> <span class=\"hljs-number\">5<\/span>? <span class=\"hljs-keyword\">is<\/span> <span class=\"hljs-number\">8.<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p>In this tutorial, we explored how to leverage the Crew AI framework to building AI agents capable of solving mathematical problems. By utilizing the Crew AI CLI, we created a well-organized project structure that not only simplifies the development process but also enhances the maintainability of our AI agents as they grow in complexity.<\/p>\n\n\n\n<p>We also introduced the concept of &#8220;Tool Calling,&#8221; which empowers our custom AI agents to perform tasks that go beyond mere text generation. By implementing a custom tool for mathematical operations, we demonstrated how to extend the capabilities of our AI agents, making them more functional and versatile.<\/p>\n\n\n\n<p>As we continue exploring the potential of AI, whether for mathematical problem-solving or more advanced applications, remember that AI is constantly evolving<\/p>\n\n\n\n<p>If you&#8217;re ready to take the next step in implementing AI solutions for your business or project, Mobisoft Infotech offers<a href=\"https:\/\/mobisoftinfotech.com\/services\/ai-strategy-consulting\"> <strong>AI strategy consulting services<\/strong><\/a> to help you craft a tailored AI strategy that aligns with your specific needs and goals. Our team is dedicated to helping you unlock the true potential of AI and drive impactful results for your business.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/mobisoftinfotech.com\/contact-us?utm_source=blog&amp;utm_medium=referral&amp;utm_campaign=custom-ai-agent-development-crew-ai-framework-cta2\"><noscript><img decoding=\"async\" width=\"855\" height=\"363\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/build-ai-agents-understand-domain-specific-challenges.png\" alt=\"Build AI agents that solve domain-specific challenges with Crew AI\" class=\"wp-image-36648\" title=\"Create AI Agents That Understand Domain-Specific Challenge\"><\/noscript><img decoding=\"async\" width=\"855\" height=\"363\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20363%22%3E%3C%2Fsvg%3E\" alt=\"Build AI agents that solve domain-specific challenges with Crew AI\" class=\"wp-image-36648 lazyload\" title=\"Create AI Agents That Understand Domain-Specific Challenge\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/build-ai-agents-understand-domain-specific-challenges.png\"><\/a><\/figure>\n\n\n<div class=\"related-posts-section\"><h2>Related Posts<\/h2><ul class=\"related-posts-list\"><li><a href=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/build-ai-agents-crewai-framework\">AI Agent Framework Tutorial: Building AI Agents using CrewAI<\/a><\/li><li><a href=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/conversational-analytics-sql-ai-agent-database\">Conversational Analytics Tutorial: How to Implement SQL AI Agent that Speaks Database<\/a><\/li><li><a href=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/cloud-vs-dedicated-gpu-hosting-providers\">Cloud vs. Dedicated GPU Hosting: Top Providers Reviewed for AI &amp; ML Projects<\/a><\/li><li><a href=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/ai-customer-support-automation-guide-faqs-chatbots\">AI in Customer Support: The Complete Guide to Automation from FAQs to Chatbots<\/a><\/li><\/ul><\/div>\n\n\n<div class=\"modern-author-card\">\n    <div class=\"author-card-content\">\n        <div class=\"author-info-section\">\n            <div class=\"author-avatar\">\n                <noscript><img decoding=\"async\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2022\/04\/Pritam1.jpg\" alt=\"Pritam Barhate\"><\/noscript><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" alt=\"Pritam Barhate\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2022\/04\/Pritam1.jpg\" class=\" lazyload\">\n            <\/div>\n            <div class=\"author-details\">\n                <h3 class=\"author-name\">Pritam Barhate<\/h3>\n                <p class=\"author-title\">Head of Technology Innovation<\/p>\n                <a href=\"javascript:void(0);\" class=\"read-more-link read-more-btn\" onclick=\"toggleAuthorBio(this); return false;\">Read more <noscript><img decoding=\"async\" src=\"\/assets\/images\/blog\/Vector.png\" alt=\"expand\" class=\"read-more-arrow down-arrow\"><\/noscript><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" alt=\"expand\" class=\"read-more-arrow down-arrow lazyload\" data-src=\"\/assets\/images\/blog\/Vector.png\"><\/a>\n                <div class=\"author-bio-expanded\">\n                    <p>Pritam Barhate, with an experience of 14+ years in technology, heads Technology Innovation at <a href=\"https:\/\/mobisoftinfotech.com\" target=\"_blank\" rel=\"noopener\">Mobisoft Infotech<\/a>. He has a rich experience in design and development. He has been a consultant for a variety of industries and startups. At Mobisoft Infotech, he primarily focuses on technology resources and develops the most advanced solutions.<\/p>\n                    <div class=\"author-social-links\">\n                        <div class=\"social-icon\">\n                            <a href=\"https:\/\/www.linkedin.com\/in\/pritam-barhate-90b93414\/\" target=\"_blank\" rel=\"nofollow noopener\"><i class=\"icon-sprite linkedin\"><\/i><\/a>\n                            <a href=\"https:\/\/twitter.com\/pritambarhate\" target=\"_blank\" rel=\"nofollow noopener\"><i class=\"icon-sprite twitter\"><\/i><\/a>\n                        <\/div>\n                    <\/div>\n                    <a href=\"javascript:void(0);\" class=\"read-more-link read-less-btn\" onclick=\"toggleAuthorBio(this); return false;\" style=\"display: none;\">Read less <noscript><img decoding=\"async\" src=\"\/assets\/images\/blog\/Vector.png\" alt=\"collapse\" class=\"read-more-arrow up-arrow\"><\/noscript><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" alt=\"collapse\" class=\"read-more-arrow up-arrow lazyload\" data-src=\"\/assets\/images\/blog\/Vector.png\"><\/a>\n                <\/div>\n            <\/div>\n        <\/div>\n        <div class=\"share-section\">\n            <span class=\"share-label\">Share Article<\/span>\n            <div class=\"social-share-buttons\">\n                <a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fmobisoftinfotech.com%2Fresources%2Fblog%2Fai-machine-learning%2Fcustom-ai-agent-development-crew-ai-framework\" target=\"_blank\" class=\"share-btn facebook-share\"><i class=\"fa fa-facebook-f\"><\/i><\/a>\n                <a href=\"https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=https%3A%2F%2Fmobisoftinfotech.com%2Fresources%2Fblog%2Fai-machine-learning%2Fcustom-ai-agent-development-crew-ai-framework\" target=\"_blank\" class=\"share-btn linkedin-share\"><i class=\"fa fa-linkedin\"><\/i><\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n\n<style>\nh4.wp-block-heading.h4-title {\n    position: relative;\n    padding-left: 20px;\n}\n\nh4.wp-block-heading.h4-title:before {\n    content: '';\n    width: 9px;\n    height: 9px;\n    background-color: #0d265c;\n    border-radius: 50%;\n    position: absolute;\n    left: 0;\n    top: 12px;\n}\n@media (max-width:991px){\n.post-content li:before{left:0;}\n.post-content li{padding-left:20px;}\n}\nspan.hljs-keyword {\n    font-weight: normal;\n}\n\nspan.hljs-attribute {\n    font-weight: normal;\n}\n\nspan.hljs-selector-tag {\n    font-weight: normal;\n}\n<\/style>\n <script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"Article\",\n  \"mainEntityOfPage\": {\n    \"@type\": \"WebPage\",\n    \"@id\": \"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-development\/custom-ai-agent-development-crew-ai-framework\"\n  },\n  \"headline\": \"Custom AI Agent Development: How To Create AI Agents With Crew AI Agent Framework With Function Calling Support\",\n  \"description\": \"Learn how to create custom AI agents with the Crew AI framework. Explore function calling support, AI agent development, and more in this detailed guide.\",\n  \"image\": \"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/ai-agentl-custom-development-tutorial.png\",\n  \"author\": {\n    \"@type\": \"Person\",\n    \"name\": \"Pritam Barhate \",\n    \"description\": \"Pritam Barhate, with an experience of 14+ years in technology, heads Technology Innovation at Mobisoft Infotech. He has a rich experience in design and development. He has been a consultant for a variety of industries and startups. At Mobisoft Infotech, he primarily focuses on technology resources and develops the most advanced solutions. \"\n  },\n  \"publisher\": {\n    \"@type\": \"Organization\",\n    \"name\": \"Mobisoft Infotech\",\n    \"logo\": {\n      \"@type\": \"ImageObject\",\n      \"url\": \"https:\/\/mobisoftinfotech.com\/assets\/images\/mshomepage\/MI_Logo-white.svg\",\n      \"width\": 600,\n      \"height\": 600\n    }\n  },\n  \"datePublished\": \"2025\u201304-01\",\n  \"dateModified\": \"2025-04-01\"\n}\n<\/script>\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"Organization\",\n  \"name\": \"Mobisoft Infotech\",\n  \"url\": \"https:\/\/mobisoftinfotech.com\/\",\n  \"logo\": \"https:\/\/mobisoftinfotech.com\/assets\/images\/MI_Logo.svg\",\n  \"sameAs\": [\n    \"https:\/\/www.facebook.com\/pages\/Mobisoft-Infotech\/131035500270720\",\n    \"https:\/\/twitter.com\/MobisoftInfo\",\n    \"https:\/\/www.instagram.com\/mobisoftinfotech\/\",\n    \"https:\/\/www.youtube.com\/channel\/UCtwuTXKUXFX7k0NSYhsMeTg\",\n    \"https:\/\/www.linkedin.com\/company\/mobisoft-infotech\",\n    \"https:\/\/in.pinterest.com\/mobisoftinfotech\/\",\n    \"https:\/\/github.com\/MobisoftInfotech\"\n  ],\n  \"contactPoint\": [\n    {\n      \"@type\": \"ContactPoint\",\n      \"telephone\": \"+1-855-572-2777\",\n      \"contactType\": \"Customer Service\",\n      \"areaServed\": \"US\",\n      \"availableLanguage\": [\"English\"]\n    },\n    {\n      \"@type\": \"ContactPoint\",\n      \"telephone\": \"+91-858-600-8627\",\n      \"contactType\": \"Customer Service\",\n      \"areaServed\": \"IN\",\n      \"availableLanguage\": [\"English\"]\n    }\n  ]\n}\n<\/script>\n<script type=\"application\/ld+json\">\n{\n    \"@context\": \"https:\/\/schema.org\",\n    \"@type\": \"LocalBusiness\",\n    \"name\": \"Mobisoft Infotech\",\n    \"url\": \"https:\/\/mobisoftinfotech.com\",\n    \"logo\": \"https:\/\/mobisoftinfotech.com\/assets\/images\/mshomepage\/MI_Logo-white.svg\",\n    \"description\": \"Mobisoft Infotech specializes in custom software development and digital solutions.\",\n    \"address\": {\n        \"@type\": \"PostalAddress\",\n        \"streetAddress\": \"5718 Westheimer Rd Suite 1000\",\n        \"addressLocality\": \"Houston\",\n        \"addressRegion\": \"TX\",\n        \"postalCode\": \"77057\",\n        \"addressCountry\": \"USA\"\n    },\n    \"contactPoint\": [{\n        \"@type\": \"ContactPoint\",\n        \"telephone\": \"+1-855-572-2777\",\n        \"contactType\": \"Customer Service\",\n        \"areaServed\": [\"USA\", \"Worldwide\"],\n        \"availableLanguage\": [\"English\"]\n    }],\n    \"sameAs\": [\n        \"https:\/\/www.facebook.com\/pages\/Mobisoft-Infotech\/131035500270720\",\n        \"https:\/\/x.com\/MobisoftInfo\",\n        \"https:\/\/www.linkedin.com\/company\/mobisoft-infotech\",\n        \"https:\/\/in.pinterest.com\/mobisoftinfotech\/\",\n        \"https:\/\/www.instagram.com\/mobisoftinfotech\/\",\n        \"https:\/\/github.com\/MobisoftInfotech\",\n        \"https:\/\/www.behance.net\/MobisoftInfotech\",\n        \"https:\/\/www.youtube.com\/channel\/UCtwuTXKUXFX7k0NSYhsMeTg\"\n    ]\n}\n<\/script>\n<script type=\"application\/ld+json\">\n    [\n    {\n            \"@context\": \"https:\/\/schema.org\",\n            \"@type\": \"ImageObject\",\n            \"contentUrl\": \"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/ai-agentl-custom-development-tutorial.png\",\n            \"url\": \"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-development\/custom-ai-agent-development-crew-ai-framework\",\n            \"name\": \"Custom AI Agent Development: How To Create AI Agents With Crew AI Agent Framework With Function Calling Support\",\n            \"caption\": \"Step-by-step guide to building custom AI agents using Crew AI framework\",\n            \"description\": \"This tutorial explains the process of creating custom AI agents using the Crew AI agent framework with function calling support. Ideal for CTOs and CROs looking to implement AI in their business.\",\n            \"license\": \"https:\/\/mobisoftinfotech.com\/terms\",\n            \"acquireLicensePage\": \"https:\/\/mobisoftinfotech.com\/acquire-license\",\n            \"creditText\": \"Mobisoft Infotech\",\n            \"copyrightNotice\": \"Mobisoft Infotech\",\n            \"creator\": {\n                \"@type\": \"Organization\",\n                \"name\": \"Mobisoft Infotech\"\n            },\n            \"thumbnail\": \"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/ai-agentl-custom-development-tutorial.png\"\n        },\n        {\n            \"@context\": \"https:\/\/schema.org\",\n            \"@type\": \"ImageObject\",\n            \"contentUrl\": \"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/business-ready-ai-agents-crew-ai.png\",\n            \"url\": \"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-development\/custom-ai-agent-development-crew-ai-framework\",\n            \"name\": \"Discover the Proven Framework for Business-Ready AI Agents\",\n            \"caption\": \"Learn how Crew AI framework supports business-ready AI agents with seamless integration.\",\n            \"description\": \"Unlock the potential of custom AI agents for your business. This image highlights the Crew AI agent framework\u2019s effectiveness in delivering practical, scalable AI agents tailored to industry-specific needs.\",\n            \"license\": \"https:\/\/mobisoftinfotech.com\/terms\",\n            \"acquireLicensePage\": \"https:\/\/mobisoftinfotech.com\/acquire-license\",\n            \"creditText\": \"Mobisoft Infotech\",\n            \"copyrightNotice\": \"Mobisoft Infotech\",\n            \"creator\": {\n                \"@type\": \"Organization\",\n                \"name\": \"Mobisoft Infotech\"\n            },\n            \"thumbnail\": \"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/business-ready-ai-agents-crew-ai.png\"\n        },\n        {\n            \"@context\": \"https:\/\/schema.org\",\n            \"@type\": \"ImageObject\",\n            \"contentUrl\": \"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/build-ai-agents-understand-domain-specific-challenges.png\",\n            \"url\": \"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-development\/custom-ai-agent-development-crew-ai-framework\",\n            \"name\": \"Create AI Agents That Understand Domain-Specific Challenges\",\n            \"caption\": \"How Crew AI enables the creation of intelligent agents customized to tackle your business\u2019s unique problems.\",\n            \"description\": \"Learn how to build AI agents using Crew AI that are not just smart but understand the unique needs of your business, helping you solve domain-specific challenges efficiently.\",\n            \"license\": \"https:\/\/mobisoftinfotech.com\/terms\",\n            \"acquireLicensePage\": \"https:\/\/mobisoftinfotech.com\/acquire-license\",\n            \"creditText\": \"Mobisoft Infotech\",\n            \"copyrightNotice\": \"Mobisoft Infotech\",\n            \"creator\": {\n                \"@type\": \"Organization\",\n                \"name\": \"Mobisoft Infotech\"\n            },\n            \"thumbnail\": \"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/build-ai-agents-understand-domain-specific-challenges.png\"\n        }\n        ]\n    <\/script>\n","protected":false},"excerpt":{"rendered":"<p>In the last tutorial we saw how we can create an AI agent with Crew AI in pure python code. It&#8217;s advised for the reader to check that tutorial out to understand how Crew AI agents work at the code level. As your AI agents become more ambitious, you need proper structure to develop custom [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":36647,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_s2mail":"","footnotes":""},"categories":[4998],"tags":[4859,5058,5060,4857,5063,5061,5054,5062,4856,5059,5064,5065,5066,5053,5057,5052,5055,5056],"class_list":["post-36602","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-machine-learning","tag-ai-agent-development","tag-ai-agent-development-tutorial","tag-ai-agent-for-automation","tag-ai-agent-frameworks","tag-ai-agent-startups","tag-ai-agent-tools","tag-ai-agent-tutorial","tag-best-ai-agent","tag-building-ai-agents","tag-creating-ai-bots","tag-crew-agent-ai","tag-crew-ai-agent","tag-crew-ai-multi-agent","tag-custom-ai-agents","tag-developing-ai-agents","tag-how-to-create-ai-agents","tag-intelligent-agents-in-ai","tag-personalized-ai-agents"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Custom AI Agent Development with Crew AI Framework<\/title>\n<meta name=\"description\" content=\"Learn how to create custom AI agents with the Crew AI framework. Explore function calling support, AI agent development, and more in this detailed guide.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Custom AI Agent Development with Crew AI Framework\" \/>\n<meta property=\"og:description\" content=\"Learn how to create custom AI agents with the Crew AI framework. Explore function calling support, AI agent development, and more in this detailed guide.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework\" \/>\n<meta property=\"og:site_name\" content=\"Mobisoft Infotech\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-01T13:39:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-15T11:08:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/og-AI-agent-tutorial.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"756\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Pritam Barhate\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Pritam Barhate\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework#article\",\"isPartOf\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework\"},\"author\":{\"name\":\"Pritam Barhate\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/fa762036b3364f26abeea146c01487ee\"},\"headline\":\"Custom AI Agent Development: How To Create AI Agents With Crew AI Agent Framework With Function Calling Support\",\"datePublished\":\"2025-04-01T13:39:31+00:00\",\"dateModified\":\"2025-10-15T11:08:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework\"},\"wordCount\":1124,\"image\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework#primaryimage\"},\"thumbnailUrl\":\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/ai-agentl-custom-development-tutorial.png\",\"keywords\":[\"ai agent development\",\"ai agent development tutorial\",\"ai agent for automation\",\"ai agent frameworks\",\"ai agent startups\",\"ai agent tools\",\"ai agent tutorial\",\"best ai agent\",\"building ai agents\",\"creating ai bots\",\"crew agent ai\",\"crew ai agent\",\"crew ai multi agent\",\"custom ai agents\",\"developing ai agents\",\"how to create ai agents\",\"intelligent agents in ai\",\"personalized ai agents\"],\"articleSection\":[\"AI Machine Learning\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework\",\"url\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework\",\"name\":\"Custom AI Agent Development with Crew AI Framework\",\"isPartOf\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework#primaryimage\"},\"image\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework#primaryimage\"},\"thumbnailUrl\":\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/ai-agentl-custom-development-tutorial.png\",\"datePublished\":\"2025-04-01T13:39:31+00:00\",\"dateModified\":\"2025-10-15T11:08:18+00:00\",\"author\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/fa762036b3364f26abeea146c01487ee\"},\"description\":\"Learn how to create custom AI agents with the Crew AI framework. Explore function calling support, AI agent development, and more in this detailed guide.\",\"breadcrumb\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework#primaryimage\",\"url\":\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/ai-agentl-custom-development-tutorial.png\",\"contentUrl\":\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/ai-agentl-custom-development-tutorial.png\",\"width\":855,\"height\":392,\"caption\":\"AI agent tutorial for custom development with Crew AI framework\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/mobisoftinfotech.com\/resources\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Custom AI Agent Development: How To Create AI Agents With Crew AI Agent Framework With Function Calling Support\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/#website\",\"url\":\"https:\/\/mobisoftinfotech.com\/resources\/\",\"name\":\"Mobisoft Infotech\",\"description\":\"Discover Mobility\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/mobisoftinfotech.com\/resources\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/fa762036b3364f26abeea146c01487ee\",\"name\":\"Pritam Barhate\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/0e481c7ce54b3567ac70ddfc493523eefce0bdc3ee69fd2654f8f60a79e2f178?s=96&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0e481c7ce54b3567ac70ddfc493523eefce0bdc3ee69fd2654f8f60a79e2f178?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0e481c7ce54b3567ac70ddfc493523eefce0bdc3ee69fd2654f8f60a79e2f178?s=96&r=g\",\"caption\":\"Pritam Barhate\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Custom AI Agent Development with Crew AI Framework","description":"Learn how to create custom AI agents with the Crew AI framework. Explore function calling support, AI agent development, and more in this detailed guide.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework","og_locale":"en_US","og_type":"article","og_title":"Custom AI Agent Development with Crew AI Framework","og_description":"Learn how to create custom AI agents with the Crew AI framework. Explore function calling support, AI agent development, and more in this detailed guide.","og_url":"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework","og_site_name":"Mobisoft Infotech","article_published_time":"2025-04-01T13:39:31+00:00","article_modified_time":"2025-10-15T11:08:18+00:00","og_image":[{"width":1440,"height":756,"url":"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/og-AI-agent-tutorial.png","type":"image\/png"}],"author":"Pritam Barhate","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Pritam Barhate","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework#article","isPartOf":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework"},"author":{"name":"Pritam Barhate","@id":"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/fa762036b3364f26abeea146c01487ee"},"headline":"Custom AI Agent Development: How To Create AI Agents With Crew AI Agent Framework With Function Calling Support","datePublished":"2025-04-01T13:39:31+00:00","dateModified":"2025-10-15T11:08:18+00:00","mainEntityOfPage":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework"},"wordCount":1124,"image":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework#primaryimage"},"thumbnailUrl":"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/ai-agentl-custom-development-tutorial.png","keywords":["ai agent development","ai agent development tutorial","ai agent for automation","ai agent frameworks","ai agent startups","ai agent tools","ai agent tutorial","best ai agent","building ai agents","creating ai bots","crew agent ai","crew ai agent","crew ai multi agent","custom ai agents","developing ai agents","how to create ai agents","intelligent agents in ai","personalized ai agents"],"articleSection":["AI Machine Learning"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework","url":"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework","name":"Custom AI Agent Development with Crew AI Framework","isPartOf":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework#primaryimage"},"image":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework#primaryimage"},"thumbnailUrl":"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/ai-agentl-custom-development-tutorial.png","datePublished":"2025-04-01T13:39:31+00:00","dateModified":"2025-10-15T11:08:18+00:00","author":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/fa762036b3364f26abeea146c01487ee"},"description":"Learn how to create custom AI agents with the Crew AI framework. Explore function calling support, AI agent development, and more in this detailed guide.","breadcrumb":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework#primaryimage","url":"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/ai-agentl-custom-development-tutorial.png","contentUrl":"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/04\/ai-agentl-custom-development-tutorial.png","width":855,"height":392,"caption":"AI agent tutorial for custom development with Crew AI framework"},{"@type":"BreadcrumbList","@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/ai-machine-learning\/custom-ai-agent-development-crew-ai-framework#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mobisoftinfotech.com\/resources\/"},{"@type":"ListItem","position":2,"name":"Custom AI Agent Development: How To Create AI Agents With Crew AI Agent Framework With Function Calling Support"}]},{"@type":"WebSite","@id":"https:\/\/mobisoftinfotech.com\/resources\/#website","url":"https:\/\/mobisoftinfotech.com\/resources\/","name":"Mobisoft Infotech","description":"Discover Mobility","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mobisoftinfotech.com\/resources\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/fa762036b3364f26abeea146c01487ee","name":"Pritam Barhate","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/0e481c7ce54b3567ac70ddfc493523eefce0bdc3ee69fd2654f8f60a79e2f178?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0e481c7ce54b3567ac70ddfc493523eefce0bdc3ee69fd2654f8f60a79e2f178?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0e481c7ce54b3567ac70ddfc493523eefce0bdc3ee69fd2654f8f60a79e2f178?s=96&r=g","caption":"Pritam Barhate"}}]}},"_links":{"self":[{"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/posts\/36602","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/comments?post=36602"}],"version-history":[{"count":80,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/posts\/36602\/revisions"}],"predecessor-version":[{"id":44232,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/posts\/36602\/revisions\/44232"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/media\/36647"}],"wp:attachment":[{"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/media?parent=36602"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/categories?post=36602"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/tags?post=36602"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}