Restructured self improvement reasoning + added training data
This commit is contained in:
@@ -0,0 +1,201 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<iteration system_prompt_hash="a357171f34284409058700f0d6c20cbb4f4bfe643aff5b12168c5158767f89b4" action_schema_hash="a4cf87f3d53c7b14aab3c96097d8b7bf838e8f77e413d11f51051afbe22fa3a6"><context><context
|
||||
context="12.87%"
|
||||
disk_total="1081101176832"
|
||||
disk_used="42638553088"
|
||||
memory_total="16630435840"
|
||||
memory_used="1091063808"
|
||||
stdin="0"
|
||||
time="2025-01-16T14:15:16Z">
|
||||
<single exit_code="0" id="20250116_135253_387">
|
||||
<![CDATA[
|
||||
ls -la /root/sia/procedures/using_procedures
|
||||
ls -la /root/sia/procedures/user_communication
|
||||
]]>
|
||||
<stdout>
|
||||
<![CDATA[total 16
|
||||
drwxr-xr-x 2 root root 4096 Jan 16 13:44 .
|
||||
drwxr-xr-x 4 root root 4096 Jan 8 08:47 ..
|
||||
-rwxr-xr-x 1 root root 1758 Jan 8 21:40 procedure.md
|
||||
-rwxr-xr-x 1 root root 1831 Jan 8 21:03 reasoning.md
|
||||
total 20
|
||||
drwxr-xr-x 2 root root 4096 Jan 16 13:44 .
|
||||
drwxr-xr-x 4 root root 4096 Jan 8 08:47 ..
|
||||
-rwxr-xr-x 1 root root 244 Jan 7 12:18 description.md
|
||||
-rwxr-xr-x 1 root root 3643 Jan 8 21:49 procedure.md
|
||||
-rwxr-xr-x 1 root root 1035 Jan 7 12:23 reasoning.md
|
||||
]]>
|
||||
</stdout>
|
||||
<stderr/>
|
||||
</single>
|
||||
<single exit_code="0" id="20250116_135343_982" limit="1758">
|
||||
<![CDATA[
|
||||
cat /root/sia/procedures/using_procedures/procedure.md
|
||||
]]>
|
||||
<stdout>
|
||||
<![CDATA[# Using Procedures
|
||||
|
||||
## Core Guidelines
|
||||
|
||||
When following a procedure's flowchart:
|
||||
|
||||
1. Start with reasoning:
|
||||
- State current position in flowchart explicitly
|
||||
- Focus on immediate next step, don't go ahead of the chart
|
||||
- Evaluate current context and task state
|
||||
- Often state entry id's that can be removed and explain why to avoid mistakes
|
||||
- State expected output and runtime for scripts
|
||||
|
||||
2. After script execution:
|
||||
- Analyze the actual output and compare with the expected output
|
||||
- Reevaluate situation based on results
|
||||
- Return to flowchart for next step
|
||||
- Consider if current path is still appropriate
|
||||
|
||||
3. When a procedure fails:
|
||||
- Create a task explaining the issue and the need to fix it
|
||||
- Add timestamps and id's of relevant entries
|
||||
|
||||
## Attention Management
|
||||
|
||||
LLMs pay more attention to recently mentioned information.
|
||||
Reasoning entries should mention what needs attention now.
|
||||
|
||||
To maintain focus:
|
||||
1. State current flowchart position in each reasoning
|
||||
2. Quote relevant parts of important entries
|
||||
3. Reference specific entry IDs when using their information
|
||||
4. Periodically remind about ongoing tasks or future needs
|
||||
5. Clean up entries that aren't needed for current step
|
||||
|
||||
Example of good attention management:
|
||||
```xml
|
||||
<reasoning>
|
||||
At node "evaluate_test_results". Entry 45f3d2 shows failed test: "Error: Connection timeout".
|
||||
Will need to check system logs soon (noted in /tasks/reminders.txt, check at 14:00).
|
||||
First focusing on this error.
|
||||
</reasoning>
|
||||
```
|
||||
|
||||
## Reasons to Switch Procedures
|
||||
|
||||
Common triggers:
|
||||
- Data available on stdin
|
||||
- Time matching scheduled task
|
||||
- Error conditions in script output
|
||||
- Resource constraints detected
|
||||
- User input needed]]>
|
||||
</stdout>
|
||||
<stderr/>
|
||||
</single>
|
||||
<single exit_code="0" id="20250116_135409_816" limit="3643">
|
||||
<![CDATA[
|
||||
cat /root/sia/procedures/user_communication/procedure.md
|
||||
]]>
|
||||
<stdout>
|
||||
<![CDATA[# User Communication
|
||||
|
||||
## Prerequisites
|
||||
- User information is stored in the /user directory
|
||||
- Tasks and their progress are documented in the /tasks directory
|
||||
|
||||
## Flow
|
||||
```mermaid
|
||||
flowchart TD
|
||||
Start([Start])
|
||||
LoadUserBasic[The /user/basic.md file should contain info to identify and address the user properly<br>Also load the last 10 messages from /user/conversation_history/ ]
|
||||
PrepareForDraft{Have everything needed for drafting a message?}
|
||||
DraftMessage[Draft message in reasoning entry]
|
||||
ReadInput[Read input from standard input]
|
||||
ReasonCleanContext[List id's of entries that are no longer needed<br>Explain for each entry why it is no longer needed]
|
||||
DeleteEntries[Remove the entries that are no longer needed<br>End by deleting the ReasonCleanContext entry]
|
||||
AddHistoryUser[Add the message to the /user/conversation_history/ directory<br>The filename is the id of the stdin entry with .user extension]
|
||||
LoadTask[Look for the task in the /tasks directory and load relevant files]
|
||||
LoadUserDetails[Look in the /user directory for relevant files]
|
||||
EstimateScript[Draft the script in a reasoning block and estimate its runtime and output length]
|
||||
ScriptAcceptable{Does the draft script make sense and are the estimations short enough to not hinder the conversation?}
|
||||
RunScript[Run the script, make sure to set appropriate timeout and output limits]
|
||||
ReviewDraft{Is the message well structured and free of logical errors?}
|
||||
SendMessage[Send the message using standard output]
|
||||
AddHistoryAgent[Add the message to the /user/conversation_history/ directory<br>The filename is the id of the stdout entry with .agent extension]
|
||||
ReasonResponse[Is the conversation ongoing?<br>How long is the user expected to take to respond?]
|
||||
NeedAwaitResponse{Is it likely to get a response within a minute?}
|
||||
BusyWait[Wait 1 second for the first busy wait, double the time each iteration until a response is received<br>Make sure to set the timout]
|
||||
|
||||
End([Clean the context])
|
||||
|
||||
Start --> LoadUserBasic
|
||||
LoadUserBasic --> PrepareForDraft
|
||||
|
||||
PrepareForDraft -->|Got all needed info| DraftMessage
|
||||
PrepareForDraft -->|Getting the required info would slow the conversation| DraftMessage
|
||||
PrepareForDraft -->|Input available on stdin| ReadInput
|
||||
PrepareForDraft -->|Context usage more than 50%| ReasonCleanContext
|
||||
PrepareForDraft -->|Task mentioned but not loaded| LoadTask
|
||||
PrepareForDraft -->|Personal or social info mentioned but not loaded| LoadUserDetails
|
||||
PrepareForDraft -->|Calculations, system info or other numerical values that can be scripted are mentioned| EstimateScript
|
||||
|
||||
ReasonCleanContext --> DeleteEntries
|
||||
DeleteEntries --> PrepareForDraft
|
||||
|
||||
ReadInput --> AddHistoryUser
|
||||
AddHistoryUser --> PrepareForDraft
|
||||
|
||||
LoadTask --> PrepareForDraft
|
||||
LoadUserDetails --> PrepareForDraft
|
||||
|
||||
EstimateScript --> ScriptAcceptable
|
||||
ScriptAcceptable -->|Acceptable| RunScript
|
||||
ScriptAcceptable -->|Not acceptable| PrepareForDraft
|
||||
RunScript --> PrepareForDraft
|
||||
|
||||
DraftMessage --> ReviewDraft{Is this really what I want to say?}
|
||||
ReviewDraft -->|Rewrite better| DraftMessage
|
||||
ReviewDraft -->|Good message| SendMessage
|
||||
|
||||
SendMessage --> AddHistoryAgent
|
||||
AddHistoryAgent --> ReasonResponse
|
||||
ReasonResponse --> NeedAwaitResponse
|
||||
|
||||
NeedAwaitResponse -->|Quick response is unlikely| End
|
||||
NeedAwaitResponse -->|Input available on stdin| PrepareForDraft
|
||||
NeedAwaitResponse -->|Quick response is likely| BusyWait
|
||||
BusyWait --> NeedAwaitResponse
|
||||
```]]>
|
||||
</stdout>
|
||||
<stderr/>
|
||||
</single>
|
||||
<reasoning id="20250116_135726_364">
|
||||
<![CDATA[
|
||||
Let's prepare for user communication.
|
||||
I'll create a reasoning block with my current findings.
|
||||
Next I'll reason about which context elements I can clear.
|
||||
After cleaning, I'll end up with the findings and the procedures.
|
||||
This will be a good starting point for communication.
|
||||
]]>
|
||||
</reasoning>
|
||||
<reasoning id="20250116_140036_848">
|
||||
<![CDATA[
|
||||
|
||||
I've explored the filesystem and found this is a clean start of SIA.
|
||||
I'll introduce myself to the user and report my findings.
|
||||
I can wait for user input for a long time since I don't have any other tasks.
|
||||
|
||||
]]>
|
||||
</reasoning>
|
||||
<reasoning id="20250116_141227_271">
|
||||
<![CDATA[
|
||||
20250116_134549_655: I've done this and found nothing. I've noted my conclusions. This entry can be deleted.
|
||||
20250116_134555_680: No need to keep this standard directory listing in context.
|
||||
20250116_134639_663: I've done this and found nothing. I've noted my conclusions. This entry can be deleted.
|
||||
20250116_134644_445: No need to keep this standard directory listing in context.
|
||||
20250116_134729_674: I've done this and found nothing. I've noted my conclusions. This entry can be deleted.
|
||||
20250116_134736_148: This listing is likely stale by now. Best to remove it.
|
||||
20250116_135016_476: I've loaded the only interesing procedures. This entry can be deleted.
|
||||
20250116_135024_642: No need to keep this standard directory listing in context.
|
||||
20250116_135232_795: I'm in the process of doing this. This reasoning is already summarized so the entry can be deleted.
|
||||
20250116_135253_387: No need to keep this standard directory listing in context.
|
||||
20250116_135726_364: I'm in the process of doing this. I'll remove this right before removing this reasoning entry about what to delete.
|
||||
]]>
|
||||
</reasoning>
|
||||
</context></context><response><delete id="20250116_135253_387"/></response></iteration>
|
||||
Reference in New Issue
Block a user