# Summary instructions

This commit is contained in:
Git Admin 2025-12-02 10:28:25 +00:00
parent f4be5cdfba
commit 08ce0f843b
2 changed files with 438 additions and 0 deletions

View File

@ -6,6 +6,13 @@
--- ---
# Summary Instructions
When you are using compact, please focus on test output and code changes
---
---
## 📊 CURRENT STATUS ## 📊 CURRENT STATUS
### ✅ What's Working: ### ✅ What's Working:

431
code.md Normal file
View File

@ -0,0 +1,431 @@
# Code Efficiency & Sub-Agents Guide - Phase 3
**Purpose:** Optimize code efficiency, reduce API costs, and leverage OpenHands sub-agents for Phase 3 autonomous build testing.
---
## 🤖 OpenHands Sub-Agents
### What Are Sub-Agents?
Sub-agents are specialized AI agents within OpenHands that handle specific tasks:
- **File Editor** - Create, edit, view files
- **Bash Runner** - Execute shell commands
- **Search Agent** - Find files, code patterns
- **Code Analyzer** - Review code structure
### Benefits for Phase 3
- ✅ **Targeted Actions** - Each sub-agent is optimized for specific tasks
- ✅ **Cost Efficiency** - More focused tasks = fewer tokens
- ✅ **Faster Execution** - Specialized agents work quicker
- ✅ **Better Results** - Right tool for the right job
### Using Sub-Agents in Phase 3
#### 1. File Creation & Editing
```
Task: "Create a package.json for Node.js project"
→ Uses: File Editor sub-agent
Result: Optimized package.json with correct dependencies
```
#### 2. Build Script Execution
```
Task: "Run npm install && npm run build"
→ Uses: Bash Runner sub-agent
Result: Executed commands with exit codes
```
#### 3. Code Review & Analysis
```
Task: "Analyze build errors in /workspace/project"
→ Uses: Code Analyzer sub-agent
Result: Identified syntax errors, missing dependencies
```
#### 4. Error Diagnosis
```
Task: "Find all TypeScript errors in the project"
→ Uses: Search Agent + Code Analyzer
Result: List of files with errors + solutions
```
---
## 💰 Reducing API Usage Costs
### 1. Efficient Task Formulation
**❌ Bad (High Cost):**
```
"Build the project, test it, fix any errors, optimize performance,
and make sure everything works perfectly"
```
**✅ Good (Low Cost):**
```
Task: "Build project at /workspace/my-project"
Follow-up: "Fix npm install errors"
Follow-up: "Resolve TypeScript compilation errors"
```
**Why:** Smaller, specific tasks = fewer tokens = lower cost
### 2. Use Structured Commands
**✅ Instead of:**
```
"Please look at my code and see if there are any issues"
```
**✅ Use:**
```
Task: "Search for console.log statements in /workspace/project/src"
```
### 3. Leverage File Editor for Batch Operations
**✅ Efficient Pattern:**
```
1. Task: "Create /workspace/project/test.js with basic tests"
2. Task: "Edit /workspace/project/index.js to import test.js"
3. Task: "Run npm test"
```
### 4. Cache & Reuse Context
**Strategy:**
- Use same workspace for multiple builds
- Keep dependencies installed
- Reuse configuration files
---
## ⏱️ Reducing Execution Time
### 1. Parallel Sub-Agent Execution
OpenHands can run multiple sub-agents concurrently:
```
Task: [
"Install npm dependencies",
"Check TypeScript configuration",
"Verify package.json scripts"
]
→ Runs in parallel = 3x faster
```
### 2. Incremental Builds
**Instead of full rebuild:**
```
Task: "Build only changed files"
→ Checks git diff
→ Rebuilds modified components
→ Saves time on large projects
```
### 3. Smart Dependency Caching
```bash
# Cache node_modules
Task: "Copy cached node_modules from /workspace/cache to /workspace/project"
# Skip npm install if cached
Task: "Check if node_modules exists, if yes skip npm install"
```
### 4. Pre-configured Build Environments
```
Task: "Use pre-configured Docker build environment"
→ Skip environment setup
→ Start build immediately
```
---
## 🔧 Best Practices for Phase 3
### 1. Build Task Optimization
**Template for Build Tasks:**
```
Task: "Build project: /workspace/{project_name}
Commands:
1. cd /workspace/{project_name}
2. npm install # Only if node_modules missing
3. npm run build # Or build command from package.json
4. Report exit code and any errors"
```
### 2. Error Handling Pattern
**Standard Error Response:**
```json
{
"success": false,
"exit_code": 1,
"errors": [
{
"file": "src/index.ts",
"line": 15,
"error": "Type 'string' is not assignable to type 'number'"
}
],
"suggestions": [
"Fix type annotation on line 15",
"Convert string to number or update type definition"
]
}
```
### 3. Retry-Friendly Tasks
**Each task should be:**
- ✅ Idempotent - Can run multiple times safely
- ✅ Self-contained - Includes context
- ✅ Actionable - Clear next steps
- ✅ Specific - Not vague or multi-part
**❌ Avoid:**
```
"Fix the build issues"
```
**✅ Prefer:**
```
Task: "Fix TypeScript error: Type 'string' is not assignable to type 'number' in src/index.ts:15
Solution: Add type conversion: const num = parseInt(str)"
```
### 4. Progress Tracking
**For Long Builds:**
```
Progress: "Building project... (1/4 steps: npm install)"
Progress: "Building project... (2/4 steps: TypeScript compilation)"
Progress: "Building project... (3/4 steps: Webpack bundling)"
Progress: "Build completed successfully"
```
---
## 📊 Cost Optimization Strategies
### 1. Token Budget Management
**Per Retry Budget:**
- **1st Attempt:** 500 tokens (basic task)
- **2nd Attempt:** 750 tokens (with error context)
- **3rd Attempt:** 1000 tokens (detailed debugging)
**Implementation:**
```javascript
// In n8n Code node
const retryCount = $workflow.staticData.retry_count || 0;
const tokenLimit = 500 + (retryCount * 250); // 500, 750, 1000
return {
task: `Build project with ${tokenLimit} token budget`,
retry_count: retryCount
};
```
### 2. Smart Error Collection
**Collect Only Relevant Errors:**
```javascript
// Extract only build-blocking errors
const errors = buildOutput.stderr
.split('\n')
.filter(line => line.includes('error'))
.slice(0, 5) // Limit to 5 errors
.join('\n');
```
### 3. Cached Dependencies
**Reduce Install Time:**
```bash
# Check cache first
if [ -d "/workspace/cache/node_modules" ]; then
cp -r /workspace/cache/node_modules /workspace/project/
echo "Used cached dependencies"
else
npm install
cp -r node_modules /workspace/cache/
fi
```
### 4. Selective Testing
**For Large Projects:**
```
Task: "Run tests only for modified files (git diff --name-only)"
→ Tests: {list of changed files}
→ Time saved: 90%
```
---
## 🚀 Sub-Agent Usage Examples
### Example 1: Quick Build Test
```
Task: "Test build in /workspace/project
Steps:
1. Check if package.json exists
2. Run npm install (if needed)
3. Run npm run build
4. Verify build/ directory created
5. Report: success/failure + exit code"
```
### Example 2: Error Diagnosis
```
Task: "Diagnose build failure in /workspace/project
Steps:
1. Read last 50 lines of build output
2. Identify error type (TS, Webpack, Runtime)
3. Find source file causing error
4. Suggest specific fix
5. Return actionable error report"
```
### Example 3: Code Optimization
```
Task: "Optimize build performance in /workspace/project
Steps:
1. Check bundle size (webpack-bundle-analyzer)
2. Identify large dependencies
3. Suggest tree-shaking improvements
4. Propose code splitting strategy"
```
---
## 📈 Phase 3 Implementation Tips
### 1. Task Granularity
**Fine-grained tasks (Recommended):**
```javascript
const tasks = [
"Install dependencies",
"Compile TypeScript",
"Bundle with Webpack",
"Run unit tests",
"Generate build report"
];
```
**Instead of one large task:**
```javascript
const task = "Build and test the entire project"
```
### 2. State Persistence
**Use n8n staticData:**
```javascript
$workflow.staticData = $workflow.staticData || {};
$workflow.staticData.build_state = {
stage: "installing",
completed_steps: [],
errors: []
};
```
### 3. Resource Limits
**Per Task Limits:**
- **Timeout:** 300 seconds max
- **Token Budget:** 1000 tokens max
- **Retries:** 3 attempts max
- **Concurrency:** 1 task at a time
### 4. Monitoring
**Track Performance:**
```javascript
const startTime = Date.now();
await runBuildTask();
const duration = Date.now() - startTime;
return {
success: true,
duration_ms: duration,
cost_estimate: calculateCost(tokens_used)
};
```
---
## 🎯 Phase 3 Success Metrics
### Performance Targets
- **Build Time:** < 60 seconds (simple project)
- **Error Detection:** < 10 seconds
- **Retry Success Rate:** > 70%
- **API Cost:** < $0.10 per build
- **Token Usage:** < 3000 tokens per workflow
### Quality Targets
- **Error Accuracy:** 95%+ (correctly identify real issues)
- **False Positives:** < 5%
- **Build Success Rate:** 90%+ (after retries)
- **Documentation:** All errors documented with solutions
---
## 🔍 Troubleshooting Sub-Agents
### Common Issues & Solutions
**Issue:** Sub-agent timeout
**Solution:** Break task into smaller pieces
**Issue:** Token limit exceeded
**Solution:** Reduce task scope, use more specific commands
**Issue:** Build hangs
**Solution:** Add timeout wrapper, kill long-running processes
**Issue:** Errors not captured
**Solution:** Use structured error collection, check exit codes
---
## 📚 Reference Commands
### Testing Sub-Agent Efficiency
```bash
# Test single sub-agent
Task: "Create file /workspace/test.txt with 'Hello'"
# Test parallel execution
Task: [
"Create /workspace/file1.txt",
"Create /workspace/file2.txt",
"List /workspace directory"
]
```
### Monitoring API Usage
```javascript
// Track tokens per task
const tokenCount = estimateTokens(task);
if (tokenCount > 1000) {
console.warn(`High token usage: ${tokenCount}`);
}
```
### Caching Strategy
```bash
# Cache directory structure
/cache/
/node_modules/
/dist/
/test-results/
```
---
*Code Efficiency Guide - Last Updated: 2025-12-02*
*Optimized for Phase 3 Autonomous Build Testing*