diff --git a/app/store/plugin.ts b/app/store/plugin.ts
index 84ae0816e..a79a1ae4b 100644
--- a/app/store/plugin.ts
+++ b/app/store/plugin.ts
@@ -4,7 +4,7 @@ import { nanoid } from "nanoid";
 import { createPersistStore } from "../utils/store";
 import { getClientConfig } from "../config/client";
 import yaml from "js-yaml";
-import { adapter } from "../utils";
+import { adapter, getOperationId } from "../utils";
 import { useAccessStore } from "./access";
 
 const isApp = getClientConfig()?.isApp;
@@ -116,7 +116,7 @@ export const FunctionToolService = {
         return {
           type: "function",
           function: {
-            name: o.operationId,
+            name: getOperationId(o),
             description: o.description || o.summary,
             parameters: parameters,
           },
@@ -124,7 +124,7 @@ export const FunctionToolService = {
       }),
       funcs: operations.reduce((s, o) => {
         // @ts-ignore
-        s[o.operationId] = function (args) {
+        s[getOperationId(o)] = function (args) {
           const parameters: Record<string, any> = {};
           if (o.parameters instanceof Array) {
             o.parameters.forEach((p) => {
@@ -139,8 +139,8 @@ export const FunctionToolService = {
           } else if (authLocation == "body") {
             args[headerName] = tokenValue;
           }
-          // @ts-ignore
-          return api.client[o.operationId](
+          // @ts-ignore if o.operationId is null, then using o.path and o.method
+          return api.client.paths[o.path][o.method](
             parameters,
             args,
             api.axiosConfigDefaults,
@@ -253,6 +253,7 @@ export const usePluginStore = createPersistStore(
                     .catch((e) => item),
             ),
           ).then((builtinPlugins: any) => {
+            return;
             builtinPlugins
               .filter((item: any) => item?.content)
               .forEach((item: any) => {
diff --git a/app/utils.ts b/app/utils.ts
index 9a8bebf38..6b2f65952 100644
--- a/app/utils.ts
+++ b/app/utils.ts
@@ -377,3 +377,15 @@ export function safeLocalStorage(): {
     },
   };
 }
+
+export function getOperationId(operation: {
+  operationId?: string;
+  method: string;
+  path: string;
+}) {
+  // pattern '^[a-zA-Z0-9_-]+$'
+  return (
+    operation?.operationId ||
+    `${operation.method.toUpperCase()}${operation.path.replaceAll("/", "_")}`
+  );
+}