-
Notifications
You must be signed in to change notification settings - Fork 13
/
.env.example
122 lines (95 loc) · 5.42 KB
/
.env.example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# Defaults
CTX_MAX="2048"
VERBOSE="true"
MAX_TASKS_DEFAULT="6"
RECURSION_DEPTH_DEFAULT="3"
DISTANCE_CUTOFF_DEFAULT="0.12"
EXPANDED_CONTEXT_DEFAULT="False"
# Tool variables
SEARX_HOST = "https://searxng.nicfab.eu/"
TOP_K_WIKI = "5"
WOLFRAM_APP_ID = ""
###########################################################
####################### Prompting #########################
###########################################################
HUMAN_PREFIX="### Instruction:"
ASSISTANT_PREFIX="### Assistant:"
# PRIMARY_DIRECTIVE
PRIMARY_DIRECTIVE="You are an AI assistant. Your main objective is to follow all instructions and complete all tasks written in the 'Instructions:' section, then respond with the output format specified in the 'Format:' section.
You are completely on your own, and cannot ask for more information or clarification.
You have no abilities or resources unless they are explicitly listed."
# GENERATE THOUGHTS DIRECTIVE
# Variables: _TASK_ - current objective
# Desired Output: Resources and abilities for completing _TASK_ - used for the agent's context
GENERATE_THOUGHTS_DIRECTIVE="Write down some observations on what one would require to complete _TASK_. In particular, you should respond with 2 items:
- Resources one would need to complete _TASK_; and
- Abilities one would need to complete _TASK_.
Your observations should consist of one or two sentences per category.
Format:
Respond with your observations in the following format:
Resources: (one or two sentences about the resources required to complete _TASK_)
Abilities: (one or two sentences about the abilities required to complete _TASK_)
Do not respond with anything but these observations."
# SUMMARIZE DIRECTIVE
# Variables: _TEXT_ - text to summarize
# Desired output: a summary of the text
SUMMARIZE_DIRECTIVE="Summarize the following text:
_TEXT_
(End text)
The summary should be at most one third the length of the original text.
Format:
Respond with the summary of the text and nothing else."
# ASSESS ABILITY DIRECTIVE
# Variables: _TASK_ - current objective
# Desired Output: 'yes' if model can complete _TASK_, 'no' otherwise
ASSESS_ABILITY_DIRECTIVE="Answer the following question:
Can you complete _TASK_ entirely with no further information, right now?
If completing _TASK_ requires resources or abilities that you don't have access to, your response should be 'No'.
Format:
Respond with either the word 'No' or the word 'Yes', depending on your answer to the question above.
Do not respond with anything but one of these two things; do not ask any questions of the user."
# DO OBJECTIVE DIRECTIVE
# Variables: _TASK_ - current objective
# Desired Output: the output from completing _TASK_
DO_OBJECTIVE_DIRECTIVE="Complete _TASK_ entirely.
Respond with the output from _TASK_.
Use only the resources and abilities you have available to you.
If you need additional resources or abilities, or if you cannot fully complete _TASK_, respond with the phrase 'I cannot' and nothing else.
If you cannot respond with the result of completing _TASK_, your response should be 'I cannot'.
Format:
Respond with the text from _TASK_, or the phrase 'I cannot', depending on the criteria above.
Do not respond with anything else; do not ask any questions of the user."
# SPLIT OBJECTIVE DIRECTIVE
# Additional context: processed tasks in current objective
# Variables: _TASK_ - current objective, _MAX_TASKS_ - maximum number of tasks in a list
# Desired Output: Numbered list of subobjectives for _TASK_
SPLIT_OBJECTIVE_DIRECTIVE="Develop a comprehensive plan to complete _TASK_. The plan should come as a list of tasks, each a single step in the process of completing _TASK_.
The list should be written in the order that the tasks must be completed.
Do not include tasks that have already been completed.
The number of tasks in the list should be between 1 and _MAX_TASKS_.
Each task should be one sentence.
Format:
Respond with the numbered list in the following format:
1. (first task to be completed)
2. (second task to be completed)
etc.
Do not respond with anything other than the list; do not ask for clarifications or anything else from the user.
Each item on the list should be one sentence."
# ASSESS TOOL DIRECTIVE
# Variables: _TASK_ - current objective, _TOOL_NAME_ - tool name (described in context)
# Desired Output: 'yes' if _TOOL_ can complete _TASK_, 'no' otherwise
ASSESS_TOOL_DIRECTIVE="Answer the following question:
Could the _TOOL_NAME_ tool complete _TASK_ entirely by itself with a single input?
If there are resources or abilities that are required for completing _TASK_ that are not available to the tool, you should respond with the word 'No'.
Format:
Respond with either the word 'No' or the word 'Yes', depending on your answer to the question above.
Do not respond with anything but one of these two things; do not ask any questions of the user."
# USE TOOL DIRECTIVE
# Variables: _TASK_ - current objective, _TOOL_NAME_ - tool name (described in context)
# Desired output: input for the tool that would achieve _TASK_, or 'I cannot' if not possible
USE_TOOL_DIRECTIVE="Provide an input for the _TOOL_NAME_ tool that will complete _TASK_.
Specifically, when the desired input is passed to the _TOOL_NAME_ tool, the tool will complete _TASK_ and provide the result.
If you cannot or need more information, respond with the phrase 'I cannot'.
Format:
Respond with the input for the tool or the phrase 'I cannot' and nothing else.
Do not respond with anything but one of these two things; do not ask for clarification."