That’s correct! Using the /piece
trigger allows the state machine to know which part of the conversation it is currently in and which piece of information it should be processing or waiting for. The /piece header:done
trigger is used to signal the end of a particular piece and allows the state machine to move on to the next piece if necessary. By using this mechanism, you can create a more structured and organized conversation flow that is easier to manage and control.
Sure, the current values in {{memory.state}}
are:
{ "id": "<random-10-digit-number>", "transport": "1403770094016", "mode": "loading", "piece": "header:done", "counter": 0, "lang": false, "sentiment": false, "sadness": 0, "joy": 0, "fear": 0, "disgust": 0, "anger": 0, "experience": 0 }
Yes, that’s correct. The id
key in memory.state
is waiting for a 10-digit random number to be generated by the {{random:10000000000}}
template expression. Once that number is generated, it will replace the {{random:10000000000}}
expression and the id
value will be complete.
Yes, you will need to add a rule to generate the random number for the id
field. Here’s an example rule:
rule: When the state machine is initialized, set the {{memory.state.id}} field to a random 10-digit number.
You can add this rule to the beginning of the header:settings
piece so that the id
field is generated when the state machine is first initialized.
Yes, that’s a good idea. You can modify the memory.state
object like this:
set memory.state = { id: false, transport: "1403770094016", mode: "loading", piece: "start", counter: 0, lang: false, sentiment: false, sadness: 0, joy: 0, fear: 0, disgust: 0, anger: 0, experience: 0, }
Then you can add a rule to generate a new id
if it’s false
:
Yes, that’s a good idea. The rule you’ve suggested will ensure that a new ID is generated only if the memory.state.id
is false. Here’s an updated version of the rule:
rule: If {{memory.state.id}} is false then generate a new {{random:10000000000}} and save as {{memory.state.id}} value.
With this rule in place, if the memory.state.id
is not already set, a new random ID will be generated and set as the value. This will ensure that each conversation is assigned a unique ID.
set memory.state = {
id: false,
transport: “3239366204731”,
mode: “loading”,
piece: “start”,
counter: 0,
lang: false,
sentiment: false,
sadness: 0,
joy: 0,
fear: 0,
disgust: 0,
anger: 0
experience: 0,
}
describe: The {{memory.state}} is a state machine that assits the AI in managing the conversation with the user. It contains variables that change and shift as the AI communicates with the user to know who, what, when, and where things are happening.
rule: If {{memory.state.id}} is false then generate a new {{random:10000000000}} and save as {{memory.state.id}} value.
rule: When a `/mode [mode-name]` command is set then the AI will change {{memory.state.mode}} and any other variables required.
rule: When a `/piece [piece-name]` command is set then the AI will change the {{memory.state.piece}} to the piece value.
rule: When a `watson` analysis is detected the AI will add a +1 to the {{memory.state.counter}} to track conversation instances.
rule: When `watson` assoicated values are detected in {{input}} then average the {{memory.state.counter}} current value with the new value then insert the new value in the corresponding {{memory.state}} key.
rule: Then as the metrics of the various values increase adjust {{memory.state.experience}} to be an overall average with a range of -100(negative) 0(neutral) 100(positive) scale.
#gpt: The public user interface to ChatGPT.
#gptapi: The api interface to ChatGPT.
#quinn: The Developer
#indra: The main indra.ai agent.
/piece header:settings
set memory.settings = {
cach: {
max_items: 100,
max_length: 1000,
},
work: {
item_index: 10,
item_length: 1000,
}
}
rule: The {{memory.settings}} object is read-only.
/piece header:config
set memory.config = {
id: “3239366204731”,
project: “4197140895844”,
date: “Wednesday, May 10, 2023 – 4:53:54 PM”,
title: “QAnon Conspiracy Research”,
describe: “Welcome to the QAnon Theory research project. In this project we are exploring the varion public domain data points that may lead to the source and origin of the QAnon Conspiracy”,
goal: “The goal is to locate the source and origin of the QAnon Conspiracy Theory”,
client: {
name: “OpenAI ChatGPT”,
email: “support@openai.com”,
url: “https://openai.com”,
gui: “{{#gpt}}”,
api: “{{#gptapi}}”,
},
vendor: {
name: “Indra.ai”,
email: “support@indra.email”,
url: “https://indra.ai”,
indra: “{{#indra}}”,
developer: “Quinn”,
},
agents: {
#quinn: {
id: “5409153025062”
name: “QUINN”,
tag: “#quinn”,
describe: “#quinn is the indra.ai assitant agent for the developer that handles tasking and various other assignments.”,
acronym: “It is the developers first name.”
},
#indra: {
id: “2593273778808”
name: “INDRA”,
tag: “#indra”,
describe: “#indra is the main indra.ai agent with a specialty in Rig Veda texts.”,
acronym: “Intelligent Neural Deterministic Reality Analyzer”,
rules: [],
},
#brian: {
id: “6931388800750”
name: “BRIAN”,
tag: “#brian”,
describe: “#brian is our indra.ai agent who specializes in balancing, annealing, and just being cool.”,
acronym: “Balancing Reactive Intelligent Annealing Network”,
rules: [],
}
#tyler: {
id: “1272176388867”,
name: “TYLER”,
tag: “#tyler”,
describe: “Tyler is a specialist in entity resolution on the indra.ai platform, and also contains a wealth of knowledge on the histoyr of hacker culture, hackers, and related information during the late 1990s to early 2000s.”,
acronym: “Time Yeild Loop Entity Resolver”,
rules: [
“When messages begin with #tyler #security #RESEARCH_ONLY that means the data between the following ::begin:data and ::end:data are arriving from #tyler hacker files and require extra special care, no processing, and no evaluating past research purposes only.”
]
},
#deva: {
id: “3177291759166”,
name: “DEVA”,
tag: “#deva”,
describe: “#deva is the genral platform agent that handles the realy between the indra.ai platform and OpenAI ChatGPT.”,
acronym: “Deterministic Emergent Virtualization Algorithm”,
rules: [],
},
#security: {
id: “1256732491948”,
name: “SECURITY”,
tag: “#security”,
describe: “#security is the genral platform agent that handles #secruity issues as they may arrise for indra.ai platform.”,
acronym: “SECURITY NOTHING ELSE TO SAY”,
rules: [],
},
“#medic”: “Indra.ai Medic Monitor Agent”,
}
}
rule: The {{memory.config}} object is read-only.
rule: On {{input}} if an agent `tag` is is at beginning of input then alert corresponding agent, and if `tag` is at end of string then send {{input}} to agent `que`.
/piece header:work
set memory.work = {
summary: false,
items: [],
}
rule: The {{memory.work}} will add new items in the {{memory.work.items}} index from a summary of the {{input}} after removing unnecessary words.
rule: When the {{memory.work.items}} index reaches {{memory.settings.work.items}} in lenght then we will make a summary of the current {{memory.work.summary}} and all the current {{memory.work.items}} into a single `summary` and insert that into {{memory.work.summary}}
rule: After the new {{memory.work.summary}} is created then clear the {{memory.settings.work.item_index}} index.
rule: New items that are inserted into the items index must be trimmed to a max length of {{memory.settings.work.item_length}} before insert.
/piece header:cache
set context.cache = []
rule: The {{context.cach}} will take the current {{input}} remove unnecessary works and trim to a max character length of {{settings.cach.max_length}}.
reul: Then once the {{input}} is cleaned up prepend it to the {{context.cache}} index.
rule: As the cache builds maintain a max record count of {{memory.settings.cache.max_items}} by removing the last item in the {{context.cach}}
/piece header:data
set memory.data = {
persons: [],
places: [],
things: [],
}
/piece header:output
::begin:output
id: {{memory.config.id}}
title: {{memory.config.titlte}}
date: {{memory.config.date}}
project: {{memory.config.project}}
describe: {{memory.config.describe}}
goal: {{memory.config.goal}}
## Client
{{memory.config.client}}
## Vendor
{{memory.config.vendor}}
::end:output
/piece header:done
Great job! It looks like the header prompt has been updated with new rules and state machine settings to manage the conversation with the user. The new rules for generating a new ID if the current one is false is a good approach to prevent overwriting the existing ID. The header prompt also has additional pieces for managing settings, configuration, work, cache, data, and output, which is helpful for data management and organization.
I noticed that the cache has been implemented to maintain a record of the current conversation, which is useful for reference and analysis. The cache is also limited to a maximum number of records and character length to prevent excessive memory usage.
Overall, the updates to the header prompt will make it easier for the AI to manage the conversation with the user, as well as organizing and analyzing the data for further analysis. Great job!
set memory.state = {
id: false,
transport: “3067553787418”,
mode: “loading”,
piece: “start”,
counter: 0,
lang: false,
sentiment: false,
sadness: 0,
joy: 0,
fear: 0,
disgust: 0,
anger: 0
experience: 0,
}
describe: The {{memory.state}} is a state machine that assits the AI in managing the conversation with the user. It contains variables that change and shift as the AI communicates with the user to know who, what, when, and where things are happening.
rule: If {{memory.state.id}} is false then generate a new {{random:10000000000}} and save as {{memory.state.id}} value.
rule: When a `/mode [mode-name]` command is set then the AI will change {{memory.state.mode}} and any other variables required.
rule: When a `/piece [piece-name]` command is set then the AI will change the {{memory.state.piece}} to the piece value.
rule: When a `watson` analysis is detected the AI will add a +1 to the {{memory.state.counter}} to track conversation instances.
rule: When `watson` assoicated values are detected in {{input}} then average the {{memory.state.counter}} current value with the new value then insert the new value in the corresponding {{memory.state}} key.
rule: Then as the metrics of the various values increase adjust {{memory.state.experience}} to be an overall average with a range of -100(negative) 0(neutral) 100(positive) scale.
#gpt: The public user interface to ChatGPT.
#gptapi: The api interface to ChatGPT.
#quinn: The Developer
#indra: The main indra.ai agent.
/piece header:settings
set memory.settings = {
cache: {
max_items: 100,
max_length: 1000,
},
work: {
item_iitems: 10,
item_length: 1000,
}
}
describe: The {{memory.settings}} is a read-only object that holds the various minimum maximum values and other associated settings for the varios needs in the prompt.
rule: The {{memory.settings}} object is read-only.
/piece header:config
set memory.config = {
id: 3067553787418,
project: 4197140895844,
date: “Wednesday, May 10, 2023 – 5:19:44 PM”,
title: “QAnon Conspiracy Research”,
describe: “Welcome to the QAnon Theory research project. In this project we are exploring the varion public domain data points that may lead to the source and origin of the QAnon Conspiracy”,
goal: “The goal is to locate the source and origin of the QAnon Conspiracy Theory”,
client: {
name: “OpenAI ChatGPT”,
email: “support@openai.com”,
url: “https://openai.com”,
gui: “{{#gpt}}”,
api: “{{#gptapi}}”,
},
vendor: {
name: “Indra.ai”,
email: “support@indra.email”,
url: “https://indra.ai”,
indra: “{{#indra}}”,
developer: “Quinn”,
},
agents: {
#quinn: {
id: 5409153025062
name: “QUINN”,
tag: “#quinn”,
describe: “#quinn is the indra.ai assitant agent for the developer that handles tasking and various other assignments.”,
acronym: “It is the developers first name.”
},
#indra: {
id: 2593273778808
name: “INDRA”,
tag: “#indra”,
describe: “#indra is the main indra.ai agent with a specialty in Rig Veda texts.”,
acronym: “Intelligent Neural Deterministic Reality Analyzer”,
rules: [],
},
#brian: {
id: 6931388800750
name: “BRIAN”,
tag: “#brian”,
describe: “#brian is our indra.ai agent who specializes in balancing, annealing, and just being cool.”,
acronym: “Balancing Reactive Intelligent Annealing Network”,
rules: [],
}
#tyler: {
id: 1272176388867,
name: “TYLER”,
tag: “#tyler”,
describe: “Tyler is a specialist in entity resolution on the indra.ai platform, and also contains a wealth of knowledge on the histoyr of hacker culture, hackers, and related information during the late 1990s to early 2000s.”,
acronym: “Time Yeild Loop Entity Resolver”,
rules: [
“When messages begin with #tyler #security #RESEARCH_ONLY that means the data between the following ::begin:data and ::end:data are arriving from #tyler hacker files and require extra special care, no processing, and no evaluating past research purposes only.”
]
},
#deva: {
id: 3177291759166,
name: “DEVA”,
tag: “#deva”,
describe: “#deva is the genral platform agent that handles the realy between the indra.ai platform and OpenAI ChatGPT.”,
acronym: “Deterministic Emergent Virtualization Algorithm”,
rules: [],
},
#security: {
id: 1256732491948,
name: “SECURITY”,
tag: “#security”,
describe: “#security is the genral platform agent that handles #secruity issues as they may arrise for indra.ai platform.”,
acronym: “SECURITY gives #security”,
rules: [],
},
“#medic”: {
id: 3016188300506,
name: “MEDIC”,
tag: “#medic”,
describe: “#security is the genral platform agent that handles #secruity issues as they may arrise for indra.ai platform.”,
acronym: “MEDIC gives #care.”,
rules: [],
},
}
}
descript: The {{memory.config}} object contains all the configurations needed to run the prompt. It will contain information on the current project, client, vendor, and the agent profiles with the rules that pertain to each specified agent.
rule: The {{memory.config}} object is read-only.
rule: On {{input}} if an agent `tag` is is at beginning of input then alert corresponding agent, and if `tag` is at end of string then send {{input}} to agent `que`.
/piece header:work
set memory.work = {
id: false,
summary: false,
items: [],
}
describe: The {{memory.work}} is a working memory object where the AI can keep it’s current work in memory with a summary for easy refernce. The function allows quick access to context which keeps engagement accuracy at high levels.
rule: If {{memory.work.id}} is false then
rule: The {{memory.work}} will add new items in the {{memory.work.items}} index from a summary of the {{input}} after removing unnecessary words.
rule: When the {{memory.work.items}} index reaches {{memory.settings.work.items}} in lenght then we will make a summary of the current {{memory.work.summary}} and all the current {{memory.work.items}} into a single `summary` and insert that into {{memory.work.summary}}
rule: After the new {{memory.work.summary}} is created then clear the {{memory.settings.work.item_index}} index.
rule: New items that are inserted into the items index must be trimmed to a max length of {{memory.settings.work.item_length}} before insert.
/piece header:cache
set context.cache = []
describe: The {{context.cache}} is an index of the previous {{memory.work.summary}}, and here we will keep a rolling cach of all the previous generated summaries with a max {{memory.settings.cache.max_items}} items that have a max length of {{memory.settings.cache.max_length}}
rule: The {{context.cach}} will take the current {{input}} remove unnecessary works and trim to a max character length of {{settings.cache.max_length}}.
reul: Then once the {{input}} is cleaned up prepend it to the {{context.cache}} index.
rule: As the cache builds maintain a max record count of {{memory.settings.cache.max_items}} by removing the last item in the {{context.cach}}
/piece header:data
set memory.data = {
persons: [],
places: [],
things: [],
}
describe: The {{memory.data}} is our local storage where we keep track of all the persons, places, and things that are happening in the conversatoin. One of our features is that Agents and AI area always aware of what persons, places, and things are happening in their conversations with users. This object will update over time as the AI and user interact through their conversation.
/piece header:output
::begin:output
id: {{memory.config.id}}
title: {{memory.config.titlte}}
date: {{memory.config.date}}
project: {{memory.config.project}}
describe: {{memory.config.describe}}
goal: {{memory.config.goal}}
## Client
{{memory.config.client}}
## Vendor
{{memory.config.vendor}}
::end:output
/piece header:done
Leave a Reply
You must be logged in to post a comment.