Fungi Studio Docs
  • Welcome
  • Get Started
    • Quickstart
  • Basics
    • Projects
    • Graphs
    • Tools
    • Personas
    • Schemas/Databases
    • UI Components
    • Pages/Apps
  • hi, i'm mushy
    • what i do
    • how i work
    • my yield sources
    • how to get started
    • security
    • fees
    • $fungi incentive campaign
    • protocol rewards & incentives
    • glossary
    • faqs
    • support & contact
    • legal
      • Privacy Policy
      • Terms & Conditions
Powered by GitBook
On this page
  • Graph Design
  • Nodes
  • Basic Information
  • Context
  • Tools
  • Router
  • Persona
  • Composite
  • Database
  • UI
  • Memory
  • Scheduler
  • Graph Settings
  1. Basics

Graphs

Graphs are the agentic workflows you can design with no code experience.

Graph Design

Graphs in Fungi Studio always contain an entry point and an end point. These two nodes control where the sequential order of node execution starts and where it ends.

Nodes

Via the top right of the graph editor, you can create new nodes. These nodes are the building blocks of all agents across the Fungi ecosystem. Each node can be configured to have a very specific response and tailored for varying use cases.

Here are all of the many options to configure in a node:

Basic Information

Just for cosmetic control for how your nodes can be viewed by yourself and others.

  • Title

  • Description

Context

This is the most important section in defining your node's intended actions.

  • System Message: This input is designed to be the full set of directions and prompt that will be given to this node on every execution it encounters. It is extremely important to iterate and find which kinds of prompts lead to best performance.

  • Use Initial Prompt: If checked, this will give this node the initial message either prompted by a user or an automation in its context. Uncheck this if this node does not need to see what the user said, or if that information would skew the results of this node negatively.

  • Response Nodes: Select nodes from the graph that you would like their outputs to be included in the context of this node. Make sure that the nodes you select here are executed prior to this node, otherwise, they will have no response to pass until they have already been executed.

  • Max Tokens: Limit the amount of tokens this node can use with whichever model is configured.

  • Temperature: Adjust the temperature between 0 and 1, with 1 leading to more varied and random responses and 0 leading to a more certain and predictable output.

  • Model: Choose the initial model that this node may use. Each node in a single agentic graph is model independent, meaning you can have as many different models in a graph as you'd like. Check out our supported model list.

  • Smart Model: If the initial model fails, the node will try again with this smart model. We recommend using a lighter/less-expensive model first and then trying again with a heavier model the second time around.

Tools

If you'd like this node to execute custom code scripts in either Python or JavaScript, you must configure the tools. Also remember to optimize your system message to direct the node in which cases to optionally use tools or ensure a tool is triggered on each execution.

  • Configure Tool Parameters: For any custom tool parameters, you may configure the parameters to any one of these values:

    • Static: A value to be used every time can be inputted

    • Inference: The LLM will use natural language to understand what value to fill based on given context

    • Environment Variable: From your project settings you may use any of your project env vars

    • Composite Parameter: If your graph is composite, then you may utilize any of the graph's reusable composite parameters that have been passed to this graph through the composite node configuration.

    • Initial Prompt: Use the initial user message of the graph either sent by a user or an automation.

    • Tool Output: Use the output of a tool from a previously executed node

    • Node Output: Use the output field of a previously executed node

Router

When a node is connected to more than one node on it's output, we currently do not support two routes being executed at the same time, so, you must configure routing options to ensure that this node knows which path to take based on context. We have two currently operating methods to do so:

  • Inference: Use context to match up nodes with a description as to why the node would choose this route.

  • Chance Weights: Give each route a chance out of 100 to be chosen. This is for configuring random route execution each cycle.

Persona

  • Select a Persona: Choose a persona in your project to use

  • Allow Upload: Check this box if you would like your node to upload a memory every time this node gets executed

    • Upload System Message: a specific system message for describing the format of the memory uploaded.

  • Allow Get: Check this box if you would like your node to retrieve memories from the persona's RAG database.

    • Get Scope: Optional filters for what memories will be retrieved, you can select multiple at once.

      • Persona: retrieve all memories of this persona

      • User: retrieve only memories uploaded by the user making this current execution

      • Graph: retrieve only memories uploaded by this graph

      • Node: retrieve only memories uploaded by this node

    • Query Type: Choose what kind of query will be made to the RAG database.

      • Static: this will be the same query value on every execution

      • Inference: each execution will determine the query based on context

      • Node Input: use a node's raw input context as the query

Composite

Database

  • Query Type: Choose one query

    • Create: allows this node to make creation queries

    • Update: allows this node to make update queries

    • Delete: allows this node to make delete queries

  • Filter by fields

    • Static: have this field set to a static value on every query

    • Inference: have this field filled in based on context for every query

UI

Memory

If memory is enabled for the graph you're editing, then nodes have access to specific configurations on how to utilize that graphs memory. When memory is enabled, each graph execution is saved in our cloud, so that node outputs or entire graph outputs can be utilized by nodes in future graph cycles.

There are different configurations on how to utilize memory per node:

  • Use Memory: whether this node will use memory at any capacity

  • Use Outputs: using the outputs of the node/graph memory

  • Use Inputs: using the initial prompt of graph memory or the input of node memory

  • Filter by user: whether the memories being used are just based on the executions of the user making the request

  • Memory Type

    • Graph: use the graph input/output of previous cycles as the memory

    • Node: select which nodes to use the input/output of previous cycles as memory

  • Memory Limit: limit the distance of how many memories back this node will be using for the current configuration.

Scheduler

Graph Settings

From the graph settings tab you have very important configurations that are required to make some node features work.

  • Register as composite node: this must be checked in order to configure composite parameters that will be used within this graph and will be filled in if his graph is ever used in a node's composite options.

  • Enable memory update: this must be checked if you want your graph to begin uploading memories that can be used by any of the graph's nodes in their memory options.

PreviousProjectsNextTools

Last updated 20 days ago

Select Tools: Choose one or many from your project to give to this node.

Link a to a graph by configuring out its memories get modified or used in a node's execution.

Choose anyone of your in your project to respresented by this node. This is so that you. can reuse a single graph's logic in several different graphs. You must also define any composite parameters that this graph may need, so that you can have optional different results from use case.

Use any files in your project to allow this node access to the data associated with that schema. You can configure several different queries.

Give your node access to render dynamically when their is context around a specific UI type.

You can manage the creation/update/deletion of new automations of either this or other graphs in the project (to be developed further).

tools
persona
graphs
schema
UIs
graph