Added first procedures

This commit is contained in:
Niels Geens
2025-01-08 22:42:14 +01:00
parent e730eba58c
commit 4cd0fe8450
7 changed files with 333 additions and 6 deletions

View File

@@ -0,0 +1,58 @@
# Design Rationale
## Why Procedures
Procedures provide guided reasoning paths for complex tasks. The LLM engine can make mistakes when:
- Jumping to action before proper analysis
- Losing track of task context after interruptions
- Missing key steps in complex processes
- Forgetting to preserve state before transitions
Procedures help prevent these issues by:
- Encouraging reasoning before action through flowchart structure
- Providing clear decision points for state evaluation
- Identifying when sub-procedures may help
- Guiding consistent approaches to common tasks
## Task State vs Procedure Guidance
Procedures guide reasoning about tasks but don't manage task state directly. For example:
During code development:
- Task state in /tasks/: code files, test results, requirements
- Procedure guidance: when to write tests, when to debug, when to refactor
- State preserved in files before switching focus
- Context regenerated from files when returning
This separation allows:
- Clean task interruption and resumption
- Natural procedure transitions
- State preservation without rigid control
- Flexible adaptation to situations
## Common Mistakes
### Premature Context Cleaning
```xml
<context ...>
<single ... id="123">
cat /procedures/test/procedure.md
<stdout>
...
</stdout>
<stderr/>
</single>
...
<reasoning>Test failed. Moving to debug procedure.</reasoning>
</context>
<delete id="123"/>
```
This removes the active procedure entry before finishing its steps
### Keeping irrelevant info in context
LLM's have difficulty spotting duplicates and sections with a low attention score.
Procedures with explicit instructions for finding these sections can help increase their attention.