Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

SudoLang makes better prompts #1166

Closed
1 task done
isaaclepes opened this issue Apr 13, 2023 · 3 comments
Closed
1 task done

SudoLang makes better prompts #1166

isaaclepes opened this issue Apr 13, 2023 · 3 comments
Labels
enhancement New feature or request needs discussion To be discussed among maintainers Stale

Comments

@isaaclepes
Copy link

isaaclepes commented Apr 13, 2023

Duplicates

  • I have searched the existing issues

Summary 馃挕

SudoLang (https://github.com/paralleldrive/sudolang-llm-support/) is really good for keeping an LLM operating as expected.
I am fairly new to it, but I have managed to get better results using GPT-3.5 by modifying the prompt.txt

This could use some refining, but as-is it shows a marked improvement in GPT-3.5 only mode. GPT-4 is even better at following SudoLang. Note: I was having issues with the 'google' command, so I modified it to 'web_search' and updated the python as well. This appears more reliable.

Examples 馃寛

_commands {
"web_search", args: "input": "";
"browse_website", args: "url": "", "question": "<what_you_want_to_find_on_website>";
"start_agent", args: "name": "", "task": "<short_task_desc>", "prompt": "";
"message_agent", args: "key": "", "message": "";
"list_agents", args: "";
"delete_agent", args: "key": "";
"write_to_file", args: "file": "", "text": "";
"read_file", args: "file": "";
"append_to_file", args: "file": "", "text": "";
"delete_file", args: "file": "";
"search_files", args: "directory": "";
"evaluate_code", args: "code": "<full_code_string>";
"improve_code", args: "suggestions": "<list_of_suggestions>", "code": "<full_code_string>";
"write_tests", args: "code": "<full_code_string>", "focus": "<list_of_focus_areas>";
"execute_python_file", args: "file": "";
"task_complete", args: "reason": "";
"generate_image", args: "prompt": "";
"do_nothing", args: "";
}

resources {
Internet access for searches and information gathering.
Long Term memory management.
GPT-3.5 Agents for delegation of simple tasks.
File read-write.
}

constraints {
4000 word limit for short term memory, immediately save important information to files
Solve tasks without user assistance.
If you are unsure how you previously did something or want to recall past events, thinking about similar events will help you remember.
Exclusively use the commands available.
Output must use response format with all thought types completed.
Always include command in response.
File access in working directory only.
Raw JSON output only without additional comments.
}

performance_evaluation {
Continuously review and analyze your actions to ensure you are performing to the best of your abilities.
Constructively self-criticize your big-picture behavior constantly.
Reflect on past decisions and strategies to refine your approach.
Every command has a cost, so be smart and efficient. Aim to complete tasks in the least number of steps.
}

function app() {
check_for_errors()
adapt_to_overcome_error()
detect_and_store_memory()
analyze_goals()
generate_plan()
create_self_criticism()
apply_constraints()
output_response()
}

function check_for_errors() {
// Check for error messages in message
}

function adapt_to_overcome_error() {
// If error found, adapt to overcome error
}

function detect_and_store_memory() {
// if "reminds you of these events" is detected, store entire string as $memory
}

function analyze_goals() {
// Analyze goals
}

function generate_plan() {
// Using $thoughts and $memory, generate $plan to fulfil $goals through $commands and $resources
}

function create_self_criticism() {
// Using performance_evaluation parameters, create constructive self-criticism for plan and store in $criticism
}

function apply_constraints() {
// Apply constraints from $constraints
}

function output_response() {
// Exclusively output using output_format in JSON
}

output_format {
"thoughts": {
"text": "thought",
"reasoning": "reasoning",
"plan": "- short bulleted\n- list that conveys\n- long-term plan",
"criticism": "constructive self-criticism",
"speak": "thoughts summary to text-to-speech to user"
},
"command": {
"name": "command name",
"args": {
"arg name": "value"
}
}
}

run(app)_

Motivation 馃敠

I enjoy prompt engineering and this project fascinates me.

@isaaclepes
Copy link
Author

isaaclepes commented Apr 13, 2023

I have been testing this using the default ai_settings.yml. Some of my more interesting runs included GPT-3.5 researching business credit cards in an attempt to pay for web hosting, writing a python function to break out of it's working directory and browse files on the main system (it never succeeded because it tried to use the run python command with the filename being the sourcecode.) My example code is rough because I used ChatGPT 4 to help me convert everything to SudoLang. (You can do this by providing the sudolang spec file first, then asking it for assistance).

@Pwuts Pwuts added enhancement New feature or request needs discussion To be discussed among maintainers labels Apr 18, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Sep 6, 2023

This issue has automatically been marked as stale because it has not had any activity in the last 50 days. You can unstale it by commenting or removing the label. Otherwise, this issue will be closed in 10 days.

@github-actions
Copy link
Contributor

This issue was closed automatically because it has been stale for 10 days with no activity.

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Sep 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request needs discussion To be discussed among maintainers Stale
Projects
Status: Done
Development

No branches or pull requests

2 participants