308 lines
7.5 KiB
Markdown
308 lines
7.5 KiB
Markdown
# WeKnora Agent QA Testing Tool
|
|
|
|
An interactive command-line tool for testing and debugging WeKnora's Agent QA functionality.
|
|
|
|
## Features
|
|
|
|
- 🎯 Interactive terminal interface with colored output
|
|
- 📊 Real-time streaming of agent events
|
|
- 🔧 Display tool calls and their results
|
|
- 💭 Show agent thinking process
|
|
- 📚 Display knowledge references with scores
|
|
- 🤔 Capture agent reflections
|
|
- 📝 Track complete conversation flow
|
|
- ⏱️ Performance metrics and timing
|
|
- 🔄 Session management (create, switch, list)
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
cd client/cmd/agent_test
|
|
go build -o agent_test
|
|
```
|
|
|
|
## Usage
|
|
|
|
### Basic Usage
|
|
|
|
```bash
|
|
# Start with a new session
|
|
./agent_test -url http://localhost:8080 -kb <knowledge_base_id>
|
|
|
|
# With authentication token
|
|
./agent_test -url http://localhost:8080 -token <your_token> -kb <knowledge_base_id>
|
|
|
|
# Use existing session
|
|
./agent_test -url http://localhost:8080 -session <session_id>
|
|
```
|
|
|
|
### Command Line Flags
|
|
|
|
- `-url` : WeKnora API base URL (default: http://localhost:8080)
|
|
- `-token` : API authentication token (optional)
|
|
- `-kb` : Knowledge base ID (required for creating new sessions)
|
|
- `-session` : Existing session ID to continue conversation (optional)
|
|
|
|
### Interactive Commands
|
|
|
|
Once the tool is running, you can use these commands:
|
|
|
|
#### Session Management
|
|
|
|
- `new` - Create a new session
|
|
```
|
|
> new
|
|
```
|
|
|
|
- `sessions` - List all sessions
|
|
```
|
|
> sessions
|
|
```
|
|
|
|
- `switch <session_id>` - Switch to another session
|
|
```
|
|
> switch abc123...
|
|
```
|
|
|
|
- `info` - Show current session information
|
|
```
|
|
> info
|
|
```
|
|
|
|
#### Agent Interaction
|
|
|
|
- `ask <query>` - Ask the agent a question
|
|
```
|
|
> ask What is machine learning?
|
|
> ask How can I improve model accuracy?
|
|
> ask Explain the difference between supervised and unsupervised learning
|
|
```
|
|
|
|
#### General
|
|
|
|
- `help` - Show help message
|
|
- `exit` or `quit` - Exit the program
|
|
|
|
## Agent Events
|
|
|
|
The tool displays various agent events in real-time:
|
|
|
|
### 💭 Thinking Events
|
|
Shows the agent's internal reasoning process
|
|
```
|
|
💭 Thinking: Let me search for information about machine learning...
|
|
```
|
|
|
|
### 🔧 Tool Call Events
|
|
Displays when the agent calls a tool
|
|
```
|
|
🔧 Tool Call: search_knowledge
|
|
Arguments: {"query": "machine learning definition"}
|
|
```
|
|
|
|
### ✓ Tool Result Events
|
|
Shows the results from tool execution
|
|
```
|
|
✓ Tool Result:
|
|
Found 5 relevant knowledge chunks
|
|
```
|
|
|
|
### 📚 Knowledge References
|
|
Lists retrieved knowledge with relevance scores
|
|
```
|
|
📚 Knowledge References: Found 3 reference(s)
|
|
1. [Score: 0.875] Machine learning is a subset of artificial intelligence...
|
|
Knowledge: ML Basics (Chunk: 2)
|
|
2. [Score: 0.823] There are three main types of machine learning...
|
|
Knowledge: ML Types (Chunk: 5)
|
|
```
|
|
|
|
### 📝 Final Answer
|
|
The agent's complete response
|
|
```
|
|
📝 Final Answer:
|
|
Machine learning is an application of artificial intelligence that provides
|
|
systems the ability to automatically learn and improve from experience...
|
|
```
|
|
|
|
### 🤔 Reflection Events
|
|
Agent's self-reflection on its responses
|
|
```
|
|
🤔 Reflection: I provided a comprehensive answer covering the main aspects
|
|
of machine learning with relevant examples.
|
|
```
|
|
|
|
### Summary
|
|
At the end of each query, a summary is displayed:
|
|
```
|
|
╔═══ Summary ═══╗
|
|
Duration: 3.45s
|
|
Tool Calls: 2 (search_knowledge, format_response)
|
|
References: 3
|
|
Reflections: 1
|
|
╚═══════════════╝
|
|
```
|
|
|
|
## Example Session
|
|
|
|
```bash
|
|
$ ./agent_test -url http://localhost:8080 -kb kb_12345
|
|
|
|
╔════════════════════════════════════════════════════════════╗
|
|
║ WeKnora Agent QA Testing Tool ║
|
|
╚════════════════════════════════════════════════════════════╝
|
|
|
|
[No Session] > new
|
|
✓ Session created successfully!
|
|
Session ID: sess_abc123xyz
|
|
Knowledge Base: kb_12345
|
|
Created At: 2025-11-03T10:30:00Z
|
|
|
|
[Session: sess_abc] > ask What is neural networks?
|
|
|
|
╔═══ Agent Processing ═══╗
|
|
Query: What is neural networks?
|
|
|
|
💭 Thinking: I need to search for information about neural networks...
|
|
|
|
🔧 Tool Call: search_knowledge
|
|
Arguments: map[query:neural networks]
|
|
|
|
✓ Tool Result:
|
|
Successfully retrieved 3 relevant chunks
|
|
|
|
📚 Knowledge References: Found 3 reference(s)
|
|
1. [Score: 0.892] A neural network is a series of algorithms...
|
|
Knowledge: Deep Learning Fundamentals (Chunk: 1)
|
|
2. [Score: 0.856] Neural networks consist of layers of neurons...
|
|
Knowledge: Neural Network Architecture (Chunk: 3)
|
|
|
|
📝 Final Answer:
|
|
Neural networks are computing systems inspired by biological neural networks
|
|
that constitute animal brains. They consist of interconnected nodes (neurons)
|
|
organized in layers...
|
|
|
|
🤔 Reflection: The answer provides a clear definition with supporting
|
|
references from the knowledge base.
|
|
|
|
╔═══ Summary ═══╗
|
|
Duration: 2.87s
|
|
Tool Calls: 1 (search_knowledge)
|
|
References: 3
|
|
Reflections: 1
|
|
╚═══════════════╝
|
|
|
|
[Session: sess_abc] > info
|
|
|
|
╔═══ Session Information ═══╗
|
|
Session ID: sess_abc123xyz
|
|
Knowledge Base ID: kb_12345
|
|
Max Rounds: 10
|
|
Created At: 2025-11-03T10:30:00Z
|
|
╚═══════════════════════════╝
|
|
|
|
[Session: sess_abc] > exit
|
|
|
|
Goodbye!
|
|
```
|
|
|
|
## Testing Scenarios
|
|
|
|
### 1. Basic Q&A
|
|
Test simple question-answering with knowledge retrieval:
|
|
```
|
|
> ask What is machine learning?
|
|
```
|
|
|
|
### 2. Multi-Turn Conversation
|
|
Test context awareness:
|
|
```
|
|
> ask What is supervised learning?
|
|
> ask Can you give me some examples?
|
|
> ask How does it differ from unsupervised learning?
|
|
```
|
|
|
|
### 3. Complex Queries
|
|
Test agent's reasoning capabilities:
|
|
```
|
|
> ask Compare and contrast supervised learning and reinforcement learning, including their use cases
|
|
```
|
|
|
|
### 4. Tool Usage
|
|
Test tool calling and reflection:
|
|
```
|
|
> ask Search for information about deep learning and summarize the key concepts
|
|
```
|
|
|
|
### 5. Edge Cases
|
|
Test error handling:
|
|
```
|
|
> ask [empty query]
|
|
> ask [very long query with 1000+ characters]
|
|
```
|
|
|
|
## Debugging
|
|
|
|
The tool displays detailed information for debugging:
|
|
|
|
1. **Event Timing**: Track how long each phase takes
|
|
2. **Tool Arguments**: See exactly what parameters are passed to tools
|
|
3. **Knowledge Scores**: Evaluate retrieval quality
|
|
4. **Error Messages**: Clear error reporting for failed operations
|
|
5. **Session State**: Monitor session configuration and status
|
|
|
|
## Troubleshooting
|
|
|
|
### Connection Issues
|
|
```
|
|
✗ Request failed: connection refused
|
|
```
|
|
- Check if WeKnora server is running
|
|
- Verify the URL is correct
|
|
- Check network connectivity
|
|
|
|
### Authentication Errors
|
|
```
|
|
✗ HTTP error 401: Unauthorized
|
|
```
|
|
- Verify your API token is valid
|
|
- Check token hasn't expired
|
|
|
|
### Session Not Found
|
|
```
|
|
✗ Failed to get session info: session not found
|
|
```
|
|
- Session may have been deleted
|
|
- Create a new session with `new` command
|
|
|
|
## Advanced Usage
|
|
|
|
### Using with Different Environments
|
|
|
|
Development:
|
|
```bash
|
|
./agent_test -url http://localhost:8080 -kb kb_dev
|
|
```
|
|
|
|
Staging:
|
|
```bash
|
|
./agent_test -url https://staging.weknora.com -token $STAGING_TOKEN -kb kb_staging
|
|
```
|
|
|
|
Production:
|
|
```bash
|
|
./agent_test -url https://api.weknora.com -token $PROD_TOKEN -kb kb_prod
|
|
```
|
|
|
|
### Scripting
|
|
|
|
You can pipe commands for automated testing:
|
|
```bash
|
|
echo -e "new\nask What is AI?\nexit" | ./agent_test -url http://localhost:8080 -kb kb_test
|
|
```
|
|
|
|
## License
|
|
|
|
Copyright (c) 2025 Tencent. All rights reserved.
|
|
|