diff --git a/src/ai.njk b/src/ai.njk index 321f9ba389..92e87249e3 100644 --- a/src/ai.njk +++ b/src/ai.njk @@ -3,10 +3,26 @@ layout: page nohero: true imageDescription: "Plant worker interacting with an HMI" meta: - title: "Industrial AI: FlowFuse Expert, Governed and Built-In" - description: "Industrial AI with FlowFuse: build industrial applications with FlowFuse Expert, act on live operations behind approvals, and give your company-sanctioned AI governed access. Every AI capability on one platform, with the permissions, RBAC, and audit your plants require." + faq: + - question: "What is AI for industrial applications?" + answer: > + AI for industrial applications means using AI to work with industrial data, equipment and processes. Common uses include helping engineers build automation applications, analysing machine data, inspecting products with computer vision, and allowing people or AI agents to interact with production systems. FlowFuse provides a platform for connecting these AI capabilities to industrial data and applications. + - question: "How is AI used in industrial applications?" + answer: > + AI can support different parts of an industrial operation, from engineering and quality inspection to production monitoring and automation. For example, it can help generate application logic, analyse live machine data, identify defects from camera feeds, or let an AI agent interact with industrial systems. FlowFuse brings these capabilities into the same environment as the industrial applications and data they need to work with. + - question: "What are examples of AI for industrial applications?" + answer: > + Examples include AI-assisted engineering, automated visual inspection, natural-language access to production data, AI agents that interact with industrial systems, and AI models running locally at the edge. With FlowFuse, teams can use FlowFuse Expert to build and explain applications, connect external AI agents over MCP, run ONNX vision models, and use cloud or local LLMs within industrial workflows. + - question: "Can I use my own AI agent with FlowFuse?" + answer: > + Yes. FlowFuse acts as an MCP server, so Microsoft Copilot, ChatGPT, Claude, Gemini or a local model can connect to it and work your platform. You add one address, sign in, and choose which teams the agent may act on and whether it has editing rights or read access only. Because the agent is yours, so is the model behind it. + - question: "How do you keep AI from making changes you did not approve?" + answer: > + Every AI action runs through the same permissions and role-based access control that govern your teams, enforced on every call, so a read-only grant is refused whatever the agent tries. No agent can delete an instance, an application, a snapshot or a team, deploying stays with a person, and every action is logged and attributed in the audit log. + title: "AI for Industrial Applications: Governed AI for Industry" + description: "AI for industrial applications, without losing control: use FlowFuse Expert, or connect Copilot, ChatGPT, Claude or a local model to your operations." hero: - title: "Industrial AI, Governed and Built-In" + title: "AI for Industrial Applications, Governed and Built-In" description: - "AI capability is table stakes in 2026. Governed access to your operations is the difference." buttonText: "Request a Demo" @@ -23,22 +39,18 @@ capabilityGroups: subtitle: "FlowFuse Expert turns intent into working industrial applications, right in the editor." items: - name: "AI-assisted engineering" - svgPath: "components/icons/code-bracket.svg" status: "Available" statusKind: "live" - description: "Generate and edit Node-RED flows, Function node JavaScript, SQL queries and dashboard UI from plain language, and ask Expert to explain any existing flow so any engineer can pick it up. It works inline in the editor your team already uses, so there is no separate tool to context-switch into. That turns unfamiliar or inherited flows into something the whole team can read and maintain." + description: "Generate and edit Node-RED flows, Function node JavaScript, SQL queries and dashboard UI from plain language, and ask Expert to explain any existing flow so any engineer can pick it up. It works inline in the editor your team already uses, so there is no separate tool to context-switch into. That turns unfamiliar or inherited flows into something the whole team can read and maintain." - name: "Prompt-to-app" - svgPath: "components/icons/sparkles.svg" status: "Available" statusKind: "live" description: "Describe the application you need and FlowFuse Expert agentically builds the starting flows and logic directly in your workspace. You begin from a working draft instead of a blank canvas, then refine it like any other flow. Everything it creates stays inside the platform, so the same permissions and review apply from the first node." - name: "Build your own AI agents" - svgPath: "components/icons/squares-plus.svg" status: "Available" statusKind: "live" description: "Start from an agent blueprint, like the LLM chat agent or RAG chat agent, to stand up a task-specific AI agent grounded in your own data, tools and context. It gives you a proven structure to adapt rather than wiring an agent up from scratch. With MCP servers you can give the agent access to anything, including your RAG applications. Because it runs on the platform, the agent operates within the access you grant it." - - name: "Built-in product expert" - svgPath: "components/icons/book-open.svg" + - name: "Built-in product knowledge" status: "Available" statusKind: "live" description: "A chat assistant with answers grounded in FlowFuse and Node-RED documentation, so guidance comes from the product, not stale wikis. Ask how a node works or how to approach a build and get an answer without leaving your workspace. It shortens the path from question to working flow for new and experienced users alike." @@ -47,55 +59,134 @@ capabilityGroups: subtitle: "AI that acts inside your flows and answers questions about live operations, always behind your controls." items: - name: "Governed autonomous operations" - svgPath: "components/icons/bolt.svg" + externalNote: "For external agents, approval cards do not apply. The access you granted is the control, enforced on every call." status: "Available" statusKind: "live" description: "Platform Automations let AI act on live systems, with every write behind an approval card, session-scoped and fully audited. A person approves, edits or rejects each proposed change before it reaches a machine. Nothing runs outside the permissions and RBAC that already govern your teams." - name: "Ask your plant anything" - svgPath: "components/icons/chat-bubble-left-right.svg" + externalNote: "For external agents, whether they can reach the MCP servers you build in your own flows depends on the agent." status: "Available" statusKind: "live" description: "In Insights mode, ask questions in natural language and get answers grounded in live machine state, alarms and logs. Operators and engineers can check what is happening on the floor without building a report or querying a database by hand. Table and MQTT-broker reading are coming soon." - name: "Automated visual inspection" - svgPath: "components/icons/camera.svg" status: "Available" statusKind: "live" - description: "Run ONNX vision models inside flows next to the machine, with camera ingest over RTSP, for inference that works offline and keeps data on your network. Detection results flow into the same logic as any other signal, so you can trigger alerts or actions from what the model sees. Running at the edge means no round trip to the cloud and no image data leaving the plant." + description: "Run ONNX vision models inside flows next to the machine, with camera ingest over RTSP, for inference that works offline and keeps data on your network. Detection results flow into the same logic as any other signal, so you can trigger alerts or actions from what the model sees. Running at the edge means no round trip to the cloud and no image data leaving the plant." - name: "Use any model within flows" - svgPath: "components/icons/cog-6-tooth.svg" status: "Available" statusKind: "live" - description: "Certified LLM nodes bring OpenAI, Anthropic, Gemini or local models via Ollama into any flow with your own keys. Choose the provider that fits each task, or keep everything on local models when data cannot leave your network. Because you supply the keys, model access and spend stay under your control." - - title: "Connect and govern your AI" - eyebrow: "Connect" - subtitle: "Give the AI your company already trusts a governed door into operations, on a boundary you control." + description: "Certified LLM nodes bring OpenAI, Anthropic, Gemini or local models via Ollama into any flow with your own keys. Choose the provider that fits each task, or keep everything on local models when data cannot leave your network. Because you supply the keys, model access and spend stay under your control." + - title: "Connect your own agent" + eyebrow: "Connect in" + subtitle: "The agent your company already approved, working your platform and building in Node-RED. Your agent, your model, on a boundary you set." + items: + - name: "Bring your own AI agent" + status: "Available" + statusKind: "live" + description: "Point Microsoft Copilot, ChatGPT, Claude or a local model at FlowFuse, sign in, and it can query your teams and instances and build Node-RED applications for you. Where company policy only permits an approved AI assistant, this is how that assistant reaches your operations, instead of nobody getting AI on the platform at all." + - name: "You decide what it reaches" + status: "Available" + statusKind: "live" + description: "Signing in asks which teams the agent may act on and whether it may make changes at all. FlowFuse holds you to that on every call, so a read-only grant is refused whatever the agent tries. Nothing an agent reaches can delete an instance, an application, a snapshot or a team, and deploying stays yours." + - title: "Expose your own tools" + eyebrow: "Send out" + subtitle: "The other direction. Your flows become tools that an agent can call as part of its work." items: - - name: "Connect your company's AI" - svgPath: "components/icons/arrows-right-left.svg" - status: "Coming soon" - statusKind: "soon" - description: "Expose flows as MCP tools so the AI your company already sanctioned, like Claude or Copilot, can reach operational data through a permissioned boundary. The AI reaches only what you expose, on the terms you set, rather than getting direct access to plant systems. This is our most-requested capability and is in active development." - name: "AI that uses your tools" - svgPath: "components/icons/puzzle-piece.svg" + externalNote: "Anyone can build them. For external agents, whether they can call them depends on the agent." status: "Available" statusKind: "live" - description: "Build your own MCP servers and let Insights-mode agents call your tools and services as part of a workflow. Wrap an internal API or system as a tool once, then let agents use it wherever it fits. The agent stays inside the workflow you designed, calling only the tools you register." + description: "Build your own MCP servers and let Insights-mode agents call your tools and services as part of a workflow. Wrap an internal API or system as a tool once, then let agents use it wherever it fits. The agent stays inside the workflow you designed, calling only the tools you register." +connect: + endpoint: "https://app.flowfuse.com/mcp" + endpointNote: "Self-hosted, use your own platform address." + step1: + title: "Copy the FlowFuse connector URL" + description: "You will paste this into your agent in the next step." + step3: + title: "Sign in and choose what it reaches" + description: "Which teams the agent may act on, and whether it has editing rights or read access only." + # Each client renders `logo` when set and its name as text when not. Drop a mark in + # src/images/ai/agents/ and add e.g. `logo: "/images/ai/agents/claude.svg"` to that + # client. See the README in that directory for sources and the trademark position. + clients: + - id: "expert" + logo: "/images/ai/agents/flowfuse-expert.svg" + name: "FlowFuse Expert" + builtIn: true + step1Title: "Sign in to FlowFuse" + step1Body: "A new account puts you in a hosted instance with Expert already in the editor. Nothing to add, no connector, no token." + step1Label: "Start a free trial" + step2Title: "Or start with the Device Agent" + step2Body: "Already running Node-RED on your own hardware? Connect it as a remote instance and Expert works there in the same way." + step2Label: "Install the Device Agent" + step2Url: "/docs/device-agent/quickstart/" + step3Title: "Ask for what you need" + step3Body: "Build a flow, explain one you inherited, write the Function node, or ask what is running on the floor. Every write waits for you to approve, edit or reject." + noStep3Cta: true + - id: "copilot" + logo: "/images/ai/agents/microsoft-copilot.svg" + name: "Microsoft Copilot" + step2Title: "Copilot Studio → Tools → Add a tool" + step2Body: "Choose Model Context Protocol and paste the URL. Describe what it is for: the orchestrator reads that to decide when to call it." + step2Label: "Open Copilot Studio" + step2Url: "https://copilotstudio.microsoft.com/" + - id: "chatgpt" + logo: "/images/ai/agents/chatgpt.svg" + name: "ChatGPT" + step2Title: "Settings → Connectors" + step2Body: "An administrator enables custom connectors first, under Permissions and Roles." + step2Label: "Open ChatGPT" + step2Url: "https://chatgpt.com/" + - id: "claude" + logo: "/images/ai/agents/claude.svg" + name: "Claude" + step2Title: "Settings → Customize → Connectors" + step2Body: "Add a custom connector and paste the URL. On Team and Enterprise an owner adds it once for everyone." + step2Label: "Open Claude connectors" + step2Url: "https://claude.ai/settings/connectors" + - id: "gemini" + logo: "/images/ai/agents/gemini.svg" + name: "Gemini" + step2Title: "Settings → Manage team → Connected apps" + step2Body: "Add the FlowFuse URL as an MCP server." + step2Label: "Open Gemini" + step2Url: "https://gemini.google.com/" + - id: "local" + logoInclude: "components/icons/server-stack.svg" + name: "Local and Custom Agents" + step2Title: "Your MCP client's config" + step2Body: "Any MCP-capable client works, pointed at your own model, so nothing has to leave your network." + step2Label: "See the documentation" + step2Url: "/docs/user/expert/third-party-agents/#local-and-self-hosted-models" + codingNote: "Command-line and editor agents such as Claude Code, Cursor, Visual Studio Code and Gemini CLI connect to the same URL." +showcase: + interval: 6000 + slides: + - id: "expert" + label: "FlowFuse Expert" + media: "/images/ai/schematic-expert.svg" + mediaAlt: "FlowFuse Expert sits inside the FlowFuse platform and Node-RED, as part of it." + - id: "external" + label: "Your own agent" + media: "/images/ai/schematic-external.svg" + mediaAlt: "An external AI agent stays its own thing and overlaps the FlowFuse platform and Node-RED, reaching into it." governance: - title: "Governance you can prove" + title: "AI Governance you can prove" subtitle: "The control plane every AI action runs through, the same one that governs your teams." items: - - svgPath: "components/icons/check-circle.svg" - title: "Approval cards on writes" - description: "Every write action AI proposes waits for a human to approve, reject or edit." - svgPath: "components/icons/lock-closed.svg" - title: "Per-tool permissions" - description: "Grant read, write or delete per tool and per team, so AI only reaches what you allow." + title: "Only the teams you grant" + description: "AI reaches the teams you allow and nothing else, enforced by the platform on every call." - svgPath: "components/icons/shield-check.svg" title: "Role-based access" description: "The same RBAC that governs your teams governs what AI can see and do." + - svgPath: "components/icons/check-circle.svg" + title: "Nothing gets deleted" + description: "No agent can remove an instance, an application, a snapshot or a team. There is no tool for it." - svgPath: "components/icons/clipboard-document-check.svg" title: "Audit on everything" - description: "Every action AI touches is logged, so you can show exactly what happened and when." + description: "Every action AI takes is logged and attributed, so you can show exactly what happened and when." ---
@@ -112,35 +203,200 @@ governance:

