242 lines
6.4 KiB
Markdown
242 lines
6.4 KiB
Markdown
|
|
# TypeDialog Agent Examples
|
||
|
|
|
||
|
|
This directory contains example agents demonstrating various capabilities of the TypeDialog Agent system.
|
||
|
|
|
||
|
|
## Available Agents
|
||
|
|
|
||
|
|
### 1. greeting.agent.mdx
|
||
|
|
**Purpose**: Simple friendly greeting
|
||
|
|
**Inputs**: `name` (String)
|
||
|
|
**LLM**: Claude 3.5 Haiku
|
||
|
|
|
||
|
|
**Usage**:
|
||
|
|
```bash
|
||
|
|
# CLI
|
||
|
|
typedialog-ag agents/greeting.agent.mdx
|
||
|
|
|
||
|
|
# HTTP
|
||
|
|
curl -X POST http://localhost:8765/agents/greeting/execute \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{"name":"Alice"}'
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. code-reviewer.agent.mdx
|
||
|
|
**Purpose**: Comprehensive code review
|
||
|
|
**Inputs**: `language` (String), `code` (String)
|
||
|
|
**LLM**: Claude Opus 4.5
|
||
|
|
**Validation**: Must contain "## Review" and "## Suggestions"
|
||
|
|
|
||
|
|
**Usage**:
|
||
|
|
```bash
|
||
|
|
curl -X POST http://localhost:8765/agents/code-reviewer/execute \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{
|
||
|
|
"language": "rust",
|
||
|
|
"code": "fn add(a: i32, b: i32) -> i32 { a + b }"
|
||
|
|
}'
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. architect.agent.mdx
|
||
|
|
**Purpose**: Software architecture design
|
||
|
|
**Inputs**: `feature` (String), `tech_stack?` (String, optional)
|
||
|
|
**LLM**: Claude Opus 4.5
|
||
|
|
**Validation**: Must contain "## Architecture", "## Components", "## Data Flow"
|
||
|
|
|
||
|
|
**Usage**:
|
||
|
|
```bash
|
||
|
|
curl -X POST http://localhost:8765/agents/architect/execute \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{
|
||
|
|
"feature": "Real-time chat system",
|
||
|
|
"tech_stack": "Rust, WebSockets, PostgreSQL"
|
||
|
|
}'
|
||
|
|
```
|
||
|
|
|
||
|
|
### 4. summarizer.agent.mdx
|
||
|
|
**Purpose**: Text summarization
|
||
|
|
**Inputs**: `text` (String), `style?` (String, optional)
|
||
|
|
**LLM**: Claude 3.5 Sonnet
|
||
|
|
|
||
|
|
**Usage**:
|
||
|
|
```bash
|
||
|
|
curl -X POST http://localhost:8765/agents/summarizer/execute \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{
|
||
|
|
"text": "Long article text here...",
|
||
|
|
"style": "technical"
|
||
|
|
}'
|
||
|
|
```
|
||
|
|
|
||
|
|
### 5. test-generator.agent.mdx
|
||
|
|
**Purpose**: Generate unit tests
|
||
|
|
**Inputs**: `language` (String), `function_code` (String)
|
||
|
|
**LLM**: Claude 3.5 Sonnet
|
||
|
|
**Validation**: Must contain "test" and "assert"
|
||
|
|
|
||
|
|
**Usage**:
|
||
|
|
```bash
|
||
|
|
curl -X POST http://localhost:8765/agents/test-generator/execute \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{
|
||
|
|
"language": "python",
|
||
|
|
"function_code": "def factorial(n):\\n return 1 if n == 0 else n * factorial(n-1)"
|
||
|
|
}'
|
||
|
|
```
|
||
|
|
|
||
|
|
### 6. doc-generator.agent.mdx
|
||
|
|
**Purpose**: Generate technical documentation
|
||
|
|
**Inputs**: `code` (String), `language` (String)
|
||
|
|
**LLM**: Claude 3.5 Sonnet
|
||
|
|
|
||
|
|
**Usage**:
|
||
|
|
```bash
|
||
|
|
curl -X POST http://localhost:8765/agents/doc-generator/execute \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{
|
||
|
|
"language": "javascript",
|
||
|
|
"code": "function debounce(fn, delay) { ... }"
|
||
|
|
}'
|
||
|
|
```
|
||
|
|
|
||
|
|
### 7. translator.agent.mdx
|
||
|
|
**Purpose**: Language translation
|
||
|
|
**Inputs**: `text` (String), `source_lang` (String), `target_lang` (String)
|
||
|
|
**LLM**: Claude 3.5 Sonnet
|
||
|
|
|
||
|
|
**Usage**:
|
||
|
|
```bash
|
||
|
|
curl -X POST http://localhost:8765/agents/translator/execute \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{
|
||
|
|
"text": "Hello, how are you?",
|
||
|
|
"source_lang": "English",
|
||
|
|
"target_lang": "Spanish"
|
||
|
|
}'
|
||
|
|
```
|
||
|
|
|
||
|
|
### 8. debugger.agent.mdx
|
||
|
|
**Purpose**: Debug code issues
|
||
|
|
**Inputs**: `code` (String), `error` (String), `language` (String)
|
||
|
|
**LLM**: Claude Opus 4.5
|
||
|
|
**Validation**: Must contain "## Root Cause" and "## Fix"
|
||
|
|
|
||
|
|
**Usage**:
|
||
|
|
```bash
|
||
|
|
curl -X POST http://localhost:8765/agents/debugger/execute \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{
|
||
|
|
"language": "rust",
|
||
|
|
"code": "let x = vec![1,2,3]; println!(\"{}\", x[5]);",
|
||
|
|
"error": "index out of bounds: the len is 3 but the index is 5"
|
||
|
|
}'
|
||
|
|
```
|
||
|
|
|
||
|
|
### 9. refactor.agent.mdx
|
||
|
|
**Purpose**: Code refactoring
|
||
|
|
**Inputs**: `code` (String), `language` (String), `goal?` (String, optional)
|
||
|
|
**LLM**: Claude Opus 4.5
|
||
|
|
**Validation**: Must contain "## Refactored Code" and "## Changes"
|
||
|
|
|
||
|
|
**Usage**:
|
||
|
|
```bash
|
||
|
|
curl -X POST http://localhost:8765/agents/refactor/execute \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{
|
||
|
|
"language": "typescript",
|
||
|
|
"code": "function calc(a,b,op){if(op==='+')return a+b;if(op==='-')return a-b;}",
|
||
|
|
"goal": "Improve readability and type safety"
|
||
|
|
}'
|
||
|
|
```
|
||
|
|
|
||
|
|
## Features Demonstrated
|
||
|
|
|
||
|
|
### Input Types
|
||
|
|
- **Required inputs**: `name`, `code`, `language`
|
||
|
|
- **Optional inputs**: `style?`, `tech_stack?`, `goal?`
|
||
|
|
|
||
|
|
### LLM Models
|
||
|
|
- **Claude 3.5 Haiku**: Fast, cost-effective (greeting)
|
||
|
|
- **Claude 3.5 Sonnet**: Balanced performance (summarizer, test-generator, doc-generator, translator)
|
||
|
|
- **Claude Opus 4.5**: Maximum capability (code-reviewer, architect, debugger, refactor)
|
||
|
|
|
||
|
|
### Validation Rules
|
||
|
|
- **must_contain**: Ensure specific sections in output
|
||
|
|
- **format**: Enforce output format (markdown, text)
|
||
|
|
- **min_length/max_length**: Control output size
|
||
|
|
|
||
|
|
### Temperature Settings
|
||
|
|
- **0.3**: Deterministic, factual (code review, debugging, translation)
|
||
|
|
- **0.4-0.5**: Balanced creativity (architecture, refactoring)
|
||
|
|
- **0.8**: More creative (greeting)
|
||
|
|
|
||
|
|
### Max Tokens
|
||
|
|
- **150**: Short responses (greeting)
|
||
|
|
- **500-1000**: Medium responses (summarizer, translator)
|
||
|
|
- **2000-3000**: Detailed responses (code review, documentation)
|
||
|
|
- **4000**: Comprehensive responses (architecture)
|
||
|
|
|
||
|
|
## Testing Agents
|
||
|
|
|
||
|
|
### CLI Testing
|
||
|
|
```bash
|
||
|
|
# Validate agent
|
||
|
|
typedialog-ag validate agents/greeting.agent.mdx
|
||
|
|
|
||
|
|
# Transpile to Nickel
|
||
|
|
typedialog-ag transpile agents/greeting.agent.mdx
|
||
|
|
|
||
|
|
# Execute (interactive)
|
||
|
|
typedialog-ag agents/greeting.agent.mdx
|
||
|
|
```
|
||
|
|
|
||
|
|
### HTTP Server Testing
|
||
|
|
```bash
|
||
|
|
# Start server
|
||
|
|
typedialog-ag serve --port 8765
|
||
|
|
|
||
|
|
# Test health
|
||
|
|
curl http://localhost:8765/health
|
||
|
|
|
||
|
|
# Validate agent
|
||
|
|
curl -X POST http://localhost:8765/validate \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{"agent_file":"agents/greeting.agent.mdx"}'
|
||
|
|
|
||
|
|
# Execute agent
|
||
|
|
curl -X POST http://localhost:8765/agents/greeting/execute \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{"name":"World"}'
|
||
|
|
```
|
||
|
|
|
||
|
|
## Best Practices
|
||
|
|
|
||
|
|
1. **Clear Role**: Define specific role in `@agent` directive
|
||
|
|
2. **Type Inputs**: Declare input types explicitly
|
||
|
|
3. **Validate Output**: Use `@validate` to ensure quality
|
||
|
|
4. **Right Model**: Choose LLM based on task complexity
|
||
|
|
5. **Temperature**: Lower for factual, higher for creative
|
||
|
|
6. **Token Limits**: Set appropriate max_tokens for task
|
||
|
|
7. **Prompts**: Be specific and provide clear instructions
|
||
|
|
8. **Examples**: Include examples in prompt when helpful
|
||
|
|
|
||
|
|
## Environment Variables
|
||
|
|
|
||
|
|
Ensure you have API keys configured:
|
||
|
|
```bash
|
||
|
|
export ANTHROPIC_API_KEY=sk-ant-...
|
||
|
|
export OPENAI_API_KEY=sk-... # If using OpenAI models
|
||
|
|
```
|
||
|
|
|
||
|
|
## Cache
|
||
|
|
|
||
|
|
The system automatically caches transpiled Nickel code:
|
||
|
|
```bash
|
||
|
|
# Check cache stats
|
||
|
|
typedialog-ag cache stats
|
||
|
|
|
||
|
|
# Clear cache
|
||
|
|
typedialog-ag cache clear
|
||
|
|
```
|
||
|
|
|
||
|
|
Cache location: `~/.typeagent/cache/`
|