208 lines
9.2 KiB
XML
208 lines
9.2 KiB
XML
<?xml version='1.0' encoding='utf-8'?>
|
|
<iteration system_prompt_hash="a357171f34284409058700f0d6c20cbb4f4bfe643aff5b12168c5158767f89b4" action_schema_hash="a4cf87f3d53c7b14aab3c96097d8b7bf838e8f77e413d11f51051afbe22fa3a6"><context><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></context><response><delete id="20250116_135232_795"/></response></iteration> |