5.3 KiB
5.3 KiB
Qwen Provider Setup Guide
Overview
QwenClaw uses Qwen as the default AI provider. This guide shows you how to configure and use Qwen with the Rig service.
Quick Start
1. Get Your Qwen API Key
- Visit: https://platform.qwen.ai/
- Sign up or log in
- Go to API Keys section
- Click Create New API Key
- Copy your key (starts with
sk-...)
2. Configure Rig Service
Create .env file in rig-service/:
cd rig-service
cp .env.example .env
Edit .env:
# Qwen API Configuration (REQUIRED)
QWEN_API_KEY=sk-your-actual-key-here
QWEN_BASE_URL=https://api.qwen.ai/v1
# Defaults (Qwen is default for QwenClaw)
RIG_DEFAULT_PROVIDER=qwen
RIG_DEFAULT_MODEL=qwen-plus
# Server settings
RIG_HOST=127.0.0.1
RIG_PORT=8080
3. Start Rig Service
# Build
cargo build --release
# Start
cargo run --release
4. Verify Connection
curl http://127.0.0.1:8080/health
# Should return: {"status":"ok","service":"qwenclaw-rig"}
Available Qwen Models
| Model | Description | Use Case |
|---|---|---|
qwen-plus |
Default - Balanced performance | General tasks |
qwen-max |
Most powerful | Complex reasoning |
qwen-turbo |
Fastest, cheapest | Simple tasks |
qwen-long |
Long context (256K) | Document analysis |
Using Qwen with Rig
TypeScript Client
import { initRigClient } from "./src/rig";
const rig = initRigClient();
// Create agent with Qwen
const sessionId = await rig.createAgent({
name: "assistant",
preamble: "You are a helpful assistant.",
provider: "qwen", // Use Qwen
model: "qwen-plus", // Qwen model
});
// Execute prompt
const result = await rig.executePrompt(sessionId, "Hello!");
console.log(result);
HTTP API
# Create agent with Qwen
curl -X POST http://127.0.0.1:8080/api/agents \
-H "Content-Type: application/json" \
-d '{
"name": "assistant",
"preamble": "You are helpful.",
"provider": "qwen",
"model": "qwen-plus"
}'
# Execute prompt
curl -X POST http://127.0.0.1:8080/api/agents/{SESSION_ID}/prompt \
-H "Content-Type: application/json" \
-d '{"prompt": "Hello!"}'
Multi-Agent Council with Qwen
const councilId = await rig.createCouncil("Research Team", [
{
name: "researcher",
preamble: "You research thoroughly.",
provider: "qwen",
model: "qwen-max", // Use most powerful for research
},
{
name: "writer",
preamble: "You write clearly.",
provider: "qwen",
model: "qwen-plus", // Balanced for writing
},
]);
const result = await rig.executeCouncil(councilId, "Write a report");
Alternative Providers
OpenAI (Fallback)
# In rig-service/.env
OPENAI_API_KEY=sk-...
RIG_DEFAULT_PROVIDER=openai
RIG_DEFAULT_MODEL=gpt-4o
Anthropic Claude
# In rig-service/.env
ANTHROPIC_API_KEY=sk-ant-...
RIG_DEFAULT_PROVIDER=anthropic
RIG_DEFAULT_MODEL=claude-3-5-sonnet
Ollama (Local)
# In rig-service/.env
RIG_DEFAULT_PROVIDER=ollama
RIG_DEFAULT_MODEL=qwen2.5:7b
# No API key needed - runs locally
Troubleshooting
"QWEN_API_KEY not set"
Error:
Error: QWEN_API_KEY not set. Get it from https://platform.qwen.ai
Solution:
- Get API key from https://platform.qwen.ai
- Add to
rig-service/.env:QWEN_API_KEY=sk-your-key - Restart Rig service
"Invalid API key"
Error:
Rig prompt execution failed: Invalid API key
Solution:
- Verify API key is correct (no extra spaces)
- Check key is active in Qwen dashboard
- Ensure sufficient credits/quota
Connection Timeout
Error:
Failed to connect to Qwen API
Solution:
- Check internet connection
- Verify
QWEN_BASE_URLis correct - Try alternative:
https://api.qwen.ai/v1
Cost Optimization
Use Appropriate Models
| Task | Recommended Model | Cost |
|---|---|---|
| Simple Q&A | qwen-turbo |
$ |
| General tasks | qwen-plus |
$$ |
| Complex reasoning | qwen-max |
$$$ |
| Long documents | qwen-long |
$$ |
Example: Task-Based Routing
// Simple task - use turbo
const simpleAgent = await rig.createAgent({
name: "quick",
model: "qwen-turbo",
});
// Complex task - use max
const complexAgent = await rig.createAgent({
name: "analyst",
model: "qwen-max",
});
API Reference
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
QWEN_API_KEY |
✅ For Qwen | - | Your Qwen API key |
QWEN_BASE_URL |
❌ | https://api.qwen.ai/v1 |
API endpoint |
RIG_DEFAULT_PROVIDER |
❌ | qwen |
Default provider |
RIG_DEFAULT_MODEL |
❌ | qwen-plus |
Default model |
Provider Values
| Value | Provider | Models |
|---|---|---|
qwen |
Qwen | qwen-plus, qwen-max, qwen-turbo |
openai |
OpenAI | gpt-4o, gpt-4, gpt-3.5 |
anthropic |
Anthropic | claude-3-5-sonnet, claude-3 |
ollama |
Ollama | Any local model |
Resources
- Qwen Platform: https://platform.qwen.ai/
- Qwen Docs: https://help.qwen.ai/
- Pricing: https://qwen.ai/pricing
- Rig Integration:
docs/RIG-INTEGRATION.md
Support
Issues? Check:
docs/RIG-STATUS.md- Known issues- Rig service logs:
cargo run --release --verbose - Qwen status: https://status.qwen.ai/