303 lines
9.5 KiB
Markdown
303 lines
9.5 KiB
Markdown
---
|
|
name: arch-tune
|
|
description: Architecture-level tuning through parallel exploration of multiple graph structure changes
|
|
---
|
|
|
|
# LangGraph Architecture Tuning Command
|
|
|
|
Boldly modify the graph structure of LangGraph applications to improve performance. Explore multiple improvement proposals in parallel to identify the optimal configuration.
|
|
|
|
## 🎯 Purpose
|
|
|
|
Optimize graph structure according to the following objectives:
|
|
|
|
```
|
|
$ARGUMENTS
|
|
```
|
|
|
|
While the **fine-tune skill** focuses on prompt and parameter optimization, the **arch-tune command** modifies the graph structure itself:
|
|
|
|
- Add/remove nodes and edges
|
|
- Introduce subgraphs
|
|
- Add parallel processing
|
|
- Change routing strategies
|
|
- Switch architectural patterns
|
|
|
|
## 📋 Execution Flow
|
|
|
|
### Initialization: Task Registration
|
|
|
|
At the start of the arch-tune command, use the TodoWrite tool to register all Phases from the following sections as tasks. (It's recommended to include a reference to this file to avoid forgetting its contents.)
|
|
|
|
Update each Phase to `in_progress` at the start and `completed` upon completion.
|
|
|
|
### Phase 1: Analysis and Proposal (arch-analysis skill)
|
|
|
|
**Execution Steps**:
|
|
|
|
1. **Launch the `arch-analysis` skill**
|
|
- Verify/create evaluation program (`.langgraph-master/evaluation/`)
|
|
- Measure baseline performance (3-5 runs)
|
|
- Analyze graph structure (using Serena MCP)
|
|
- Identify bottlenecks
|
|
- Consider architectural patterns
|
|
- Generate 3-5 specific improvement proposals
|
|
|
|
**Output**:
|
|
|
|
- `analysis/baseline_performance.json` - Baseline performance (including statistics)
|
|
- `analysis/analysis_report.md` - Current state analysis and issues
|
|
- `analysis/improvement_proposals.md` - Detailed improvement proposals (Proposal 1-5)
|
|
- `.langgraph-master/evaluation/` - Evaluation program (created or verified)
|
|
|
|
→ See arch-analysis skill for detailed procedures and workflow
|
|
|
|
### Phase 2: Implementation
|
|
|
|
**Purpose**: Implement graph structure for each improvement proposal
|
|
|
|
**Execution Steps**:
|
|
|
|
1. **Create and Prepare Git Worktrees**
|
|
|
|
Create independent working environments for each improvement proposal:
|
|
|
|
```bash
|
|
# Create worktree for each Proposal 1, 2, 3
|
|
git worktree add .worktree/proposal-1 -b proposal-1
|
|
git worktree add .worktree/proposal-2 -b proposal-2
|
|
git worktree add .worktree/proposal-3 -b proposal-3
|
|
|
|
# Copy analysis results and .env to each worktree
|
|
for dir in .worktree/*/; do
|
|
cp -r analysis "$dir"
|
|
cp .env "$dir"
|
|
done
|
|
|
|
# If evaluation program is in original directory, make it executable in each worktree
|
|
# (No copy needed if using shared .langgraph-master/evaluation/)
|
|
```
|
|
|
|
**Directory Structure**:
|
|
|
|
```
|
|
project/
|
|
├── .worktree/
|
|
│ ├── proposal-1/ # Independent working environment 1
|
|
│ │ ├── analysis/ # Analysis results (copy **Copy as files after creating worktree, don't commit and pass!**)
|
|
│ │ │ ├── baseline_performance.json
|
|
│ │ │ ├── analysis_report.md
|
|
│ │ │ └── improvement_proposals.md
|
|
│ │ └── [project files]
|
|
│ ├── proposal-2/ # Independent working environment 2
|
|
│ └── proposal-3/ # Independent working environment 3
|
|
├── analysis/ # Analysis results (original)
|
|
└── [original project files]
|
|
```
|
|
|
|
2. **Parallel Implementation by langgraph-engineer**
|
|
|
|
**Launch langgraph-engineer agent for each Proposal**:
|
|
|
|
```markdown
|
|
Working worktree: .worktree/proposal-X/
|
|
Improvement proposal: Proposal X (from analysis/improvement_proposals.md)
|
|
Task: Implement graph structure changes and test that it works correctly (add/modify nodes, edges, subgraphs)
|
|
|
|
Complete implementation as langgraph-engineer.
|
|
See agents/langgraph-engineer.md for details.
|
|
```
|
|
|
|
**Parallel Execution Pattern**:
|
|
|
|
- Start implementation for all Proposals (1, 2, 3, ...) in parallel
|
|
- Each langgraph-engineer agent works independently
|
|
|
|
3. **Wait for All Implementations to Complete**
|
|
- Parent agent confirms completion of all implementations
|
|
|
|
### Phase 3: Optimization
|
|
|
|
**Purpose**: Optimize prompts and parameters for implemented graphs
|
|
|
|
**Execution Steps**:
|
|
|
|
1. **Parallel Optimization by langgraph-tuner**
|
|
|
|
**After Phase 2 completion, launch langgraph-tuner agent for each worktree Proposal implementation**:
|
|
|
|
```markdown
|
|
Working worktree: .worktree/proposal-X/
|
|
Improvement proposal: Proposal X (from analysis/improvement_proposals.md)
|
|
Optimization goal: [User-specified goal]
|
|
|
|
Note: Graph structure changes are completed in Phase 2. Skip Phase 2 and start from Phase 3 (testing).
|
|
|
|
Result report:
|
|
|
|
- Filename: `proposal_X_result.md` (save directly under .worktree/proposal-X/)
|
|
- Format: Summarize experiment results and insights concisely
|
|
- Required items: Comparison table with baseline, improvement rate, key changes, recommendations
|
|
|
|
Execute optimization workflow as langgraph-tuner.
|
|
See agents/langgraph-tuner.md for details.
|
|
```
|
|
|
|
**Parallel Execution Pattern**:
|
|
|
|
- Start optimization for all Proposals (1, 2, 3, ...) in parallel
|
|
- Each langgraph-tuner agent works independently
|
|
|
|
2. **Wait for All Optimizations to Complete**
|
|
- Parent agent confirms completion of all optimizations and result report generation
|
|
|
|
**Important**:
|
|
|
|
- Use the same evaluation program across all worktrees
|
|
|
|
### Phase 4: Results Comparison (proposal-comparator agent)
|
|
|
|
**Purpose**: Identify the best improvement proposal
|
|
|
|
**Execution Steps**:
|
|
|
|
**Launch proposal-comparator agent**:
|
|
|
|
```markdown
|
|
Implementation reports: Read `proposal_X_result.md` from each worktree
|
|
|
|
- .worktree/proposal-1/proposal_1_result.md
|
|
- .worktree/proposal-2/proposal_2_result.md
|
|
- .worktree/proposal-3/proposal_3_result.md
|
|
Optimization goal: [User-specified goal]
|
|
|
|
Execute comparative analysis as proposal-comparator.
|
|
See agents/proposal-comparator.md for details.
|
|
```
|
|
|
|
### Phase 5: Merge Confirmation (merge-coordinator agent)
|
|
|
|
**Purpose**: Merge with user approval
|
|
|
|
**Execution Steps**:
|
|
|
|
**Launch merge-coordinator agent**:
|
|
|
|
```markdown
|
|
Comparison report: analysis/comparison_report.md
|
|
Worktree: .worktree/proposal-\*/
|
|
|
|
Execute user approval and merge as merge-coordinator.
|
|
See agents/merge-coordinator.md for details.
|
|
```
|
|
|
|
## 🔧 Technical Details
|
|
|
|
### Git Worktree Commands
|
|
|
|
**Create**:
|
|
|
|
```bash
|
|
git worktree add .worktree/<branch-name> -b <branch-name>
|
|
```
|
|
|
|
**List**:
|
|
|
|
```bash
|
|
git worktree list
|
|
```
|
|
|
|
**Remove**:
|
|
|
|
```bash
|
|
git worktree remove .worktree/<branch-name>
|
|
git branch -d <branch-name>
|
|
```
|
|
|
|
### Parallel Execution Implementation
|
|
|
|
Claude Code automatically executes in parallel by calling multiple `Task` tools in a single message.
|
|
|
|
### Subagent Constraints
|
|
|
|
- ❌ Subagents cannot call other subagents
|
|
- ✅ Subagents can call skills
|
|
- → Each subagent can directly execute the fine-tune skill
|
|
|
|
## ⚠️ Notes
|
|
|
|
### Git Worktree
|
|
|
|
1. Add `.worktree/` to `.gitignore`
|
|
2. Each worktree is an independent working directory
|
|
3. No conflicts even with parallel execution
|
|
|
|
### Evaluation
|
|
|
|
1. **Evaluation Program Location**:
|
|
|
|
- Recommended: Place in `.langgraph-master/evaluation/` (accessible from all worktrees)
|
|
- Each worktree references the baseline copied to `analysis/`
|
|
|
|
2. **Unified Evaluation Conditions**:
|
|
|
|
- Use the same evaluation program across all worktrees
|
|
- Evaluate with the same test cases
|
|
- Share environment variables (API keys, etc.)
|
|
|
|
3. **Evaluation Execution**:
|
|
- Each langgraph-tuner agent executes evaluation independently
|
|
- Ensure statistical reliability with 3-5 iterations
|
|
- Each agent compares against baseline
|
|
|
|
### Cleanup
|
|
|
|
1. Delete unnecessary worktrees after merge
|
|
2. Delete branches as well
|
|
3. Verify `.worktree/` directory
|
|
|
|
## 🎓 Usage Examples
|
|
|
|
### Basic Execution Flow
|
|
|
|
```bash
|
|
# Execute arch-tune command
|
|
/arch-tune "Improve Latency to under 2.0s and Accuracy to over 90%"
|
|
```
|
|
|
|
**Execution Flow**:
|
|
|
|
1. **Phase 1**: arch-analysis skill generates 3-5 improvement proposals
|
|
|
|
- See [arch-analysis skill](../skills/arch-analysis/SKILL.md) for detailed improvement proposals
|
|
|
|
2. **Phase 2**: Graph Structure Implementation
|
|
|
|
- Create independent environments with Git worktree
|
|
- langgraph-engineer implements graph structure for each Proposal in parallel
|
|
|
|
3. **Phase 3**: Prompt and Parameter Optimization
|
|
|
|
- langgraph-tuner optimizes each Proposal in parallel
|
|
- Generate result reports (`proposal_X_result.md`)
|
|
|
|
4. **Phase 4**: Compare results and identify best proposal
|
|
|
|
- Display all metrics in comparison table
|
|
|
|
5. **Phase 5**: Merge after user approval
|
|
- Merge selected proposal to main branch
|
|
- Clean up unnecessary worktrees
|
|
|
|
**Example**: See [arch-analysis skill improvement_proposals section](../skills/arch-analysis/SKILL.md#improvement_proposalsmd) for detailed proposal examples for customer support chatbot optimization.
|
|
|
|
## 🔗 Related Resources
|
|
|
|
- [arch-analysis skill](../skills/arch-analysis/SKILL.md) - Analysis and proposal generation (Phase 1)
|
|
- [langgraph-engineer agent](../agents/langgraph-engineer.md) - Graph structure implementation (Phase 2)
|
|
- [langgraph-tuner agent](../agents/langgraph-tuner.md) - Prompt optimization and evaluation (Phase 3)
|
|
- [proposal-comparator agent](../agents/proposal-comparator.md) - Results comparison and recommendation selection (Phase 4)
|
|
- [merge-coordinator agent](../agents/merge-coordinator.md) - User approval and merge execution (Phase 5)
|
|
- [fine-tune skill](../skills/fine-tune/SKILL.md) - Prompt optimization (used by langgraph-tuner)
|
|
- [langgraph-master skill](../skills/langgraph-master/SKILL.md) - Architectural patterns
|