diff --git a/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentModelSelection/index.jsx b/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentModelSelection/index.jsx
index 085f4ef93a60ba3337cbdc619a9d341cc38adf9e..c6ec0ca22bfe679020e3cb450af457ba17e29bbc 100644
--- a/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentModelSelection/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentModelSelection/index.jsx
@@ -2,6 +2,20 @@ import useGetProviderModels, {
   DISABLED_PROVIDERS,
 } from "@/hooks/useGetProvidersModels";
 
+// These models do NOT support function calling
+function supportedModel(provider, model = "") {
+  if (provider !== "openai") return true;
+  if (model.startsWith("gpt-3.5-turbo")) return true;
+  switch (model) {
+    case "gpt-4":
+    case "gpt-4-turbo-preview":
+    case "gpt-4-32k":
+      return true;
+    default:
+      return false;
+  }
+}
+
 export default function AgentModelSelection({
   provider,
   workspace,
@@ -60,6 +74,7 @@ export default function AgentModelSelection({
         {defaultModels.length > 0 && (
           <optgroup label="General models">
             {defaultModels.map((model) => {
+              if (!supportedModel(provider, model)) return null;
               return (
                 <option
                   key={model}
@@ -75,6 +90,8 @@ export default function AgentModelSelection({
         {Array.isArray(customModels) && customModels.length > 0 && (
           <optgroup label="Custom models">
             {customModels.map((model) => {
+              if (!supportedModel(provider, model.id)) return null;
+
               return (
                 <option
                   key={model.id}
@@ -93,15 +110,18 @@ export default function AgentModelSelection({
             <>
               {Object.entries(customModels).map(([organization, models]) => (
                 <optgroup key={organization} label={organization}>
-                  {models.map((model) => (
-                    <option
-                      key={model.id}
-                      value={model.id}
-                      selected={workspace?.agentModel === model.id}
-                    >
-                      {model.name}
-                    </option>
-                  ))}
+                  {models.map((model) => {
+                    if (!supportedModel(provider, model.id)) return null;
+                    return (
+                      <option
+                        key={model.id}
+                        value={model.id}
+                        selected={workspace?.agentModel === model.id}
+                      >
+                        {model.name}
+                      </option>
+                    );
+                  })}
                 </optgroup>
               ))}
             </>
diff --git a/frontend/src/pages/WorkspaceSettings/AgentConfig/index.jsx b/frontend/src/pages/WorkspaceSettings/AgentConfig/index.jsx
index 562c40fc1d95642caccaf93ada028171a406b374..c5ba61f273af8d720e3e589c3deed23c6d7a9cc3 100644
--- a/frontend/src/pages/WorkspaceSettings/AgentConfig/index.jsx
+++ b/frontend/src/pages/WorkspaceSettings/AgentConfig/index.jsx
@@ -112,92 +112,92 @@ export default function WorkspaceAgentConfiguration({ workspace }) {
       </form>
     </div>
   );
+}
 
-  function LoadingSkeleton() {
-    return (
-      <div id="workspace-agent-settings-container">
-        <div className="w-1/2 flex flex-col gap-y-6">
-          <Skeleton.default
-            height={100}
-            width="100%"
-            count={2}
-            baseColor="#292524"
-            highlightColor="#4c4948"
-            enableAnimation={true}
-            containerClassName="flex flex-col gap-y-1"
-          />
-          <div className="bg-white/10 h-[1px] w-full" />
-          <Skeleton.default
-            height={100}
-            width="100%"
-            count={2}
-            baseColor="#292524"
-            highlightColor="#4c4948"
-            enableAnimation={true}
-            containerClassName="flex flex-col gap-y-1 mt-4"
-          />
-        </div>
+function LoadingSkeleton() {
+  return (
+    <div id="workspace-agent-settings-container">
+      <div className="w-1/2 flex flex-col gap-y-6">
+        <Skeleton.default
+          height={100}
+          width="100%"
+          count={2}
+          baseColor="#292524"
+          highlightColor="#4c4948"
+          enableAnimation={true}
+          containerClassName="flex flex-col gap-y-1"
+        />
+        <div className="bg-white/10 h-[1px] w-full" />
+        <Skeleton.default
+          height={100}
+          width="100%"
+          count={2}
+          baseColor="#292524"
+          highlightColor="#4c4948"
+          enableAnimation={true}
+          containerClassName="flex flex-col gap-y-1 mt-4"
+        />
       </div>
-    );
-  }
+    </div>
+  );
+}
 
-  function AvailableAgentSkills({ skills, settings, toggleAgentSkill }) {
-    return (
-      <div>
-        <div className="flex flex-col mb-8">
-          <div className="flex w-full justify-between items-center">
-            <label htmlFor="name" className="text-white text-md font-semibold">
-              Default agent skills
-            </label>
-          </div>
-          <p className="text-white text-opacity-60 text-xs font-medium py-1.5">
-            Improve the natural abilities of the default agent with these
-            pre-built skills. This set up applies to all workspaces.
-          </p>
+function AvailableAgentSkills({ skills, settings, toggleAgentSkill }) {
+  return (
+    <div>
+      <div className="flex flex-col mb-8">
+        <div className="flex w-full justify-between items-center">
+          <label htmlFor="name" className="text-white text-md font-semibold">
+            Default agent skills
+          </label>
         </div>
-        <input
-          name="system::default_agent_skills"
-          type="hidden"
-          value={skills.join(",")}
+        <p className="text-white text-opacity-60 text-xs font-medium py-1.5">
+          Improve the natural abilities of the default agent with these
+          pre-built skills. This set up applies to all workspaces.
+        </p>
+      </div>
+      <input
+        name="system::default_agent_skills"
+        type="hidden"
+        value={skills.join(",")}
+      />
+      <div className="flex flex-col gap-y-3">
+        <GenericSkill
+          title="RAG & long-term memory"
+          description='Allow the agent to leverage your local documents to answer a query or ask the agent to "remember" pieces of content for long-term memory retrieval.'
+          settings={settings}
+          enabled={true}
+          disabled={true}
+        />
+        <GenericSkill
+          title="View and summarize documents"
+          description="Allow the agent to list and summarize the content of workspace files currently embedded."
+          settings={settings}
+          enabled={true}
+          disabled={true}
+        />
+        <GenericSkill
+          title="Scrape websites"
+          description="Allow the agent to visit and scrape the content of websites."
+          settings={settings}
+          enabled={true}
+          disabled={true}
+        />
+        <GenericSkill
+          title="Generate & save files to browser"
+          description="Enable the default agent to generate and write to files that save and can be downloaded in your browser."
+          skill="save-file-to-browser"
+          settings={settings}
+          toggleSkill={toggleAgentSkill}
+          enabled={skills.includes("save-file-to-browser")}
+        />
+        <AgentWebSearchSelection
+          skill="web-browsing"
+          settings={settings}
+          toggleSkill={toggleAgentSkill}
+          enabled={skills.includes("web-browsing")}
         />
-        <div className="flex flex-col gap-y-3">
-          <GenericSkill
-            title="RAG & long-term memory"
-            description='Allow the agent to leverage your local documents to answer a query or ask the agent to "remember" pieces of content for long-term memory retrieval.'
-            settings={settings}
-            enabled={true}
-            disabled={true}
-          />
-          <GenericSkill
-            title="View and summarize documents"
-            description="Allow the agent to list and summarize the content of workspace files currently embedded."
-            settings={settings}
-            enabled={true}
-            disabled={true}
-          />
-          <GenericSkill
-            title="Scrape websites"
-            description="Allow the agent to visit and scrape the content of websites."
-            settings={settings}
-            enabled={true}
-            disabled={true}
-          />
-          <GenericSkill
-            title="Generate & save files to browser"
-            description="Enable the default agent to generate and write to files that save and can be downloaded in your browser."
-            skill="save-file-to-browser"
-            settings={settings}
-            toggleSkill={toggleAgentSkill}
-            enabled={skills.includes("save-file-to-browser")}
-          />
-          <AgentWebSearchSelection
-            skill="web-browsing"
-            settings={settings}
-            toggleSkill={toggleAgentSkill}
-            enabled={skills.includes("web-browsing")}
-          />
-        </div>
       </div>
-    );
-  }
+    </div>
+  );
 }
diff --git a/server/package.json b/server/package.json
index a4a847509215bc06eb4b44225856b9ba6fedc7fc..d4587eb208a5b68301d0ed035ca956550177a0c5 100644
--- a/server/package.json
+++ b/server/package.json
@@ -53,7 +53,7 @@
     "node-html-markdown": "^1.3.0",
     "node-llama-cpp": "^2.8.0",
     "openai": "^3.2.1",
-    "openai:latest": "npm:openai@latest",
+    "openai-latest": "npm:openai@latest",
     "pinecone-client": "^1.1.0",
     "pluralize": "^8.0.0",
     "posthog-node": "^3.1.1",
@@ -84,4 +84,4 @@
     "nodemon": "^2.0.22",
     "prettier": "^3.0.3"
   }
-}
+}
\ No newline at end of file
diff --git a/server/utils/agents/aibitat/providers/openai.js b/server/utils/agents/aibitat/providers/openai.js
index 4458afe8ff97fbc2f0a1bb974670b858dd07b23c..e06dd31d1ac52bdf707a311ebf0bb2502094d07e 100644
--- a/server/utils/agents/aibitat/providers/openai.js
+++ b/server/utils/agents/aibitat/providers/openai.js
@@ -1,4 +1,4 @@
-const OpenAI = require("openai:latest");
+const OpenAI = require("openai-latest");
 const Provider = require("./ai-provider.js");
 const { RetryError } = require("../error.js");
 
diff --git a/server/yarn.lock b/server/yarn.lock
index 51dda19f79439161361c2a5a1b10e76df3231369..466ac156033c2181318c65b6c3b710371e4aafd9 100644
--- a/server/yarn.lock
+++ b/server/yarn.lock
@@ -4495,10 +4495,10 @@ onnxruntime-web@1.14.0:
     onnxruntime-common "~1.14.0"
     platform "^1.3.6"
 
-"openai:latest@npm:openai@latest":
-  version "4.32.1"
-  resolved "https://registry.yarnpkg.com/openai/-/openai-4.32.1.tgz#9e375fdbc727330c5ea5d287beb325db3e6f9ad7"
-  integrity sha512-3e9QyCY47tgOkxBe2CSVKlXOE2lLkMa24Y0s3LYZR40yYjiBU9dtVze+C3mu1TwWDGiRX52STpQAEJZvRNuIrA==
+"openai-latest@npm:openai@latest":
+  version "4.38.0"
+  resolved "https://registry.yarnpkg.com/openai/-/openai-4.38.0.tgz#d97accc7c368670a40c2f668650b624cb941dc8b"
+  integrity sha512-q1w04cRm+7CgUAGDXqt+OMa89zXBffHrEK0FcVDRhD+zL1S1aAatu4iYO5sIxR2QFEP//i8CM3QaxGVTNajxuw==
   dependencies:
     "@types/node" "^18.11.18"
     "@types/node-fetch" "^2.6.4"