You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Set up text-generation-webui and run the server like this: text-generation-webui\server.py --verbose --api --model-menu --nowebui
(Lama.cpp and llama.cpp.python showed similar Agent behaviour but those offer no debugging option)
Test models using custom and Alpaca jinja templates:
SuperAGI/SAM, TheBloke/yarn-mistral-7b-128k
Attempt to fix and observations
I've tried deleting everything from docker and also rearranged the code.
If i append the prompt variable to the message array again and add some test messages,
there are always some messages missing in the final prompt received by the API Server.
Changing the messages.append order somehow affects which messages are received.
If the model doesn't respond in correct format, the prompt variable wont change to the tool output even if a tool is triggered!
agent_message_builder.py
if history_enabled:
messages = [{"role": "system", "content": f"test1"}]
messages.append({"role": "system", "content": "test2"})
messages.append({"role": "system", "content": prompt})
messages.append({"role": "system", "content": f"The current time and date is {time.strftime('%c')}"})
messages.append({"role": "system", "content": "test3"})
Agent Config
Agent Name: offline
Agent Description: an agent for offline tasks
Agent Goals:
make a list of 5 animals you already know
write the results to a new .txt file or paste them in the chat
Instructions:
dont use the internet or any other source except your memory
ALWAYS RESPOND USING THE JSON SCHEMA OR YOU WILL RECEIVE THE SAME PROMPT AGAIN
(The second Instruction sometimes helped to get a valid response conforming the JSON schema.)
Jinja Templates
used with SAM (made for SAM example prompt)
instruction_template: |-
<s> {{ (messages|selectattr('role', 'equalto', 'system')|list|last).content|trim if (messages|selectattr('role', 'equalto', 'system')|list) else '' }}
{% for message in messages %}
{% if message['role'] == 'user' %}
[INST]
{{ message['content']|trim -}}
[/INST]
{% if not loop.last %}
{% endif %}
{% elif message['role'] == 'assistant' %}
{{ message['content']|trim -}}
</s>
{% if not loop.last %}
{% endif %}
{% elif message['role'] == 'user_context' %}
[INST]
{{ message['content']|trim -}}
[/INST]
{% if not loop.last %}
{% endif %}
{% endif %}
{% endfor %}
used with both (default text-generation-webui Alpaca.yaml)
instruction_template: |-
{%- set ns = namespace(found=false) -%}
{%- for message in messages -%}
{%- if message['role'] == 'system' -%}
{%- set ns.found = true -%}
{%- endif -%}
{%- endfor -%}
{%- if not ns.found -%}
{{- '' + 'Below is an instruction that describes a task. Write a response that appropriately completes the request.' + '\n\n' -}}
{%- endif %}
{%- for message in messages %}
{%- if message['role'] == 'system' -%}
{{- '' + message['content'] + '\n\n' -}}
{%- else -%}
{%- if message['role'] == 'user' -%}
{{-'### Instruction:\n' + message['content'] + '\n\n'-}}
{%- else -%}
{{-'### Response:\n' + message['content'] + '\n\n' -}}
{%- endif -%}
{%- endif -%}
{%- endfor -%}
{%- if add_generation_prompt -%}
{{-'### Response:\n'-}}
{%- endif -%}
Upload Error Log Content
superagi-celery-1 | 2024-05-05 01:57:16 UTC - Super AGI - INFO - [/app/superagi/vector_store/redis.py:132] - {'index_name': 'super-agent-index1', 'index_options': [], 'index_definition': ['key_type', 'HASH', 'prefixes', ['doc:'], 'default_score', '1'], 'attributes': [['identifier', 'tag', 'attribute', 'tag', 'type', 'TAG', 'SEPARATOR', ','], ['identifier', 'content_vector', 'attribute', 'content_vector', 'type', 'VECTOR', 'algorithm', 'FLAT', 'data_type', 'FLOAT32', 'dim', 1, 'distance_metric', 'COSINE']], 'num_docs': '0', 'max_doc_id': '0', 'num_terms': '0', 'num_records': '0', 'inverted_sz_mb': '0', 'vector_index_sz_mb': '0.00818634033203125', 'total_inverted_index_blocks': '0', 'offset_vectors_sz_mb': '0', 'doc_table_size_mb': '0', 'sortable_values_size_mb': '0', 'key_table_size_mb': '0', 'geoshapes_sz_mb': '0', 'records_per_doc_avg': 'nan', 'bytes_per_record_avg': 'nan', 'offsets_per_term_avg': 'nan', 'offset_bits_per_record_avg': 'nan', 'hash_indexing_failures': '0', 'total_indexing_time': '0', 'indexing': '0', 'percent_indexed': '1', 'number_of_uses': 2, 'cleaning': 0, 'gc_stats': ['bytes_collected', '0', 'total_ms_run', '0', 'total_cycles', '0', 'average_cycle_time_ms', 'nan', 'last_run_time_ms', '0', 'gc_numeric_trees_missed', '0', 'gc_blocks_denied', '0'], 'cursor_stats': ['global_idle', 0, 'global_total', 0, 'index_capacity', 128, 'index_total', 0], 'dialect_stats': ['dialect_1', 0, 'dialect_2', 0, 'dialect_3', 0, 'dialect_4', 0], 'Index Errors': ['indexing failures', 0, 'last indexing error', 'N/A', 'last indexing error key', 'N/A'], 'field statistics': [['identifier', 'tag', 'attribute', 'tag', 'Index Errors', ['indexing failures', 0, 'last indexing error', 'N/A', 'last indexing error key', 'N/A']], ['identifier', 'content_vector', 'attribute', 'content_vector', 'Index Errors', ['indexing failures', 0, 'last indexing error', 'N/A', 'last indexing error key', 'N/A']]]}
superagi-celery-1 | [2024-05-05 01:57:16,598: INFO/ForkPoolWorker-8] {'index_name': 'super-agent-index1', 'index_options': [], 'index_definition': ['key_type', 'HASH', 'prefixes', ['doc:'], 'default_score', '1'], 'attributes': [['identifier', 'tag', 'attribute', 'tag', 'type', 'TAG', 'SEPARATOR', ','], ['identifier', 'content_vector', 'attribute', 'content_vector', 'type', 'VECTOR', 'algorithm', 'FLAT', 'data_type', 'FLOAT32', 'dim', 1, 'distance_metric', 'COSINE']], 'num_docs': '0', 'max_doc_id': '0', 'num_terms': '0', 'num_records': '0', 'inverted_sz_mb': '0', 'vector_index_sz_mb': '0.00818634033203125', 'total_inverted_index_blocks': '0', 'offset_vectors_sz_mb': '0', 'doc_table_size_mb': '0', 'sortable_values_size_mb': '0', 'key_table_size_mb': '0', 'geoshapes_sz_mb': '0', 'records_per_doc_avg': 'nan', 'bytes_per_record_avg': 'nan', 'offsets_per_term_avg': 'nan', 'offset_bits_per_record_avg': 'nan', 'hash_indexing_failures': '0', 'total_indexing_time': '0', 'indexing': '0', 'percent_indexed': '1', 'number_of_uses': 2, 'cleaning': 0, 'gc_stats': ['bytes_collected', '0', 'total_ms_run', '0', 'total_cycles', '0', 'average_cycle_time_ms', 'nan', 'last_run_time_ms', '0', 'gc_numeric_trees_missed', '0', 'gc_blocks_denied', '0'], 'cursor_stats': ['global_idle', 0, 'global_total', 0, 'index_capacity', 128, 'index_total', 0], 'dialect_stats': ['dialect_1', 0, 'dialect_2', 0, 'dialect_3', 0, 'dialect_4', 0], 'Index Errors': ['indexing failures', 0, 'last indexing error', 'N/A', 'last indexing error key', 'N/A'], 'field statistics': [['identifier', 'tag', 'attribute', 'tag', 'Index Errors', ['indexing failures', 0, 'last indexing error', 'N/A', 'last indexing error key', 'N/A']], ['identifier', 'content_vector', 'attribute', 'content_vector', 'Index Errors', ['indexing failures', 0, 'last indexing error', 'N/A', 'last indexing error key', 'N/A']]]}
superagi-celery-1 | 2024-05-05 01:57:16 UTC - Super AGI - INFO - [/app/superagi/vector_store/redis.py:133] - Index already exists!
superagi-celery-1 | [2024-05-05 01:57:16,599: INFO/ForkPoolWorker-8] Index already exists!
superagi-celery-1 | 2024-05-05 01:57:16 UTC - Super AGI - INFO - [/app/superagi/jobs/agent_executor.py:107] - Executing Workflow step :
superagi-celery-1 | [2024-05-05 01:57:16,600: INFO/ForkPoolWorker-8] Executing Workflow step :
superagi-celery-1 | 2024-05-05 01:57:16 UTC - Super AGI - INFO - [/app/superagi/jobs/agent_executor.py:107] - ITERATION_WORKFLOW
superagi-celery-1 | [2024-05-05 01:57:16,600: INFO/ForkPoolWorker-8] ITERATION_WORKFLOW
superagi-celery-1 | [2024-05-05 01:57:16,600: WARNING/ForkPoolWorker-8] Fetching model details from database...
superagi-celery-1 | [2024-05-05 01:57:16,607: WARNING/ForkPoolWorker-8] Provider is OpenAI
superagi-celery-1 | [2024-05-05 01:57:16,609: WARNING/ForkPoolWorker-8] Fetching model details from database...
superagi-celery-1 | [2024-05-05 01:57:16,612: WARNING/ForkPoolWorker-8] Provider is OpenAI
superagi-celery-1 | [2024-05-05 01:57:16,612: WARNING/ForkPoolWorker-8] <superagi.llms.openai.OpenAi object at 0x7fe1527395a0>
superagi-celery-1 | [2024-05-05 01:57:16,626: WARNING/ForkPoolWorker-8] OpenAI
superagi-celery-1 | [2024-05-05 01:57:16,635: WARNING/ForkPoolWorker-8] Fetching model details from database...
superagi-celery-1 | [2024-05-05 01:57:16,638: WARNING/ForkPoolWorker-8] Provider is OpenAI
superagi-celery-1 | [2024-05-05 01:57:16,641: WARNING/ForkPoolWorker-8] [ThinkingTool(name='ThinkingTool', description='Intelligent problem-solving assistant that comprehends tasks, identifies key variables, and makes efficient decisions, all while providing detailed, self-driven reasoning for its choices. Do not assume anything, take the details from given data only.', args_schema=<class 'superagi.tools.thinking.tools.ThinkingSchema'>, permission_required=False, toolkit_config=<superagi.tools.base_tool.BaseToolkitConfiguration object at 0x7fe152b23190>, llm=<superagi.llms.openai.OpenAi object at 0x7fe152b23a00>, goals=['make a list of 5 animals you already know'], agent_execution_id=2, agent_id=1, tool_response_manager=<superagi.tools.tool_response_query_manager.ToolResponseQueryManager object at 0x7fe152b212a0>), ReadFileTool(name='Read File', description='Reads the file content in a specified location', args_schema=<class 'superagi.tools.file.read_file.ReadFileSchema'>, permission_required=True, toolkit_config=<superagi.agent.tool_builder.DBToolkitConfiguration object at 0x7fe152b23b50>, agent_id=1, agent_execution_id=2, resource_manager=<superagi.resource_manager.file_manager.FileManager object at 0x7fe152b21600>), WriteFileTool(name='Write File', description='Writes text to a file', args_schema=<class 'superagi.tools.file.write_file.WriteFileInput'>, permission_required=True, toolkit_config=<superagi.agent.tool_builder.DBToolkitConfiguration object at 0x7fe152b23280>, agent_id=1, resource_manager=<superagi.resource_manager.file_manager.FileManager object at 0x7fe152b21450>)]
superagi-celery-1 | [2024-05-05 01:57:16,645: WARNING/ForkPoolWorker-8] tokens
superagi-celery-1 | [2024-05-05 01:57:16,645: WARNING/ForkPoolWorker-8]
superagi-celery-1 | [2024-05-05 01:57:16,646: WARNING/ForkPoolWorker-8] 1046
superagi-celery-1 | 2024-05-05 01:57:16 UTC - Super AGI - DEBUG - [/app/superagi/agent/agent_iteration_step_handler.py:73] - Prompt messages:
superagi-celery-1 | [2024-05-05 01:57:16,657: DEBUG/ForkPoolWorker-8] Prompt messages:
superagi-celery-1 | 2024-05-05 01:57:16 UTC - Super AGI - DEBUG - [/app/superagi/agent/agent_iteration_step_handler.py:73] - [{'role': 'system', 'content': 'test1'}, {'role': 'system', 'content': 'test2'}, {'role': 'system', 'content': 'Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instructions:\nAs an AI assistant to solve complex problems, your decisions must always be made independently without seeking user assistance. Play to your strengths as an LLM and pursue simple strategies with no legal complications. If you have completed all your tasks or reached the end state, make sure to use the "finish" tool.\nSelect and use tools from the list provided in the 'Input' section as needed to effectively solve each step of the problem.\n\nINSTRUCTION: \n1. dont use the internet or any other source except your memory\n2. write the results to a new .txt file or past them in the chat\n3. ALWAYS RESPOND USING THE JSON SCHEMA OR YOU WILL RECEIVE THE SAME PROMPT AGAIN\n\n\nPERFORMANCE EVALUATION:\n1. Continuously review and analyze your actions to ensure you are performing to the best of your abilities.\n2. Use instruction to decide the flow of execution and decide the next steps for achieving the task.\n3. Constructively self-criticize your big-picture behavior constantly.\n4. Reflect on past decisions and strategies to refine your approach.\n5. Every tool has a cost, so be smart and efficient.\n6. Aim to complete tasks in the least number of steps.\n\nI should only respond in JSON format as described below.\nResponse Format:\n{\n "$schema": "http://json-schema.org/draft-07/schema#",\n "type": "object",\n "properties": {\n "thoughts": {\n "type": "object",\n "properties": {\n "text": {\n "type": "string",\n "description": "thought"\n },\n "reasoning": {\n "type": "string",\n "description": "short reasoning"\n },\n "plan": {\n "type": "string",\n "description": "- short bulleted\n- list that conveys\n- long-term plan"\n },\n "criticism": {\n "type": "string",\n "description": "constructive self-criticism"\n },\n "speak": {\n "type": "string",\n "description": "thoughts summary to say to user"\n }\n },\n "required": ["text", "reasoning", "plan", "criticism", "speak"],\n "additionalProperties": false\n },\n "tool": {\n "type": "object",\n "properties": {\n "name": {\n "type": "string",\n "description": "tool name"\n },\n "args": {\n "type": "object",\n "description": "tool arguments"\n }\n },\n "required": ["name", "args"],\n "additionalProperties": false\n }\n },\n "required": ["thoughts", "tool"],\n "additionalProperties": false\n}\n\nEnsure the response can be parsed by Python json.loads.\n\n### Input:\nGOALS:\n1. make a list of 5 animals you already know\n\n\nCONSTRAINTS:\n1. If you are unsure how you previously did something or want to recall past events, thinking about similar events will help you remember.\n2. Ensure the tool and args are as per current plan and reasoning\n3. Exclusively use the tools listed under "TOOLS"\n4. REMEMBER to format your response as JSON, using double quotes ("") around keys and string values, and commas (,) to separate items in arrays and objects. IMPORTANTLY, to use a JSON object as a string in another JSON object, you need to escape the double quotes.\n\n\nTOOLS:\n1. "ThinkingTool": Intelligent problem-solving assistant that comprehends tasks, identifies key variables, and makes efficient decisions, all while providing detailed, self-driven reasoning for its choices. Do not assume anything, take the details from given data only., args json schema: {"task_description": {"title": "Task Description", "description": "Task description which needs reasoning.", "type": "string"}}\n2. "Read File": Reads the file content in a specified location, args json schema: {"file_name": {"title": "File Name", "description": "Path of the file to read", "type": "string"}}\n3. "Write File": Writes text to a file, args json schema: {"file_name": {"title": "File Name", "description": "Name of the file to write. Only include the file name. Don't include path.", "type": "string"}, "content": {"title": "Content", "description": "File content to write", "type": "string"}}\n4. "finish": use this to signal that you have finished all your objectives, args: "response": "final response to let people know you have finished your objectives"\n\n\n\n### Response:\n'}, {'role': 'system', 'content': 'The current time and date is Sun May 5 01:57:16 2024'}, {'role': 'system', 'content': 'test3'}, {'role': 'user', 'content': 'Determine which next tool to use, and respond using the format specified above:'}]
superagi-celery-1 | [2024-05-05 01:57:16,658: DEBUG/ForkPoolWorker-8] [{'role': 'system', 'content': 'test1'}, {'role': 'system', 'content': 'test2'}, {'role': 'system', 'content': 'Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instructions:\nAs an AI assistant to solve complex problems, your decisions must always be made independently without seeking user assistance. Play to your strengths as an LLM and pursue simple strategies with no legal complications. If you have completed all your tasks or reached the end state, make sure to use the "finish" tool.\nSelect and use tools from the list provided in the 'Input' section as needed to effectively solve each step of the problem.\n\nINSTRUCTION: \n1. dont use the internet or any other source except your memory\n2. write the results to a new .txt file or past them in the chat\n3. ALWAYS RESPOND USING THE JSON SCHEMA OR YOU WILL RECEIVE THE SAME PROMPT AGAIN\n\n\nPERFORMANCE EVALUATION:\n1. Continuously review and analyze your actions to ensure you are performing to the best of your abilities.\n2. Use instruction to decide the flow of execution and decide the next steps for achieving the task.\n3. Constructively self-criticize your big-picture behavior constantly.\n4. Reflect on past decisions and strategies to refine your approach.\n5. Every tool has a cost, so be smart and efficient.\n6. Aim to complete tasks in the least number of steps.\n\nI should only respond in JSON format as described below.\nResponse Format:\n{\n "$schema": "http://json-schema.org/draft-07/schema#",\n "type": "object",\n "properties": {\n "thoughts": {\n "type": "object",\n "properties": {\n "text": {\n "type": "string",\n "description": "thought"\n },\n "reasoning": {\n "type": "string",\n "description": "short reasoning"\n },\n "plan": {\n "type": "string",\n "description": "- short bulleted\n- list that conveys\n- long-term plan"\n },\n "criticism": {\n "type": "string",\n "description": "constructive self-criticism"\n },\n "speak": {\n "type": "string",\n "description": "thoughts summary to say to user"\n }\n },\n "required": ["text", "reasoning", "plan", "criticism", "speak"],\n "additionalProperties": false\n },\n "tool": {\n "type": "object",\n "properties": {\n "name": {\n "type": "string",\n "description": "tool name"\n },\n "args": {\n "type": "object",\n "description": "tool arguments"\n }\n },\n "required": ["name", "args"],\n "additionalProperties": false\n }\n },\n "required": ["thoughts", "tool"],\n "additionalProperties": false\n}\n\nEnsure the response can be parsed by Python json.loads.\n\n### Input:\nGOALS:\n1. make a list of 5 animals you already know\n\n\nCONSTRAINTS:\n1. If you are unsure how you previously did something or want to recall past events, thinking about similar events will help you remember.\n2. Ensure the tool and args are as per current plan and reasoning\n3. Exclusively use the tools listed under "TOOLS"\n4. REMEMBER to format your response as JSON, using double quotes ("") around keys and string values, and commas (,) to separate items in arrays and objects. IMPORTANTLY, to use a JSON object as a string in another JSON object, you need to escape the double quotes.\n\n\nTOOLS:\n1. "ThinkingTool": Intelligent problem-solving assistant that comprehends tasks, identifies key variables, and makes efficient decisions, all while providing detailed, self-driven reasoning for its choices. Do not assume anything, take the details from given data only., args json schema: {"task_description": {"title": "Task Description", "description": "Task description which needs reasoning.", "type": "string"}}\n2. "Read File": Reads the file content in a specified location, args json schema: {"file_name": {"title": "File Name", "description": "Path of the file to read", "type": "string"}}\n3. "Write File": Writes text to a file, args json schema: {"file_name": {"title": "File Name", "description": "Name of the file to write. Only include the file name. Don't include path.", "type": "string"}, "content": {"title": "Content", "description": "File content to write", "type": "string"}}\n4. "finish": use this to signal that you have finished all your objectives, args: "response": "final response to let people know you have finished your objectives"\n\n\n\n### Response:\n'}, {'role': 'system', 'content': 'The current time and date is Sun May 5 01:57:16 2024'}, {'role': 'system', 'content': 'test3'}, {'role': 'user', 'content': 'Determine which next tool to use, and respond using the format specified above:'}]
superagi-celery-1 | [2024-05-05 01:57:16,659: WARNING/ForkPoolWorker-8] tokens
superagi-celery-1 | [2024-05-05 01:57:16,659: WARNING/ForkPoolWorker-8]
superagi-celery-1 | [2024-05-05 01:57:16,659: WARNING/ForkPoolWorker-8] 1066
superagi-celery-1 | [2024-05-05 01:57:21,245: WARNING/ForkPoolWorker-8] tokens
superagi-celery-1 | [2024-05-05 01:57:21,245: WARNING/ForkPoolWorker-8]
superagi-celery-1 | [2024-05-05 01:57:21,246: WARNING/ForkPoolWorker-8] 2648
superagi-celery-1 | [2024-05-05 01:57:21,250: WARNING/ForkPoolWorker-8] Decoding JSON has failed
superagi-celery-1 | 2024-05-05 01:57:21 UTC - Super AGI - DEBUG - [/app/superagi/agent/output_parser.py:38] - AgentSchemaOutputParser:
superagi-celery-1 | [2024-05-05 01:57:21,257: DEBUG/ForkPoolWorker-8] AgentSchemaOutputParser:
superagi-celery-1 | 2024-05-05 01:57:21 UTC - Super AGI - DEBUG - [/app/superagi/agent/output_parser.py:38] - I think that the tool that I should use to gather information about the topic is the online survey. I will use this tool because it will make it easier for me to gather information. I will post the survey on social media such as Facebook, Twitter, and Instagram. I will also send it to my friends and family. The survey will ask questions about the topic and will ask for their opinions. I will also ask them to rate the topic on a scale of 1-10. I will also ask them to provide any other information that they think is relevant.
superagi-celery-1 | [2024-05-05 01:57:21,257: DEBUG/ForkPoolWorker-8] I think that the tool that I should use to gather information about the topic is the online survey. I will use this tool because it will make it easier for me to gather information. I will post the survey on social media such as Facebook, Twitter, and Instagram. I will also send it to my friends and family. The survey will ask questions about the topic and will ask for their opinions. I will also ask them to rate the topic on a scale of 1-10. I will also ask them to provide any other information that they think is relevant.
superagi-celery-1 | 2024-05-05 01:57:21 UTC - Super AGI - INFO - [/app/superagi/agent/output_parser.py:46] - AgentSchemaOutputParser: Error parsing JSON response invalid syntax (, line 1)
superagi-celery-1 | [2024-05-05 01:57:21,258: INFO/ForkPoolWorker-8] AgentSchemaOutputParser: Error parsing JSON response invalid syntax (, line 1)
superagi-celery-1 | 2024-05-05 01:57:21 UTC - Super AGI - INFO - [/app/superagi/jobs/agent_executor.py:90] - Exception in executing the step: invalid syntax (, line 1)
superagi-celery-1 | [2024-05-05 01:57:21,258: INFO/ForkPoolWorker-8] Exception in executing the step: invalid syntax (, line 1)
superagi-celery-1 | [2024-05-05 01:57:21,260: INFO/MainProcess] Task execute_agent[b6aec342-2dc7-405b-9fea-926685603dc4] received
superagi-celery-1 | [2024-05-05 01:57:21,262: INFO/ForkPoolWorker-8] Task execute_agent[f4824048-31ff-48f9-aa04-44b03d37e901] succeeded in 4.726041154004633s: None
superagi-celery-1 | [2024-05-05 01:57:25,718: INFO/Beat] Scheduler: Sending due task execute_waiting_workflows (execute_waiting_workflows)
superagi-celery-1 | [2024-05-05 01:57:25,721: INFO/MainProcess] Task execute_waiting_workflows[66f9f387-4c8c-4a08-ac41-7dd43e8f96aa] received
superagi-celery-1 | 2024-05-05 01:57:25 UTC - Super AGI - INFO - [/app/superagi/worker.py:54] - Executing waiting workflows job
superagi-celery-1 | [2024-05-05 01:57:25,722: INFO/ForkPoolWorker-8] Executing waiting workflows job
superagi-celery-1 | [2024-05-05 01:57:25,729: INFO/ForkPoolWorker-8] Task execute_waiting_workflows[66f9f387-4c8c-4a08-ac41-7dd43e8f96aa] succeeded in 0.007913355002528988s: None
superagi-backend-1 | INFO: 172.21.0.7:42596 - "GET /agentexecutionfeeds/get/execution/2 HTTP/1.0" 200 OK
The text was updated successfully, but these errors were encountered:
The prompt in the error log is unusually formatted because i tried different .txt files. This is not related to the issue. Issue where i found the .txt files Changing them + using a custom jinja template (only message content with new lines from above) can wrap Instructions inside [INST] ... [/INST] which might be useful for SAM.
Where are you using SuperAGI?
Windows
Which branch of SuperAGI are you using?
Main
Do you use OpenAI GPT-3.5 or GPT-4?
GPT-3.5
Which area covers your issue best?
Installation and setup
Describe your issue.
My locally hosted OpenAI api server won't receive the prompt message.
However using offical OpenAI Inference with gpt-3.5-turbo works as expected.
Server Log:
How to replicate your Issue?
Replicate the Issue
I've downloaded the main branch several times and ran multiple releases.
Added OPENAI_API_BASE in the config: http://host.docker.internal:8080/v1
Set up text-generation-webui and run the server like this:
text-generation-webui\server.py --verbose --api --model-menu --nowebui
(Lama.cpp and llama.cpp.python showed similar Agent behaviour but those offer no debugging option)
Test models using custom and Alpaca jinja templates:
SuperAGI/SAM, TheBloke/yarn-mistral-7b-128k
Attempt to fix and observations
I've tried deleting everything from docker and also rearranged the code.
If i append the prompt variable to the message array again and add some test messages,
there are always some messages missing in the final prompt received by the API Server.
Changing the messages.append order somehow affects which messages are received.
If the model doesn't respond in correct format, the prompt variable wont change to the tool output even if a tool is triggered!
agent_message_builder.py
Agent Config
Agent Name: offline
Agent Description: an agent for offline tasks
Agent Goals:
Instructions:
(The second Instruction sometimes helped to get a valid response conforming the JSON schema.)
Jinja Templates
used with SAM (made for SAM example prompt)
used with SAM (made for SAM example prompt)
used with SAM (only message content with new lines)
used with yarn-mistral-7b-128k (only message content with new lines)
used with yarn-mistral-7b-128k (trying to catch the missing prompt)
used with both (default text-generation-webui Alpaca.yaml)
Upload Error Log Content
superagi-celery-1 | 2024-05-05 01:57:16 UTC - Super AGI - INFO - [/app/superagi/vector_store/redis.py:132] - {'index_name': 'super-agent-index1', 'index_options': [], 'index_definition': ['key_type', 'HASH', 'prefixes', ['doc:'], 'default_score', '1'], 'attributes': [['identifier', 'tag', 'attribute', 'tag', 'type', 'TAG', 'SEPARATOR', ','], ['identifier', 'content_vector', 'attribute', 'content_vector', 'type', 'VECTOR', 'algorithm', 'FLAT', 'data_type', 'FLOAT32', 'dim', 1, 'distance_metric', 'COSINE']], 'num_docs': '0', 'max_doc_id': '0', 'num_terms': '0', 'num_records': '0', 'inverted_sz_mb': '0', 'vector_index_sz_mb': '0.00818634033203125', 'total_inverted_index_blocks': '0', 'offset_vectors_sz_mb': '0', 'doc_table_size_mb': '0', 'sortable_values_size_mb': '0', 'key_table_size_mb': '0', 'geoshapes_sz_mb': '0', 'records_per_doc_avg': 'nan', 'bytes_per_record_avg': 'nan', 'offsets_per_term_avg': 'nan', 'offset_bits_per_record_avg': 'nan', 'hash_indexing_failures': '0', 'total_indexing_time': '0', 'indexing': '0', 'percent_indexed': '1', 'number_of_uses': 2, 'cleaning': 0, 'gc_stats': ['bytes_collected', '0', 'total_ms_run', '0', 'total_cycles', '0', 'average_cycle_time_ms', 'nan', 'last_run_time_ms', '0', 'gc_numeric_trees_missed', '0', 'gc_blocks_denied', '0'], 'cursor_stats': ['global_idle', 0, 'global_total', 0, 'index_capacity', 128, 'index_total', 0], 'dialect_stats': ['dialect_1', 0, 'dialect_2', 0, 'dialect_3', 0, 'dialect_4', 0], 'Index Errors': ['indexing failures', 0, 'last indexing error', 'N/A', 'last indexing error key', 'N/A'], 'field statistics': [['identifier', 'tag', 'attribute', 'tag', 'Index Errors', ['indexing failures', 0, 'last indexing error', 'N/A', 'last indexing error key', 'N/A']], ['identifier', 'content_vector', 'attribute', 'content_vector', 'Index Errors', ['indexing failures', 0, 'last indexing error', 'N/A', 'last indexing error key', 'N/A']]]}
superagi-celery-1 | [2024-05-05 01:57:16,598: INFO/ForkPoolWorker-8] {'index_name': 'super-agent-index1', 'index_options': [], 'index_definition': ['key_type', 'HASH', 'prefixes', ['doc:'], 'default_score', '1'], 'attributes': [['identifier', 'tag', 'attribute', 'tag', 'type', 'TAG', 'SEPARATOR', ','], ['identifier', 'content_vector', 'attribute', 'content_vector', 'type', 'VECTOR', 'algorithm', 'FLAT', 'data_type', 'FLOAT32', 'dim', 1, 'distance_metric', 'COSINE']], 'num_docs': '0', 'max_doc_id': '0', 'num_terms': '0', 'num_records': '0', 'inverted_sz_mb': '0', 'vector_index_sz_mb': '0.00818634033203125', 'total_inverted_index_blocks': '0', 'offset_vectors_sz_mb': '0', 'doc_table_size_mb': '0', 'sortable_values_size_mb': '0', 'key_table_size_mb': '0', 'geoshapes_sz_mb': '0', 'records_per_doc_avg': 'nan', 'bytes_per_record_avg': 'nan', 'offsets_per_term_avg': 'nan', 'offset_bits_per_record_avg': 'nan', 'hash_indexing_failures': '0', 'total_indexing_time': '0', 'indexing': '0', 'percent_indexed': '1', 'number_of_uses': 2, 'cleaning': 0, 'gc_stats': ['bytes_collected', '0', 'total_ms_run', '0', 'total_cycles', '0', 'average_cycle_time_ms', 'nan', 'last_run_time_ms', '0', 'gc_numeric_trees_missed', '0', 'gc_blocks_denied', '0'], 'cursor_stats': ['global_idle', 0, 'global_total', 0, 'index_capacity', 128, 'index_total', 0], 'dialect_stats': ['dialect_1', 0, 'dialect_2', 0, 'dialect_3', 0, 'dialect_4', 0], 'Index Errors': ['indexing failures', 0, 'last indexing error', 'N/A', 'last indexing error key', 'N/A'], 'field statistics': [['identifier', 'tag', 'attribute', 'tag', 'Index Errors', ['indexing failures', 0, 'last indexing error', 'N/A', 'last indexing error key', 'N/A']], ['identifier', 'content_vector', 'attribute', 'content_vector', 'Index Errors', ['indexing failures', 0, 'last indexing error', 'N/A', 'last indexing error key', 'N/A']]]}
superagi-celery-1 | 2024-05-05 01:57:16 UTC - Super AGI - INFO - [/app/superagi/vector_store/redis.py:133] - Index already exists!
superagi-celery-1 | [2024-05-05 01:57:16,599: INFO/ForkPoolWorker-8] Index already exists!
superagi-celery-1 | 2024-05-05 01:57:16 UTC - Super AGI - INFO - [/app/superagi/jobs/agent_executor.py:107] - Executing Workflow step :
superagi-celery-1 | [2024-05-05 01:57:16,600: INFO/ForkPoolWorker-8] Executing Workflow step :
superagi-celery-1 | 2024-05-05 01:57:16 UTC - Super AGI - INFO - [/app/superagi/jobs/agent_executor.py:107] - ITERATION_WORKFLOW
superagi-celery-1 | [2024-05-05 01:57:16,600: INFO/ForkPoolWorker-8] ITERATION_WORKFLOW
superagi-celery-1 | [2024-05-05 01:57:16,600: WARNING/ForkPoolWorker-8] Fetching model details from database...
superagi-celery-1 | [2024-05-05 01:57:16,607: WARNING/ForkPoolWorker-8] Provider is OpenAI
superagi-celery-1 | [2024-05-05 01:57:16,609: WARNING/ForkPoolWorker-8] Fetching model details from database...
superagi-celery-1 | [2024-05-05 01:57:16,612: WARNING/ForkPoolWorker-8] Provider is OpenAI
superagi-celery-1 | [2024-05-05 01:57:16,612: WARNING/ForkPoolWorker-8] <superagi.llms.openai.OpenAi object at 0x7fe1527395a0>
superagi-celery-1 | [2024-05-05 01:57:16,626: WARNING/ForkPoolWorker-8] OpenAI
superagi-celery-1 | [2024-05-05 01:57:16,635: WARNING/ForkPoolWorker-8] Fetching model details from database...
superagi-celery-1 | [2024-05-05 01:57:16,638: WARNING/ForkPoolWorker-8] Provider is OpenAI
superagi-celery-1 | [2024-05-05 01:57:16,641: WARNING/ForkPoolWorker-8] [ThinkingTool(name='ThinkingTool', description='Intelligent problem-solving assistant that comprehends tasks, identifies key variables, and makes efficient decisions, all while providing detailed, self-driven reasoning for its choices. Do not assume anything, take the details from given data only.', args_schema=<class 'superagi.tools.thinking.tools.ThinkingSchema'>, permission_required=False, toolkit_config=<superagi.tools.base_tool.BaseToolkitConfiguration object at 0x7fe152b23190>, llm=<superagi.llms.openai.OpenAi object at 0x7fe152b23a00>, goals=['make a list of 5 animals you already know'], agent_execution_id=2, agent_id=1, tool_response_manager=<superagi.tools.tool_response_query_manager.ToolResponseQueryManager object at 0x7fe152b212a0>), ReadFileTool(name='Read File', description='Reads the file content in a specified location', args_schema=<class 'superagi.tools.file.read_file.ReadFileSchema'>, permission_required=True, toolkit_config=<superagi.agent.tool_builder.DBToolkitConfiguration object at 0x7fe152b23b50>, agent_id=1, agent_execution_id=2, resource_manager=<superagi.resource_manager.file_manager.FileManager object at 0x7fe152b21600>), WriteFileTool(name='Write File', description='Writes text to a file', args_schema=<class 'superagi.tools.file.write_file.WriteFileInput'>, permission_required=True, toolkit_config=<superagi.agent.tool_builder.DBToolkitConfiguration object at 0x7fe152b23280>, agent_id=1, resource_manager=<superagi.resource_manager.file_manager.FileManager object at 0x7fe152b21450>)]
superagi-celery-1 | [2024-05-05 01:57:16,645: WARNING/ForkPoolWorker-8] tokens
superagi-celery-1 | [2024-05-05 01:57:16,645: WARNING/ForkPoolWorker-8]
superagi-celery-1 | [2024-05-05 01:57:16,646: WARNING/ForkPoolWorker-8] 1046
superagi-celery-1 | 2024-05-05 01:57:16 UTC - Super AGI - DEBUG - [/app/superagi/agent/agent_iteration_step_handler.py:73] - Prompt messages:
superagi-celery-1 | [2024-05-05 01:57:16,657: DEBUG/ForkPoolWorker-8] Prompt messages:
superagi-celery-1 | 2024-05-05 01:57:16 UTC - Super AGI - DEBUG - [/app/superagi/agent/agent_iteration_step_handler.py:73] - [{'role': 'system', 'content': 'test1'}, {'role': 'system', 'content': 'test2'}, {'role': 'system', 'content': 'Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instructions:\nAs an AI assistant to solve complex problems, your decisions must always be made independently without seeking user assistance. Play to your strengths as an LLM and pursue simple strategies with no legal complications. If you have completed all your tasks or reached the end state, make sure to use the "finish" tool.\nSelect and use tools from the list provided in the 'Input' section as needed to effectively solve each step of the problem.\n\nINSTRUCTION: \n1. dont use the internet or any other source except your memory\n2. write the results to a new .txt file or past them in the chat\n3. ALWAYS RESPOND USING THE JSON SCHEMA OR YOU WILL RECEIVE THE SAME PROMPT AGAIN\n\n\nPERFORMANCE EVALUATION:\n1. Continuously review and analyze your actions to ensure you are performing to the best of your abilities.\n2. Use instruction to decide the flow of execution and decide the next steps for achieving the task.\n3. Constructively self-criticize your big-picture behavior constantly.\n4. Reflect on past decisions and strategies to refine your approach.\n5. Every tool has a cost, so be smart and efficient.\n6. Aim to complete tasks in the least number of steps.\n\nI should only respond in JSON format as described below.\nResponse Format:\n{\n "$schema": "http://json-schema.org/draft-07/schema#",\n "type": "object",\n "properties": {\n "thoughts": {\n "type": "object",\n "properties": {\n "text": {\n "type": "string",\n "description": "thought"\n },\n "reasoning": {\n "type": "string",\n "description": "short reasoning"\n },\n "plan": {\n "type": "string",\n "description": "- short bulleted\n- list that conveys\n- long-term plan"\n },\n "criticism": {\n "type": "string",\n "description": "constructive self-criticism"\n },\n "speak": {\n "type": "string",\n "description": "thoughts summary to say to user"\n }\n },\n "required": ["text", "reasoning", "plan", "criticism", "speak"],\n "additionalProperties": false\n },\n "tool": {\n "type": "object",\n "properties": {\n "name": {\n "type": "string",\n "description": "tool name"\n },\n "args": {\n "type": "object",\n "description": "tool arguments"\n }\n },\n "required": ["name", "args"],\n "additionalProperties": false\n }\n },\n "required": ["thoughts", "tool"],\n "additionalProperties": false\n}\n\nEnsure the response can be parsed by Python json.loads.\n\n### Input:\nGOALS:\n1. make a list of 5 animals you already know\n\n\nCONSTRAINTS:\n1. If you are unsure how you previously did something or want to recall past events, thinking about similar events will help you remember.\n2. Ensure the tool and args are as per current plan and reasoning\n3. Exclusively use the tools listed under "TOOLS"\n4. REMEMBER to format your response as JSON, using double quotes ("") around keys and string values, and commas (,) to separate items in arrays and objects. IMPORTANTLY, to use a JSON object as a string in another JSON object, you need to escape the double quotes.\n\n\nTOOLS:\n1. "ThinkingTool": Intelligent problem-solving assistant that comprehends tasks, identifies key variables, and makes efficient decisions, all while providing detailed, self-driven reasoning for its choices. Do not assume anything, take the details from given data only., args json schema: {"task_description": {"title": "Task Description", "description": "Task description which needs reasoning.", "type": "string"}}\n2. "Read File": Reads the file content in a specified location, args json schema: {"file_name": {"title": "File Name", "description": "Path of the file to read", "type": "string"}}\n3. "Write File": Writes text to a file, args json schema: {"file_name": {"title": "File Name", "description": "Name of the file to write. Only include the file name. Don't include path.", "type": "string"}, "content": {"title": "Content", "description": "File content to write", "type": "string"}}\n4. "finish": use this to signal that you have finished all your objectives, args: "response": "final response to let people know you have finished your objectives"\n\n\n\n### Response:\n'}, {'role': 'system', 'content': 'The current time and date is Sun May 5 01:57:16 2024'}, {'role': 'system', 'content': 'test3'}, {'role': 'user', 'content': 'Determine which next tool to use, and respond using the format specified above:'}]
superagi-celery-1 | [2024-05-05 01:57:16,658: DEBUG/ForkPoolWorker-8] [{'role': 'system', 'content': 'test1'}, {'role': 'system', 'content': 'test2'}, {'role': 'system', 'content': 'Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instructions:\nAs an AI assistant to solve complex problems, your decisions must always be made independently without seeking user assistance. Play to your strengths as an LLM and pursue simple strategies with no legal complications. If you have completed all your tasks or reached the end state, make sure to use the "finish" tool.\nSelect and use tools from the list provided in the 'Input' section as needed to effectively solve each step of the problem.\n\nINSTRUCTION: \n1. dont use the internet or any other source except your memory\n2. write the results to a new .txt file or past them in the chat\n3. ALWAYS RESPOND USING THE JSON SCHEMA OR YOU WILL RECEIVE THE SAME PROMPT AGAIN\n\n\nPERFORMANCE EVALUATION:\n1. Continuously review and analyze your actions to ensure you are performing to the best of your abilities.\n2. Use instruction to decide the flow of execution and decide the next steps for achieving the task.\n3. Constructively self-criticize your big-picture behavior constantly.\n4. Reflect on past decisions and strategies to refine your approach.\n5. Every tool has a cost, so be smart and efficient.\n6. Aim to complete tasks in the least number of steps.\n\nI should only respond in JSON format as described below.\nResponse Format:\n{\n "$schema": "http://json-schema.org/draft-07/schema#",\n "type": "object",\n "properties": {\n "thoughts": {\n "type": "object",\n "properties": {\n "text": {\n "type": "string",\n "description": "thought"\n },\n "reasoning": {\n "type": "string",\n "description": "short reasoning"\n },\n "plan": {\n "type": "string",\n "description": "- short bulleted\n- list that conveys\n- long-term plan"\n },\n "criticism": {\n "type": "string",\n "description": "constructive self-criticism"\n },\n "speak": {\n "type": "string",\n "description": "thoughts summary to say to user"\n }\n },\n "required": ["text", "reasoning", "plan", "criticism", "speak"],\n "additionalProperties": false\n },\n "tool": {\n "type": "object",\n "properties": {\n "name": {\n "type": "string",\n "description": "tool name"\n },\n "args": {\n "type": "object",\n "description": "tool arguments"\n }\n },\n "required": ["name", "args"],\n "additionalProperties": false\n }\n },\n "required": ["thoughts", "tool"],\n "additionalProperties": false\n}\n\nEnsure the response can be parsed by Python json.loads.\n\n### Input:\nGOALS:\n1. make a list of 5 animals you already know\n\n\nCONSTRAINTS:\n1. If you are unsure how you previously did something or want to recall past events, thinking about similar events will help you remember.\n2. Ensure the tool and args are as per current plan and reasoning\n3. Exclusively use the tools listed under "TOOLS"\n4. REMEMBER to format your response as JSON, using double quotes ("") around keys and string values, and commas (,) to separate items in arrays and objects. IMPORTANTLY, to use a JSON object as a string in another JSON object, you need to escape the double quotes.\n\n\nTOOLS:\n1. "ThinkingTool": Intelligent problem-solving assistant that comprehends tasks, identifies key variables, and makes efficient decisions, all while providing detailed, self-driven reasoning for its choices. Do not assume anything, take the details from given data only., args json schema: {"task_description": {"title": "Task Description", "description": "Task description which needs reasoning.", "type": "string"}}\n2. "Read File": Reads the file content in a specified location, args json schema: {"file_name": {"title": "File Name", "description": "Path of the file to read", "type": "string"}}\n3. "Write File": Writes text to a file, args json schema: {"file_name": {"title": "File Name", "description": "Name of the file to write. Only include the file name. Don't include path.", "type": "string"}, "content": {"title": "Content", "description": "File content to write", "type": "string"}}\n4. "finish": use this to signal that you have finished all your objectives, args: "response": "final response to let people know you have finished your objectives"\n\n\n\n### Response:\n'}, {'role': 'system', 'content': 'The current time and date is Sun May 5 01:57:16 2024'}, {'role': 'system', 'content': 'test3'}, {'role': 'user', 'content': 'Determine which next tool to use, and respond using the format specified above:'}]
superagi-celery-1 | [2024-05-05 01:57:16,659: WARNING/ForkPoolWorker-8] tokens
superagi-celery-1 | [2024-05-05 01:57:16,659: WARNING/ForkPoolWorker-8]
superagi-celery-1 | [2024-05-05 01:57:16,659: WARNING/ForkPoolWorker-8] 1066
superagi-celery-1 | [2024-05-05 01:57:21,245: WARNING/ForkPoolWorker-8] tokens
superagi-celery-1 | [2024-05-05 01:57:21,245: WARNING/ForkPoolWorker-8]
superagi-celery-1 | [2024-05-05 01:57:21,246: WARNING/ForkPoolWorker-8] 2648
superagi-celery-1 | [2024-05-05 01:57:21,250: WARNING/ForkPoolWorker-8] Decoding JSON has failed
superagi-celery-1 | 2024-05-05 01:57:21 UTC - Super AGI - DEBUG - [/app/superagi/agent/output_parser.py:38] - AgentSchemaOutputParser:
superagi-celery-1 | [2024-05-05 01:57:21,257: DEBUG/ForkPoolWorker-8] AgentSchemaOutputParser:
superagi-celery-1 | 2024-05-05 01:57:21 UTC - Super AGI - DEBUG - [/app/superagi/agent/output_parser.py:38] - I think that the tool that I should use to gather information about the topic is the online survey. I will use this tool because it will make it easier for me to gather information. I will post the survey on social media such as Facebook, Twitter, and Instagram. I will also send it to my friends and family. The survey will ask questions about the topic and will ask for their opinions. I will also ask them to rate the topic on a scale of 1-10. I will also ask them to provide any other information that they think is relevant.
superagi-celery-1 | [2024-05-05 01:57:21,257: DEBUG/ForkPoolWorker-8] I think that the tool that I should use to gather information about the topic is the online survey. I will use this tool because it will make it easier for me to gather information. I will post the survey on social media such as Facebook, Twitter, and Instagram. I will also send it to my friends and family. The survey will ask questions about the topic and will ask for their opinions. I will also ask them to rate the topic on a scale of 1-10. I will also ask them to provide any other information that they think is relevant.
superagi-celery-1 | 2024-05-05 01:57:21 UTC - Super AGI - INFO - [/app/superagi/agent/output_parser.py:46] - AgentSchemaOutputParser: Error parsing JSON response invalid syntax (, line 1)
superagi-celery-1 | [2024-05-05 01:57:21,258: INFO/ForkPoolWorker-8] AgentSchemaOutputParser: Error parsing JSON response invalid syntax (, line 1)
superagi-celery-1 | 2024-05-05 01:57:21 UTC - Super AGI - INFO - [/app/superagi/jobs/agent_executor.py:90] - Exception in executing the step: invalid syntax (, line 1)
superagi-celery-1 | [2024-05-05 01:57:21,258: INFO/ForkPoolWorker-8] Exception in executing the step: invalid syntax (, line 1)
superagi-celery-1 | [2024-05-05 01:57:21,260: INFO/MainProcess] Task execute_agent[b6aec342-2dc7-405b-9fea-926685603dc4] received
superagi-celery-1 | [2024-05-05 01:57:21,262: INFO/ForkPoolWorker-8] Task execute_agent[f4824048-31ff-48f9-aa04-44b03d37e901] succeeded in 4.726041154004633s: None
superagi-celery-1 | [2024-05-05 01:57:25,718: INFO/Beat] Scheduler: Sending due task execute_waiting_workflows (execute_waiting_workflows)
superagi-celery-1 | [2024-05-05 01:57:25,721: INFO/MainProcess] Task execute_waiting_workflows[66f9f387-4c8c-4a08-ac41-7dd43e8f96aa] received
superagi-celery-1 | 2024-05-05 01:57:25 UTC - Super AGI - INFO - [/app/superagi/worker.py:54] - Executing waiting workflows job
superagi-celery-1 | [2024-05-05 01:57:25,722: INFO/ForkPoolWorker-8] Executing waiting workflows job
superagi-celery-1 | [2024-05-05 01:57:25,729: INFO/ForkPoolWorker-8] Task execute_waiting_workflows[66f9f387-4c8c-4a08-ac41-7dd43e8f96aa] succeeded in 0.007913355002528988s: None
superagi-backend-1 | INFO: 172.21.0.7:42596 - "GET /agentexecutionfeeds/get/execution/2 HTTP/1.0" 200 OK
The text was updated successfully, but these errors were encountered: