From 6bd4291e9cdfceabf47fc401fe85e05234328223 Mon Sep 17 00:00:00 2001 From: Sim Pi Agent Date: Mon, 9 Nov 2026 17:28:16 +0000 Subject: [PATCH] feat(library): AI Agent Platforms for Running Your Own Fine Tuned Models Compared --- .../index.mdx | 172 ++++++++++++++++++ .../cover.jpg | Bin 0 -> 29744 bytes 2 files changed, 172 insertions(+) create mode 100644 apps/sim/content/library/ai-agent-platforms-own-fine-tuned-models/index.mdx create mode 100644 apps/sim/public/library/ai-agent-platforms-own-fine-tuned-models/cover.jpg diff --git a/apps/sim/content/library/ai-agent-platforms-own-fine-tuned-models/index.mdx b/apps/sim/content/library/ai-agent-platforms-own-fine-tuned-models/index.mdx new file mode 100644 index 00000000000..b4ad9a15548 --- /dev/null +++ b/apps/sim/content/library/ai-agent-platforms-own-fine-tuned-models/index.mdx @@ -0,0 +1,172 @@ +--- +slug: ai-agent-platforms-own-fine-tuned-models +title: 'AI Agent Platforms for Running Your Own Fine Tuned Models Compared' +seoTitle: 'AI Agent Platforms for Fine Tuned Models' +description: 'Compare AI agent platforms for connecting fine tuned models through hosted providers, OpenAI compatible endpoints, and local model runtimes.' +date: 2026-11-09 +updated: 2026-11-09 +authors: + - andrew +readingTime: 8 +tags: [AI Agents, Fine Tuned Models, Self Hosting, Sim] +ogImage: /library/ai-agent-platforms-own-fine-tuned-models/cover.jpg +draft: false +faq: + - q: "Which AI agent platforms support fine tuning custom models?" + a: "Sim, n8n, Dify, and the archived Flowise project can call fine tuned or custom models through provider identifiers, deployment configurations, compatible endpoints, or local runtimes, but they generally do not train the model." + - q: "What are the top AI agent builders that let us plug in our own fine tuned model?" + a: "Sim fits self hosted fine tuned model endpoints, n8n fits broader automation, Dify fits provider plugins, and the archived Flowise project offered visual LangChain components." + - q: "Can I use a fine tuned model in an AI agent?" + a: "Sim can use a fine tuned model when the model is deployed through a supported provider or reachable self hosted endpoint and the selected model supports the capabilities the agent needs." + - q: "What is a custom model AI agent builder?" + a: "A custom model AI agent builder connects agent instructions, tools, memory, and workflow logic to a model selected by identifier, deployment, or endpoint." + - q: "Do AI agent platforms fine tune models?" + a: "The platforms in this comparison orchestrate agents around deployed models rather than providing the underlying fine tuning process." + - q: "Can Sim run a self hosted fine tuned model?" + a: "Sim can run agents against a fine tuned model served through Ollama, vLLM, LM Studio, or LiteLLM when Sim is self hosted and can reach the endpoint." + - q: "Can Sim Cloud connect to a local Ollama or vLLM model?" + a: "Sim documents Ollama, vLLM, LM Studio, and LiteLLM as self hosting capabilities, so teams should use a self hosted Sim deployment for those local endpoint paths." + - q: "Does Sim require Enterprise for local models?" + a: "Sim does not require Enterprise for Ollama, vLLM, LM Studio, or LiteLLM on a self hosted deployment." + - q: "Does Sim support BYOK for hosted fine tuned models?" + a: "Sim supports workspace BYOK on every Sim Cloud plan, but using a specific hosted fine tune still depends on the provider integration exposing that model." + - q: "Is BYOK the same as bringing your own model?" + a: "Sim BYOK is not the same as bringing your own model because BYOK supplies provider credentials while a custom model also needs an addressable model identifier, deployment, or endpoint." + - q: "Can n8n run custom models?" + a: "n8n can call custom models through documented model nodes such as Microsoft Foundry and Ollama or through a direct authenticated API request." + - q: "Does n8n train fine tuned models?" + a: "n8n orchestrates calls to a model that a provider or model runtime already serves rather than training the fine tuned model." + - q: "Is n8n open source?" + a: "n8n is source available under the Sustainable Use License, which is based on the fair-code model rather than an OSI-approved open source license." + - q: "Can Dify use an OpenAI compatible custom endpoint?" + a: "Dify supports model provider configuration in which users can supply a model name and base URL for an OpenAI compatible service." + - q: "Can Flowise use a local custom model?" + a: "The archived Flowise project can connect visual flows to local model services through integrations such as Ollama when the deployment can reach the runtime." + - q: "Do these AI agent platforms support Azure OpenAI deployments?" + a: "n8n and the archived Flowise project document Azure OpenAI model integrations, while support should be checked against the exact deployment, API version, authentication method, and model capability required." + - q: "What is the best AI agent platform for a vLLM endpoint?" + a: "Sim fits teams that need a visual builder and a documented base URL configuration for vLLM-compatible model access on a self hosted deployment." + - q: "What is the best AI agent platform for Ollama?" + a: "Sim fits teams building visual agents around Ollama on self hosted infrastructure, while n8n and Dify offer different orchestration approaches." + - q: "Is Sim open source?" + a: "Sim has separate core and enterprise licenses, and production use of enterprise features requires an active Sim Enterprise subscription." + - q: "Is Sim free to self host with a custom model?" + a: "Core custom-model capabilities do not require Enterprise, while production use of enterprise features requires an active Sim Enterprise subscription." + - q: "Is Sim a good n8n alternative for custom models?" + a: "Sim fits teams that want a visual agent workspace and documented self hosted support for Ollama, vLLM, LM Studio, and LiteLLM." + - q: "Is Sim a good Zapier alternative for custom model agents?" + a: "Sim fits custom model agent teams when self hosting and direct control over the model endpoint matter more than conventional application automation alone." + - q: "What should I test before using a fine tuned model in production?" + a: "Test model quality, tool calling, structured outputs, context limits, timeouts, concurrency, endpoint failures, and data handling before sending production traffic to a fine tuned model." +--- + +## TL;DR + +Sim, n8n, and Dify can connect agents to custom models through different routes. Sim fits teams that want a visual workspace with documented support for Ollama, vLLM, LM Studio, and LiteLLM on self hosted infrastructure. n8n fits general automation around model calls, while Dify fits applications organized around model provider plugins. Flowise previously offered composable LangChain-based model flows, but its maintainers [announced the project's wind-down](https://flowiseai.com/sunset) and archived the repository in August 2026, so teams should not select it for a new deployment. + +These platforms generally do not train a model. They orchestrate agents around a fine tuned model that is already available through a provider model identifier, an Azure OpenAI deployment, an OpenAI-compatible endpoint, or a local model runtime. + +As of November 2026, the documented connection options make Sim a fit for self hosted custom model endpoints, n8n a fit for general automation around model calls, and Dify a fit for model provider plugins. + +## Which AI agent platforms support fine tuning custom models? + +Sim, n8n, Dify, and the archived Flowise project can call custom or fine tuned models, although the connection method depends on where the model is hosted. + +| Platform | Fit | Documented connection paths | +| --- | --- | --- | +| Sim | Visual agents using self hosted custom endpoints | [Ollama, vLLM, LM Studio, and LiteLLM](https://docs.sim.ai/platform/self-hosting/environment-variables) on self hosted Sim, plus [provider keys for supported hosted models](https://docs.sim.ai/platform/costs#bring-your-own-key-byok) | +| n8n | Automation surrounding custom model calls | [Microsoft Foundry or Azure OpenAI](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatazureopenai/), [Ollama](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatollama/), and direct API requests | +| Dify | LLM applications using model provider plugins | [Provider plugins and user-supplied OpenAI-compatible endpoints](https://docs.dify.ai/en/develop-plugin/features-and-specs/plugin-types/model-designing-rules), plus [local model services](https://docs.dify.ai/en/self-host/use-dify/nodes/llm) | +| [Flowise (archived)](https://flowiseai.com/sunset) | Existing composable flows built with LangChain components | Azure ChatOpenAI, ChatOpenAI custom base URLs, and Ollama | + +A hosted fine tune is usually selected through the model identifier exposed by its provider. An Azure OpenAI model is selected through its deployment configuration. A model served by vLLM, Ollama, LM Studio, or LiteLLM is reached through a runtime endpoint available to the agent platform. + +This comparison evaluates the custom model connection path rather than the broader platform category. For that broader decision, see [AI agent platforms and builders compared](https://www.sim.ai/library/best-ai-agent-platforms-2026). + +## What AI agent builders let us plug in our own fine tuned model? + +The useful distinction is not a ranking. Teams should match each platform's documented endpoint options, deployment controls, and orchestration model to their requirements. + +### When does Sim fit a self hosted custom model? + +A self hosted Sim deployment can connect to Ollama through `OLLAMA_URL` and to vLLM, LM Studio, or LiteLLM through the [documented environment variables](https://docs.sim.ai/platform/self-hosting/environment-variables). The [Sim self hosting documentation](https://docs.sim.ai/platform/self-hosting) explains the deployment model, and the [Docker documentation](https://docs.sim.ai/platform/self-hosting/docker) covers the production Compose stack. + +This setup lets a team serve a proprietary fine tune from infrastructure it controls and use that model inside Sim's visual builder. Local model support is a self-hosting capability and does not require Sim Enterprise. + +Workspace BYOK credentials work on every Sim Cloud plan for supported hosted model providers. Organization-level keys require Pro for Teams, Max for Teams, or Enterprise, as described in the [Sim BYOK documentation](https://docs.sim.ai/platform/costs#bring-your-own-key-byok). BYOK is useful when a fine tune remains hosted by a supported provider, but it does not turn a provider model into a self hosted model. + +### When does n8n fit a custom model agent? + +n8n fits when the main requirement is automating applications and data flows around a custom model call. + +n8n documents an [Ollama Chat Model node](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatollama/) and a [Microsoft Foundry Chat Model node](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatazureopenai/) that connects to Microsoft Foundry or Azure OpenAI resources. Its [HTTP Request node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/) can also call an authenticated REST API directly. That flexibility can suit a team already using n8n for deterministic automation that wants to insert inference into a larger process. + +Direct API calls can require more manual request, response, and tool orchestration than a model integration designed around the endpoint. + +### When does Dify fit a custom model agent? + +Dify fits teams that want an LLM application environment organized around model provider plugins and reusable model configuration. + +Dify's [model provider documentation](https://docs.dify.ai/en/self-host/use-dify/workspace/model-providers) describes provider installation, workspace-wide keys, and custom endpoint fields. Its [model plugin specification](https://docs.dify.ai/en/develop-plugin/features-and-specs/plugin-types/model-designing-rules) documents user-supplied model names and base URLs for OpenAI-compatible endpoints. Teams can also [deploy Dify with Docker Compose](https://docs.dify.ai/en/self-host/deploy/quick-start/docker-compose). + +This approach can suit teams that want to register a custom inference service and reuse it across application configurations. + +### What should existing Flowise users know? + +Flowise offered visual LangChain components for custom model calls. Its documentation covers [Ollama chat models](https://docs.flowiseai.com/integrations/langchain/chat-models/chatollama), [Azure ChatOpenAI](https://docs.flowiseai.com/integrations/langchain/chat-models/azure-chatopenai-1), and [custom base URLs for ChatOpenAI](https://docs.flowiseai.com/integrations/langchain/chat-models/azure-chatopenai). + +However, Flowise's maintainers announced that they were winding down operations and archived the repository in August 2026. Existing users can evaluate migration needs, but teams choosing a platform for a new project should use an actively maintained option. + +## What are the key facts about custom model support at a glance? + +Sim, n8n, Dify, and Flowise separate agent orchestration from model training, but their licenses, deployment models, and inference billing paths differ. + +1. Sim's core is Apache 2.0, while `apps/sim/ee` uses the separate [Sim Enterprise License](https://github.com/simstudioai/sim/blob/main/apps/sim/ee/LICENSE); under that licensing split, Sim's core can be self hosted, and custom model inference is paid through the selected provider or infrastructure running the endpoint. + +2. n8n uses the source-available [Sustainable Use License](https://github.com/n8n-io/n8n/blob/master/LICENSE.md). n8n supports [cloud and self hosted deployment options](https://docs.n8n.io/choose-how-to-use-n8n/), while model calls made with a team's own provider credentials are billed by that provider. + +3. Dify uses the [Dify Open Source License](https://github.com/langgenius/dify/blob/main/LICENSE), a modified Apache 2.0 license with additional conditions. Dify can be self hosted, and custom provider inference is paid through the provider or the team's own infrastructure. + +4. Flowise is no longer an active option for a new deployment because its repository is archived and its maintainers announced a wind-down. + +These facts are current as of November 2026. They describe software licensing, maintenance status, and model inference responsibility, not a guarantee that every hosted plan exposes every connection method. + +## How do you use a fine tuned model in an AI agent? + +Sim can use a fine tuned model after the model is deployed behind a supported provider or self hosted inference endpoint and made reachable from the Sim deployment. + +1. Deploy the fine tuned model through its original provider, Azure OpenAI, or a runtime such as vLLM, Ollama, LM Studio, or LiteLLM. +2. Record the model identifier, deployment name, base URL, authentication method, context limit, and expected request format. +3. Choose an agent platform with a documented connection path for that hosting method. +4. Configure credentials and endpoint settings without placing secrets inside prompts or workflow inputs. +5. Select the model in the agent or workflow and connect only the tools the agent is allowed to use. +6. Test ordinary requests, malformed inputs, timeouts, tool calls, structured outputs, and context limit failures. +7. Compare the agent against a baseline model using the same evaluation set before moving production traffic. + +For self hosted Sim, use `OLLAMA_URL` for Ollama or the documented `VLLM_BASE_URL` and `LITELLM_BASE_URL` paths for compatible runtimes. Network access still matters because the Sim deployment must be able to reach the inference endpoint. + +## What is the difference between BYOK and bringing your own fine tuned model? + +Sim BYOK supplies credentials for a supported hosted model provider, while bringing a fine tuned model also requires the platform to address the specific model identifier, deployment, or custom endpoint. + +A provider key proves that the agent platform may call the provider. It does not specify which fine tune to use, expose a private endpoint, or make a local runtime reachable. + +For more context, read [how Sim's BYOK model works](https://www.sim.ai/library/byok-multi-model-ai-agent-builder) and the comparison of [agent builders for Claude, Gemini, GPT, and open models](https://www.sim.ai/library/ai-agent-builders-claude-gemini-gpt-open-models). + +## How should you choose a custom model AI agent builder? + +Sim fits a team that prioritizes a visual builder, self hosting, and documented local or OpenAI-compatible runtime paths. Choose n8n when the model call is one step inside a broader automation system. Choose Dify when model provider plugins and LLM application management are the central requirements. Do not start a new deployment on Flowise because the project has been wound down and archived. + +Before choosing a platform, confirm these requirements: + +1. The exact endpoint protocol and authentication method used by the deployed model. +2. Support for the model identifier or Azure deployment name. +3. Network connectivity from the agent runtime to the inference endpoint. +4. Tool calling and structured output compatibility for the selected model. +5. Context limits, timeout behavior, concurrency, and streaming support. +6. Logging rules for prompts, outputs, credentials, and proprietary data. +7. A fallback path when the custom model is unavailable or fails an evaluation. + +## Where can I compare related AI agent platform choices? + +Different comparisons answer different requirements. Read the broader [AI agent platform comparison](https://www.sim.ai/library/best-ai-agent-platforms-2026), the guide to [Claude, Gemini, GPT, and open model builders](https://www.sim.ai/library/ai-agent-builders-claude-gemini-gpt-open-models), the explanation of [BYOK for multi-model agents](https://www.sim.ai/library/byok-multi-model-ai-agent-builder), or the comparison of [self hosted AI workflow automation platforms](https://www.sim.ai/library/best-self-hosted-ai-workflow-automation-platforms-2026). diff --git a/apps/sim/public/library/ai-agent-platforms-own-fine-tuned-models/cover.jpg b/apps/sim/public/library/ai-agent-platforms-own-fine-tuned-models/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..edd619f1fe9d5925317636441057f8891f9aeee7 GIT binary patch literal 29744 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 jlkUI$i00q%`