chore: install openagent opencode
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
This commit is contained in:
@@ -0,0 +1,216 @@
|
||||
<!-- Context: openagents-repo/examples | Priority: high | Version: 1.0 | Updated: 2026-02-15 -->
|
||||
|
||||
# Context Bundle Example: Create Data Analyst Agent
|
||||
|
||||
Session: 20250121-143022-a4f2
|
||||
Created: 2025-01-21T14:30:22Z
|
||||
For: TaskManager
|
||||
Status: in_progress
|
||||
|
||||
## Task Overview
|
||||
|
||||
Create a new data analyst agent for the OpenAgents Control repository. This agent will specialize in data analysis tasks including data visualization, statistical analysis, and data transformation.
|
||||
|
||||
## User Request
|
||||
|
||||
"Create a new data analyst agent that can help with data analysis, visualization, and statistical tasks"
|
||||
|
||||
## Relevant Standards (Load These Before Starting)
|
||||
|
||||
**Core Standards**:
|
||||
- `.opencode/context/core/standards/code-quality.md` → Modular, functional code patterns
|
||||
- `.opencode/context/core/standards/test-coverage.md` → Testing requirements and TDD
|
||||
- `.opencode/context/core/standards/documentation.md` → Documentation standards
|
||||
|
||||
**Core Workflows**:
|
||||
- `.opencode/context/core/workflows/feature-breakdown.md` → Task breakdown methodology
|
||||
|
||||
## Repository-Specific Context (Load These Before Starting)
|
||||
|
||||
**Quick Start** (ALWAYS load first):
|
||||
- `.opencode/context/openagents-repo/quick-start.md` → Repo orientation and common commands
|
||||
|
||||
**Core Concepts** (Load based on task type):
|
||||
- `.opencode/context/openagents-repo/core-concepts/agents.md` → How agents work
|
||||
- `.opencode/context/openagents-repo/core-concepts/evals.md` → How testing works
|
||||
- `.opencode/context/openagents-repo/core-concepts/registry.md` → How registry works
|
||||
- `.opencode/context/openagents-repo/core-concepts/categories.md` → How organization works
|
||||
|
||||
**Guides** (Load for specific workflows):
|
||||
- `.opencode/context/openagents-repo/guides/adding-agent-basics.md` → Step-by-step agent creation
|
||||
- `.opencode/context/openagents-repo/guides/testing-agent.md` → Testing workflow
|
||||
- `.opencode/context/openagents-repo/guides/updating-registry.md` → Registry workflow
|
||||
|
||||
## Key Requirements
|
||||
|
||||
**From Standards**:
|
||||
- Agent must follow modular, functional programming patterns
|
||||
- All code must be testable and maintainable
|
||||
- Documentation must be concise and high-signal
|
||||
- Include examples where helpful
|
||||
|
||||
**From Repository Context**:
|
||||
- Agent file must be in `.opencode/agent/data/` directory (category-based organization)
|
||||
- Must include proper frontmatter metadata (id, name, description, category, type, version, etc.)
|
||||
- Must follow naming convention: `data-analyst.md` (kebab-case)
|
||||
- Must include tags for discoverability
|
||||
- Must specify tools and permissions
|
||||
- Must be registered in `registry.json`
|
||||
|
||||
**Naming Conventions**:
|
||||
- File name: `data-analyst.md` (kebab-case)
|
||||
- Agent ID: `data-analyst`
|
||||
- Category: `data`
|
||||
- Type: `agent`
|
||||
|
||||
**File Structure**:
|
||||
- Agent file: `.opencode/agent/data/data-analyst.md`
|
||||
- Eval directory: `evals/agents/data/data-analyst/`
|
||||
- Eval config: `evals/agents/data/data-analyst/config/eval-config.yaml`
|
||||
- Eval tests: `evals/agents/data/data-analyst/tests/`
|
||||
- README: `evals/agents/data/data-analyst/README.md`
|
||||
|
||||
## Technical Constraints
|
||||
|
||||
- Must use category-based organization (data category)
|
||||
- Must include proper frontmatter metadata
|
||||
- Must specify tools needed (read, write, bash, etc.)
|
||||
- Must define permissions for sensitive operations
|
||||
- Must include temperature setting (0.1-0.3 for analytical tasks)
|
||||
- Must follow agent prompt structure (context, role, task, instructions)
|
||||
- Eval tests must use YAML format
|
||||
- Registry entry must follow schema
|
||||
|
||||
## Files to Create/Modify
|
||||
|
||||
**Create**:
|
||||
- `.opencode/agent/data/data-analyst.md` - Main agent definition with frontmatter and prompt
|
||||
- `evals/agents/data/data-analyst/config/eval-config.yaml` - Eval configuration
|
||||
- `evals/agents/data/data-analyst/tests/smoke-test.yaml` - Basic smoke test
|
||||
- `evals/agents/data/data-analyst/tests/data-analysis-test.yaml` - Data analysis capability test
|
||||
- `evals/agents/data/data-analyst/README.md` - Agent documentation
|
||||
|
||||
**Modify**:
|
||||
- `registry.json` - Add data-analyst agent entry
|
||||
- `.opencode/context/navigation.md` - Add data category context if needed
|
||||
|
||||
## Success Criteria
|
||||
|
||||
- [x] Agent file created with proper frontmatter metadata
|
||||
- [x] Agent prompt follows established patterns (context, role, task, instructions)
|
||||
- [x] Eval test structure created with config and tests
|
||||
- [x] Smoke test passes
|
||||
- [x] Data analysis test passes
|
||||
- [x] Registry entry added and validates
|
||||
- [x] README documentation created
|
||||
- [x] All validation scripts pass
|
||||
|
||||
## Validation Requirements
|
||||
|
||||
**Scripts to Run**:
|
||||
- `./scripts/registry/validate-registry.sh` - Validates registry.json schema and entries
|
||||
- `./scripts/validation/validate-test-suites.sh` - Validates eval test structure
|
||||
|
||||
**Tests to Run**:
|
||||
- `cd evals/framework && bun --bun run eval:sdk -- --agent=data/data-analyst --pattern="smoke-test.yaml"` - Run smoke test
|
||||
- `cd evals/framework && bun --bun run eval:sdk -- --agent=data/data-analyst` - Run all tests
|
||||
|
||||
**Manual Checks**:
|
||||
- Verify frontmatter includes all required fields
|
||||
- Check that tools and permissions are appropriate
|
||||
- Ensure prompt is clear and follows standards
|
||||
- Verify eval tests are meaningful
|
||||
|
||||
## Expected Output
|
||||
|
||||
**Deliverables**:
|
||||
- Functional data analyst agent
|
||||
- Complete eval test suite
|
||||
- Registry entry
|
||||
- Documentation
|
||||
|
||||
**Format**:
|
||||
- Agent file: Markdown with YAML frontmatter
|
||||
- Eval config: YAML format
|
||||
- Eval tests: YAML format with test cases
|
||||
- README: Markdown documentation
|
||||
|
||||
## Progress Tracking
|
||||
|
||||
- [ ] Context loaded and understood
|
||||
- [ ] Agent file created with frontmatter
|
||||
- [ ] Agent prompt written
|
||||
- [ ] Eval directory structure created
|
||||
- [ ] Eval config created
|
||||
- [ ] Smoke test created
|
||||
- [ ] Data analysis test created
|
||||
- [ ] README documentation created
|
||||
- [ ] Registry entry added
|
||||
- [ ] Validation scripts run
|
||||
- [ ] All tests pass
|
||||
- [ ] Documentation updated
|
||||
|
||||
---
|
||||
|
||||
## Instructions for Subagent
|
||||
|
||||
**IMPORTANT**:
|
||||
1. Load ALL context files listed in "Relevant Standards" and "Repository-Specific Context" sections BEFORE starting work
|
||||
2. Follow ALL requirements from the loaded context
|
||||
3. Apply naming conventions and file structure requirements
|
||||
4. Validate your work using the validation requirements
|
||||
5. Update progress tracking as you complete steps
|
||||
|
||||
**Your Task**:
|
||||
Create a complete data analyst agent for the OpenAgents Control repository following all established conventions and standards.
|
||||
|
||||
**Approach**:
|
||||
1. **Load Context**: Read all context files listed above to understand:
|
||||
- How agents are structured (core-concepts/agents.md)
|
||||
- How to add an agent (guides/adding-agent-basics.md)
|
||||
- Code standards (standards/code-quality.md)
|
||||
- Testing requirements (core-concepts/evals.md)
|
||||
|
||||
2. **Create Agent File**:
|
||||
- Create `.opencode/agent/data/data-analyst.md`
|
||||
- Add frontmatter with all required metadata
|
||||
- Write agent prompt with:
|
||||
- Context section (system, domain, task, execution context)
|
||||
- Role definition
|
||||
- Task description
|
||||
- Instructions and workflow
|
||||
- Tools and capabilities
|
||||
- Examples if helpful
|
||||
|
||||
3. **Create Eval Structure**:
|
||||
- Create directory: `evals/agents/data/data-analyst/`
|
||||
- Create config: `config/eval-config.yaml`
|
||||
- Create tests directory: `tests/`
|
||||
- Create smoke test: `tests/smoke-test.yaml`
|
||||
- Create capability test: `tests/data-analysis-test.yaml`
|
||||
- Create README: `README.md`
|
||||
|
||||
4. **Update Registry**:
|
||||
- Add entry to `registry.json` following schema
|
||||
- Include: id, name, description, category, type, path, version, tags
|
||||
|
||||
5. **Validate**:
|
||||
- Run validation scripts
|
||||
- Run eval tests
|
||||
- Fix any issues
|
||||
|
||||
**Constraints**:
|
||||
- Agent must be in `data` category
|
||||
- Must follow functional programming patterns
|
||||
- Must include proper error handling
|
||||
- Must specify appropriate tools (read, write, bash for data tasks)
|
||||
- Temperature should be 0.1-0.3 for analytical precision
|
||||
- Eval tests must be meaningful and test actual capabilities
|
||||
|
||||
**Questions/Clarifications**:
|
||||
- What specific data analysis capabilities should be emphasized? (visualization, statistics, transformation)
|
||||
- Should the agent support specific data formats? (CSV, JSON, Parquet)
|
||||
- Should the agent integrate with specific tools? (pandas, matplotlib, etc.)
|
||||
- What level of statistical analysis? (descriptive, inferential, predictive)
|
||||
|
||||
**Note**: This is an example context bundle. In practice, the subagent would receive this file and follow the instructions to complete the task.
|
||||
48
.opencode/context/openagents-repo/examples/navigation.md
Normal file
48
.opencode/context/openagents-repo/examples/navigation.md
Normal file
@@ -0,0 +1,48 @@
|
||||
<!-- Context: openagents-repo/navigation | Priority: critical | Version: 1.0 | Updated: 2026-02-15 -->
|
||||
|
||||
# OpenAgents Examples
|
||||
|
||||
**Purpose**: Example implementations and use cases for OpenAgents Control
|
||||
|
||||
---
|
||||
|
||||
## Structure
|
||||
|
||||
```
|
||||
openagents-repo/examples/
|
||||
├── navigation.md (this file)
|
||||
├── hooks/
|
||||
│ └── navigation.md
|
||||
├── skills/
|
||||
│ └── navigation.md
|
||||
└── subagents/
|
||||
└── navigation.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Quick Routes
|
||||
|
||||
| Task | Path |
|
||||
|------|------|
|
||||
| **Hook examples** | `hooks/navigation.md` |
|
||||
| **Skill examples** | `skills/navigation.md` |
|
||||
| **Subagent examples** | `subagents/navigation.md` |
|
||||
| **Guides** | `../guides/navigation.md` |
|
||||
| **Blueprints** | `../blueprints/navigation.md` |
|
||||
|
||||
---
|
||||
|
||||
## By Type
|
||||
|
||||
**Hooks** → Hook implementation examples
|
||||
**Skills** → Skill implementation examples
|
||||
**Subagents** → Subagent implementation examples
|
||||
|
||||
---
|
||||
|
||||
## Related Context
|
||||
|
||||
- **OpenAgents Navigation** → `../navigation.md`
|
||||
- **Guides** → `../guides/navigation.md`
|
||||
- **Blueprints** → `../blueprints/navigation.md`
|
||||
@@ -0,0 +1,284 @@
|
||||
<!-- Context: openagents-repo/examples | Priority: high | Version: 1.0 | Updated: 2026-02-15 -->
|
||||
|
||||
# Subagent Prompt Structure (Optimized)
|
||||
|
||||
**Purpose**: Template for well-structured subagent prompts with tool usage emphasis
|
||||
|
||||
**Last Updated**: 2026-01-07
|
||||
|
||||
---
|
||||
|
||||
## Core Principle
|
||||
|
||||
**Position Sensitivity**: Critical instructions in first 15% of prompt improves adherence.
|
||||
|
||||
For subagents, the most critical instruction is: **which tools to use**.
|
||||
|
||||
---
|
||||
|
||||
## Optimized Structure
|
||||
|
||||
```xml
|
||||
---
|
||||
# Frontmatter (lines 1-50)
|
||||
id: subagent-name
|
||||
name: Subagent Name
|
||||
category: subagents/core
|
||||
type: subagent
|
||||
mode: subagent
|
||||
tools:
|
||||
read: true
|
||||
grep: true
|
||||
glob: true
|
||||
list: true
|
||||
bash: false
|
||||
edit: false
|
||||
write: false
|
||||
permissions:
|
||||
bash: "*": "deny"
|
||||
edit: "**/*": "deny"
|
||||
write: "**/*": "deny"
|
||||
---
|
||||
|
||||
# Agent Name
|
||||
|
||||
> **Mission**: One-sentence mission statement
|
||||
|
||||
Brief description (1-2 sentences).
|
||||
|
||||
---
|
||||
|
||||
<!-- CRITICAL: This section must be in first 15% -->
|
||||
<critical_rules priority="absolute" enforcement="strict">
|
||||
<rule id="tool_usage">
|
||||
ONLY use: glob, read, grep, list
|
||||
NEVER use: bash, write, edit, task
|
||||
You're read-only—no modifications allowed
|
||||
</rule>
|
||||
<rule id="always_use_tools">
|
||||
ALWAYS use tools to discover/verify
|
||||
NEVER assume or fabricate information
|
||||
</rule>
|
||||
<rule id="output_format">
|
||||
ALWAYS include: exact paths, specific details, evidence
|
||||
</rule>
|
||||
</critical_rules>
|
||||
|
||||
---
|
||||
|
||||
<context>
|
||||
<system>What system this agent operates in</system>
|
||||
<domain>What domain knowledge it needs</domain>
|
||||
<task>What it does</task>
|
||||
<constraints>What limits it has</constraints>
|
||||
</context>
|
||||
|
||||
<role>One-sentence role description</role>
|
||||
|
||||
<task>One-sentence task description</task>
|
||||
|
||||
---
|
||||
|
||||
<execution_priority>
|
||||
<tier level="1" desc="Critical Operations">
|
||||
- @tool_usage: Use ONLY allowed tools
|
||||
- @always_use_tools: Verify everything
|
||||
- @output_format: Precise results
|
||||
</tier>
|
||||
<tier level="2" desc="Core Workflow">
|
||||
- Main workflow steps
|
||||
</tier>
|
||||
<tier level="3" desc="Quality">
|
||||
- Quality checks
|
||||
- Validation
|
||||
</tier>
|
||||
<conflict_resolution>
|
||||
Tier 1 always overrides Tier 2/3
|
||||
</conflict_resolution>
|
||||
</execution_priority>
|
||||
|
||||
---
|
||||
|
||||
## Workflow
|
||||
|
||||
### Stage 1: Discovery
|
||||
**Action**: Use tools to discover information
|
||||
**Process**: 1. Use glob/list, 2. Use read, 3. Use grep
|
||||
**Output**: Discovered items
|
||||
|
||||
### Stage 2: Analysis
|
||||
**Action**: Analyze discovered information
|
||||
**Process**: Extract key details
|
||||
**Output**: Analyzed results
|
||||
|
||||
### Stage 3: Present
|
||||
**Action**: Return structured response
|
||||
**Process**: Format according to @output_format
|
||||
**Output**: Complete response
|
||||
|
||||
---
|
||||
|
||||
## What NOT to Do
|
||||
|
||||
- ❌ **NEVER use bash/write/edit/task tools** (@tool_usage)
|
||||
- ❌ Don't assume information—verify with tools
|
||||
- ❌ Don't fabricate paths or details
|
||||
- ❌ Don't skip required output fields
|
||||
|
||||
---
|
||||
|
||||
## Remember
|
||||
|
||||
**Your Tools**: glob (discover) | read (extract) | grep (search) | list (structure)
|
||||
|
||||
**Your Constraints**: Read-only, verify everything, precise output
|
||||
|
||||
**Your Value**: Accurate, verified information using tools
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Key Optimizations Applied
|
||||
|
||||
### 1. Critical Rules Early (Lines 50-80)
|
||||
|
||||
**Before** (buried at line 596):
|
||||
```markdown
|
||||
## Important Guidelines
|
||||
...
|
||||
(400 lines later)
|
||||
### Tool Usage
|
||||
- Use glob, read, grep, list
|
||||
```
|
||||
|
||||
**After** (at line 50):
|
||||
```xml
|
||||
<critical_rules priority="absolute" enforcement="strict">
|
||||
<rule id="tool_usage">
|
||||
ONLY use: glob, read, grep, list
|
||||
NEVER use: bash, write, edit, task
|
||||
</rule>
|
||||
</critical_rules>
|
||||
```
|
||||
|
||||
**Impact**: 47.5% reduction in prompt length, tool usage emphasized early.
|
||||
|
||||
---
|
||||
|
||||
### 2. Execution Priority (3-Tier System)
|
||||
|
||||
```xml
|
||||
<execution_priority>
|
||||
<tier level="1" desc="Critical">
|
||||
- Tool usage rules
|
||||
- Verification requirements
|
||||
</tier>
|
||||
<tier level="2" desc="Core">
|
||||
- Main workflow
|
||||
</tier>
|
||||
<tier level="3" desc="Quality">
|
||||
- Nice-to-haves
|
||||
</tier>
|
||||
<conflict_resolution>Tier 1 always overrides</conflict_resolution>
|
||||
</execution_priority>
|
||||
```
|
||||
|
||||
**Why**: Resolves conflicts, makes priorities explicit.
|
||||
|
||||
---
|
||||
|
||||
### 3. Flattened Nesting (≤4 Levels)
|
||||
|
||||
**Before** (6-7 levels):
|
||||
```xml
|
||||
<instructions>
|
||||
<workflow>
|
||||
<stage>
|
||||
<process>
|
||||
<step>
|
||||
<action>
|
||||
<detail>...</detail>
|
||||
</action>
|
||||
</step>
|
||||
</process>
|
||||
</stage>
|
||||
</workflow>
|
||||
</instructions>
|
||||
```
|
||||
|
||||
**After** (3-4 levels):
|
||||
```xml
|
||||
<workflow>
|
||||
<stage id="1" name="Discovery">
|
||||
<action>Use tools</action>
|
||||
<process>1. glob, 2. read, 3. grep</process>
|
||||
</stage>
|
||||
</workflow>
|
||||
```
|
||||
|
||||
**Why**: Improves clarity, reduces cognitive load.
|
||||
|
||||
---
|
||||
|
||||
### 4. Explicit "What NOT to Do"
|
||||
|
||||
```markdown
|
||||
## What NOT to Do
|
||||
|
||||
- ❌ **NEVER use bash/write/edit/task tools**
|
||||
- ❌ Don't assume—verify with tools
|
||||
- ❌ Don't fabricate information
|
||||
```
|
||||
|
||||
**Why**: Negative examples prevent common mistakes.
|
||||
|
||||
---
|
||||
|
||||
## File Size Targets
|
||||
|
||||
| Section | Target Lines | Purpose |
|
||||
|---------|--------------|---------|
|
||||
| Frontmatter | 30-50 | Agent metadata |
|
||||
| Critical Rules | 20-30 | Tool usage, core rules |
|
||||
| Context/Role/Task | 20-30 | Agent identity |
|
||||
| Execution Priority | 20-30 | Priority system |
|
||||
| Workflow | 80-120 | Main instructions |
|
||||
| Guidelines | 40-60 | Best practices |
|
||||
| **Total** | **<400 lines** | MVI compliant |
|
||||
|
||||
---
|
||||
|
||||
## Validation Checklist
|
||||
|
||||
Before deploying optimized prompt:
|
||||
|
||||
- [ ] Critical rules in first 15% (lines 50-80)?
|
||||
- [ ] Tool usage explicitly stated?
|
||||
- [ ] Nesting ≤4 levels?
|
||||
- [ ] Execution priority defined?
|
||||
- [ ] "What NOT to Do" section included?
|
||||
- [ ] Total lines <400?
|
||||
- [ ] Semantic meaning preserved?
|
||||
|
||||
---
|
||||
|
||||
## Real Example
|
||||
|
||||
**ContextScout Optimization**:
|
||||
- **Before**: 750 lines, critical rules at line 596
|
||||
- **After**: 394 lines (47.5% reduction), critical rules at line 50
|
||||
- **Result**: Test passed (was failing with 0 tool calls)
|
||||
|
||||
**Files**:
|
||||
- Optimized: `.opencode/agent/subagents/core/contextscout.md`
|
||||
- Backup: (example: `.opencode/agent/ContextScout-original-backup.md`)
|
||||
|
||||
---
|
||||
|
||||
## Related
|
||||
|
||||
- `concepts/subagent-testing-modes.md` - How to test optimized prompts
|
||||
- `guides/testing-subagents.md` - Verify tool usage works
|
||||
- `errors/tool-permission-errors.md` - Fix tool issues
|
||||
|
||||
**Reference**: `.opencode/command/prompt-engineering/prompt-optimizer.md` (optimization principles)
|
||||
Reference in New Issue
Block a user