{{ p | safe }}

{% endfor %} -
- + {# + The live FlowFuse Expert prompt widget is disabled for now, not removed. + These are Nunjucks comments on purpose: an HTML comment does not stop + Nunjucks executing the include, so the modal and its script would still + ship. To re-enable, move these two lines out of this comment block. {% include "components/ai-chat-interface.njk" %} - - {% include "components/ai-expert-modal.njk" %} + #} + + +
+
+ {% for client in connect.clients %} + + {% endfor %} +
+ + {% for client in connect.clients %} +
+ +
+

01

+

{% if client.builtIn %}{{ client.step1Title }}{% else %}{{ connect.step1.title }}{% endif %}

+

{% if client.builtIn %}{{ client.step1Body }}{% else %}{{ connect.step1.description }}{% endif %}

+ {% if client.builtIn and client.step1Label %} + + {% endif %} + {% if not client.builtIn %} +
+

{{ connect.endpointNote }}

+
+ {{ connect.endpoint }} +
+ {% endif %} +
+ +
+

02

+

{{ client.step2Title }}

+

{{ client.step2Body }}

+ +
+ +
+

03

+

{% if client.step3Title %}{{ client.step3Title }}{% else %}{{ connect.step3.title }}{% endif %}

+

{% if client.step3Body %}{{ client.step3Body }}{% else %}{{ connect.step3.description }}{% endif %}

+ {% if not client.noStep3Cta %} + + {% endif %} +
+
+ {% endfor %} +
+

{{ connect.codingNote }} See the documentation.

+ +
- -
-
-
-
- {% image "./images/ai/ai-ui.png", "FlowFuse Expert showing AI-generated flow suggestions", [1200] %} + +
+
+
+ {% for slide in showcase.slides %} + + {% endfor %} +
+
+ {% for slide in showcase.slides %} +
+ {{ slide.mediaAlt }} +
+ {% endfor %} +
+
+
+ + + + +
+
+
+

{{ governance.title | safe }}

+

{{ governance.subtitle }}

+
+
+ {% for g in governance.items %} +
+
{% include g.svgPath %}
+

{{ g.title }}

+

{{ g.description }}

+ {% endfor %}
+ -
+

{{ capabilityIntro.title | safe }}

@@ -148,8 +404,10 @@ governance:
{% for group in capabilityGroups %}
- -
+ +

0{{ loop.index }} {{ group.eyebrow }} @@ -157,23 +415,38 @@ governance:

{{ group.title }}

{{ group.subtitle }}

- -
+ +
{% for item in group.items %} -
-
- -
-
- {{ item.name }} - {% if item.statusKind == 'soon' %} - Coming soon - {% endif %} -
-

{{ item.description | safe }}

-
+
+ +
+ {% if item.media %} + {% if ".webm" in item.media or ".mp4" in item.media %} + + {% else %} + {{ item.mediaAlt }} + {% endif %} + {% endif %}
+
+ {{ item.name }} + {% if item.statusKind == 'soon' %} + Coming soon + {% endif %} +
+

{{ item.description | safe }}

+ {% if item.externalNote %} +

{{ item.externalNote }}

+ {% endif %}
{% endfor %}
@@ -181,35 +454,85 @@ governance: {% endfor %}
- -
-
-
-

{{ governance.title | safe }}

-

{{ governance.subtitle }}

-
-
- {% for g in governance.items %} -
-
{% include g.svgPath %}
-

{{ g.title }}

-

{{ g.description }}

-
- {% endfor %} -
+ + + - - - -
+ +
-

Where AI meets your operations

-

The use cases pair with FlowFuse AI, from governed agent access to AI-assisted monitoring.

- {% set featuredUseCases = ["production-monitoring", "shop-floor-communication"] %} - {% include "components/use-case-links.njk" %} -

See all use cases

+

Frequently Asked Questions

+
+ {% include "faq.njk" %} +
+ + diff --git a/src/css/style.css b/src/css/style.css index 0be94f9c0a..0aa1b7d2cb 100644 --- a/src/css/style.css +++ b/src/css/style.css @@ -3248,6 +3248,103 @@ lite-youtube::before { height: 2.5rem; color: var(--color-indigo-600); } +/* "Differs by agent" clause: sits under a capability whose behaviour is not identical + on the FlowFuse Expert path and the bring-your-own-agent path. Quieter than the body + copy, and set off by a rule, so it reads as a qualification rather than a feature. */ +.ff-cap-differs { + font-size: 0.875rem; + line-height: 1.6; + color: var(--color-gray-500); + padding-left: 0.875rem; + border-left: 2px solid var(--color-indigo-200); +} + +/* Showcase tabs: text labels with a timing line, not buttons. The line under the active + tab fills over the rotation interval so the switch is expected rather than sudden. */ +.ff-show-tabs { + display: flex; + gap: 1rem; + margin-bottom: 1rem; +} + +/* Each tab takes an equal share of the row, so the timing lines together span the + full width of the well below them. */ +.ff-show-tab { + flex: 1 1 0; + min-width: 0; + display: flex; + flex-direction: column; + gap: 0.5rem; + padding: 0; + background: none; + border: 0; + text-align: left; + cursor: pointer; +} +.ff-show-tab__label { + font-size: 0.95rem; + font-weight: 400; + color: var(--color-gray-500); + transition: color 0.15s ease; + white-space: nowrap; +} +.ff-show-tab.is-active .ff-show-tab__label, +.ff-show-tab:hover .ff-show-tab__label { + color: var(--color-gray-900); +} +.ff-show-tab.is-active .ff-show-tab__label { font-weight: 500; } + +.ff-show-tab__track { + display: block; + height: 2px; + width: 100%; + background-color: var(--color-gray-200); + overflow: hidden; +} +.ff-show-tab__fill { + display: block; + height: 100%; + width: 0; + background-color: var(--color-indigo-600); +} +.ff-show-tab__fill.is-full { width: 100%; } +.ff-show-tab__fill.is-running { + animation: ffShowFill var(--ff-show-duration, 6000ms) linear forwards; +} +@keyframes ffShowFill { + from { width: 0; } + to { width: 100%; } +} +@media (prefers-reduced-motion: reduce) { + .ff-show-tab__fill.is-running { animation: none; width: 100%; } +} + +/* Agent tab strip: scrolls sideways rather than wrapping, so the row stays one line at + any width. Thin scrollbar so it reads as a control, not a scroll container. */ +.ff-agent-tabs { + scrollbar-width: thin; + -webkit-overflow-scrolling: touch; + overscroll-behavior-x: contain; +} +.ff-agent-tabs::-webkit-scrollbar { + height: 6px; +} +.ff-agent-tabs::-webkit-scrollbar-thumb { + background-color: var(--color-gray-300); + border-radius: 3px; +} + +/* Media well: a reserved 16:9 slot under each capability, for a screenshot or a + short loop. Deliberately visible while empty so the page shows where the assets + go, rather than collapsing and then reflowing when they land. */ +.ff-cap-well { + aspect-ratio: 16 / 9; + width: 100%; + overflow: hidden; + background-color: var(--color-white); + border: 1px solid var(--color-indigo-100); +} + .ff-cap-icon svg { width: 1.875rem; height: 1.875rem; diff --git a/src/images/ai/agents/README.md b/src/images/ai/agents/README.md new file mode 100644 index 0000000000..d4c5dc581f --- /dev/null +++ b/src/images/ai/agents/README.md @@ -0,0 +1,25 @@ +# Agent marks for the /ai connector tabs + +Each tab in the "connect your own agent" section renders `client.logo` when it is set in +`src/ai.njk`, and falls back to the agent's name as text when it is not. + +| File | Tab | Source | +| --- | --- | --- | +| `microsoft-copilot.svg` | Microsoft Copilot | `adoption.microsoft.com/wp-content/uploads/2023/09/icon-copilot.svg`, a Microsoft-owned domain. **Still needs a legal check**: Microsoft's trademark guidelines generally require permission to use its marks in a way that presents a product relationship, and this came from a marketing page rather than a brand kit with usage terms attached. | +| `chatgpt.svg` | ChatGPT | OpenAI brand kit, `OAI_OpenAI-Blossom_Black.svg`, downloaded by hand from `openai.com/brand` because that page blocks automated fetching. This is the OpenAI symbol, which is the icon form their kit provides. | +| `claude.svg` | Claude | Anthropic press kit, `anthropic.com/press-kit`, which redirects to an official CDN zip. File is "Claude Spark - Clay", the icon form intended to sit beside a label. Unmodified, in its own brand colour. | +| `gemini.svg` | Gemini | Google's own CDN, the Gemini sparkle used by Gemini's product surfaces. | +| _(none)_ | Local and Custom Agents | Not a brand mark by design. The repo icon `components/icons/server-stack.svg` is inlined instead of linked as a file, so it inherits `currentColor` and turns white when the tab is active. | + +All marks are used unmodified, at their own aspect ratio, in a 16px-tall slot beside the +agent's name. None is altered in colour or proportion. + +To add or replace one, drop the file here and set the path on that client: + +```yaml + - id: "claude" + logo: "/images/ai/agents/claude.svg" +``` + +Leave `logo` unset until the file exists. Setting it early renders a broken image, whereas +leaving it unset renders the name as text, which is the intended fallback. diff --git a/src/images/ai/agents/chatgpt.svg b/src/images/ai/agents/chatgpt.svg new file mode 100644 index 0000000000..7c119340c4 --- /dev/null +++ b/src/images/ai/agents/chatgpt.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/ai/agents/claude.svg b/src/images/ai/agents/claude.svg new file mode 100644 index 0000000000..64fe70ca8f --- /dev/null +++ b/src/images/ai/agents/claude.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/ai/agents/flowfuse-expert.svg b/src/images/ai/agents/flowfuse-expert.svg new file mode 100644 index 0000000000..7ce1777f2d --- /dev/null +++ b/src/images/ai/agents/flowfuse-expert.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/src/images/ai/agents/gemini.svg b/src/images/ai/agents/gemini.svg new file mode 100644 index 0000000000..4545c8331f --- /dev/null +++ b/src/images/ai/agents/gemini.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/ai/agents/microsoft-copilot.svg b/src/images/ai/agents/microsoft-copilot.svg new file mode 100644 index 0000000000..f93be73b7a --- /dev/null +++ b/src/images/ai/agents/microsoft-copilot.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/images/ai/connect-your-own-agent.svg b/src/images/ai/connect-your-own-agent.svg new file mode 100644 index 0000000000..118c1de9d1 --- /dev/null +++ b/src/images/ai/connect-your-own-agent.svg @@ -0,0 +1,55 @@ + + How your own agent reaches FlowFuse + + + + + + + + + + + + + + Your own AI agent + Copilot, ChatGPT, Claude + + + signs in + + + + WHAT YOU GRANTED + + + + One FlowFuse address + which teams it may reach, + and whether it may change them + + + + + + FlowFuse + your platform + + + + + + + Instances + and remote + + + Your editor + when you open it + + + Your agent talks to one address. FlowFuse reaches the instances, so they are never opened up. + + diff --git a/src/images/ai/schematic-expert.svg b/src/images/ai/schematic-expert.svg new file mode 100644 index 0000000000..8a9192b5b0 --- /dev/null +++ b/src/images/ai/schematic-expert.svg @@ -0,0 +1,20 @@ + + FlowFuse Expert is part of the platform + + + + + + + + + FlowFuse Platform + Node-RED + + FlowFuse + Expert + + diff --git a/src/images/ai/schematic-external.svg b/src/images/ai/schematic-external.svg new file mode 100644 index 0000000000..b1937b7148 --- /dev/null +++ b/src/images/ai/schematic-external.svg @@ -0,0 +1,20 @@ + + An external agent reaching into the platform + + + + + + + FlowFuse Platform + Node-RED + + + + External AI agent + +