<context
context="13.08%"
disk_total="1081101176832"
disk_used="42638553088"
memory_total="16630435840"
memory_used="1089396736"
stdin="0"
time="2025-01-16T14:14:28Z">
<reasoning id="20250116_135232_795">
<![CDATA[
There are no specific procedures to follow.
I will ask the user what I should do.
I'll load the `using_procedures` and `user_communication` procedures.
]]>
</reasoning>
<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><delete id="20250116_135232_795"/>