crewx 0.2.4-dev.6 → 0.2.4-dev.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -37
- package/dist/cli/templates.handler.js +1 -1
- package/dist/cli-options.d.ts +1 -0
- package/dist/cli-options.js +6 -0
- package/dist/cli-options.js.map +1 -1
- package/dist/conversation/conversation-storage.service.d.ts +1 -0
- package/dist/conversation/conversation-storage.service.js +73 -35
- package/dist/conversation/conversation-storage.service.js.map +1 -1
- package/dist/conversation/slack-conversation-history.provider.js +1 -1
- package/dist/conversation/slack-conversation-history.provider.js.map +1 -1
- package/dist/main.js +3 -1
- package/dist/main.js.map +1 -1
- package/dist/providers/base-ai.provider.d.ts +1 -0
- package/dist/providers/base-ai.provider.js +5 -2
- package/dist/providers/base-ai.provider.js.map +1 -1
- package/dist/providers/dynamic-provider.factory.d.ts +2 -0
- package/dist/providers/dynamic-provider.factory.js +27 -0
- package/dist/providers/dynamic-provider.factory.js.map +1 -1
- package/dist/services/help.service.js +2 -1
- package/dist/services/help.service.js.map +1 -1
- package/dist/slack/formatters/message.formatter.js +1 -1
- package/dist/slack/formatters/message.formatter.js.map +1 -1
- package/dist/slack/slack-bot.d.ts +2 -1
- package/dist/slack/slack-bot.js +19 -5
- package/dist/slack/slack-bot.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/cli-guide.md +153 -18
- package/docs/diagram1.svg +1 -0
- package/docs/remote-agents.md +555 -0
- package/package.json +1 -1
- package/docs/guides/agent-cli-quickstart.md +0 -41
|
@@ -0,0 +1,555 @@
|
|
|
1
|
+
# Remote Agents
|
|
2
|
+
|
|
3
|
+
Connect CrewX to other CrewX instances for distributed collaboration and resource sharing.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Remote agents allow you to:
|
|
8
|
+
- **Delegate tasks** to CrewX instances running in different projects
|
|
9
|
+
- **Share resources** across teams and servers
|
|
10
|
+
- **Isolate contexts** for different codebases
|
|
11
|
+
- **Scale workloads** by distributing to remote servers
|
|
12
|
+
|
|
13
|
+
## Quick Start
|
|
14
|
+
|
|
15
|
+
### 1. Start a Remote MCP Server
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Start CrewX as an MCP server with HTTP and authentication
|
|
19
|
+
crewx mcp server --http --host localhost --port 9001 --key "sk-secret-key" --log
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Options:**
|
|
23
|
+
- `--http` - Enable HTTP transport (in addition to stdio)
|
|
24
|
+
- `--host` - Server hostname (default: localhost)
|
|
25
|
+
- `--port` - Server port (default: 3000)
|
|
26
|
+
- `--key` - API key for bearer authentication
|
|
27
|
+
- `--log` - Enable request logging
|
|
28
|
+
|
|
29
|
+
### 2. Configure Remote Provider
|
|
30
|
+
|
|
31
|
+
Add to your local `crewx.yaml`:
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
providers:
|
|
35
|
+
- id: remote_server
|
|
36
|
+
type: remote
|
|
37
|
+
location: "http://localhost:9001"
|
|
38
|
+
external_agent_id: "backend_team"
|
|
39
|
+
display_name: "Backend Server"
|
|
40
|
+
description: "Remote CrewX instance for backend tasks"
|
|
41
|
+
auth:
|
|
42
|
+
type: bearer
|
|
43
|
+
token: "sk-secret-key"
|
|
44
|
+
timeout:
|
|
45
|
+
query: 300000 # 5 minutes
|
|
46
|
+
execute: 600000 # 10 minutes
|
|
47
|
+
|
|
48
|
+
agents:
|
|
49
|
+
- id: "remote_backend"
|
|
50
|
+
name: "Backend Team"
|
|
51
|
+
provider: "remote/remote_server"
|
|
52
|
+
description: "Backend development team on remote server"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 3. Use Remote Agent
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Query remote agent
|
|
59
|
+
crewx query "@remote_backend check API status"
|
|
60
|
+
|
|
61
|
+
# Execute tasks on remote agent
|
|
62
|
+
crewx execute "@remote_backend implement new endpoint"
|
|
63
|
+
|
|
64
|
+
# Combine with local agents
|
|
65
|
+
crewx query "@claude @remote_backend compare approaches"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Configuration
|
|
69
|
+
|
|
70
|
+
### Provider Configuration
|
|
71
|
+
|
|
72
|
+
```yaml
|
|
73
|
+
providers:
|
|
74
|
+
- id: unique_provider_id
|
|
75
|
+
type: remote
|
|
76
|
+
location: "http://hostname:port" or "file:///absolute/path/to/config.yaml"
|
|
77
|
+
external_agent_id: "target_agent_id_on_remote"
|
|
78
|
+
display_name: "Human Readable Name"
|
|
79
|
+
description: "Provider description"
|
|
80
|
+
auth: # Optional
|
|
81
|
+
type: bearer
|
|
82
|
+
token: "your-token"
|
|
83
|
+
headers: # Optional custom headers
|
|
84
|
+
"User-Agent": "CrewX/1.0"
|
|
85
|
+
"X-Client-ID": "client-123"
|
|
86
|
+
timeout:
|
|
87
|
+
query: 300000 # Milliseconds (default: 5 min)
|
|
88
|
+
execute: 600000 # Milliseconds (default: 10 min)
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Agent Configuration
|
|
92
|
+
|
|
93
|
+
```yaml
|
|
94
|
+
agents:
|
|
95
|
+
- id: "local_agent_id"
|
|
96
|
+
name: "Display Name"
|
|
97
|
+
provider: "remote/provider_id"
|
|
98
|
+
description: "Agent description"
|
|
99
|
+
working_directory: "/path/to/workdir" # Optional
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Connection Types
|
|
103
|
+
|
|
104
|
+
### HTTP-based Remote Server
|
|
105
|
+
|
|
106
|
+
Most common for network-based remote connections.
|
|
107
|
+
|
|
108
|
+
**Remote server setup:**
|
|
109
|
+
```bash
|
|
110
|
+
# On the remote server (192.168.1.100)
|
|
111
|
+
cd /path/to/project
|
|
112
|
+
crewx mcp server --http --host 0.0.0.0 --port 3000 --key "production-key"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Local configuration:**
|
|
116
|
+
```yaml
|
|
117
|
+
providers:
|
|
118
|
+
- id: production_server
|
|
119
|
+
type: remote
|
|
120
|
+
location: "http://192.168.1.100:3000"
|
|
121
|
+
external_agent_id: "prod_backend"
|
|
122
|
+
auth:
|
|
123
|
+
type: bearer
|
|
124
|
+
token: "production-key"
|
|
125
|
+
timeout:
|
|
126
|
+
query: 180000
|
|
127
|
+
execute: 600000
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### File-based Local Remote
|
|
131
|
+
|
|
132
|
+
Access another local CrewX configuration without starting a server.
|
|
133
|
+
|
|
134
|
+
**Use case:** Multi-project coordination on the same machine.
|
|
135
|
+
|
|
136
|
+
```yaml
|
|
137
|
+
providers:
|
|
138
|
+
- id: other_project
|
|
139
|
+
type: remote
|
|
140
|
+
location: "file:///Users/username/projects/other-project/crewx.yaml"
|
|
141
|
+
external_agent_id: "specialist_agent"
|
|
142
|
+
timeout:
|
|
143
|
+
query: 300000
|
|
144
|
+
execute: 600000
|
|
145
|
+
|
|
146
|
+
agents:
|
|
147
|
+
- id: "other_project_team"
|
|
148
|
+
provider: "remote/other_project"
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**Example usage:**
|
|
152
|
+
```bash
|
|
153
|
+
# Current project: main application
|
|
154
|
+
# Remote project: data processing pipeline
|
|
155
|
+
|
|
156
|
+
crewx execute "@other_project_team process new dataset"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Use Cases
|
|
160
|
+
|
|
161
|
+
### Multi-Project Coordination
|
|
162
|
+
|
|
163
|
+
Coordinate work across multiple repositories:
|
|
164
|
+
|
|
165
|
+
```yaml
|
|
166
|
+
# In main project's crewx.yaml
|
|
167
|
+
providers:
|
|
168
|
+
- id: frontend_project
|
|
169
|
+
type: remote
|
|
170
|
+
location: "file:///workspace/frontend-app/crewx.yaml"
|
|
171
|
+
external_agent_id: "react_specialist"
|
|
172
|
+
|
|
173
|
+
- id: backend_project
|
|
174
|
+
type: remote
|
|
175
|
+
location: "file:///workspace/backend-api/crewx.yaml"
|
|
176
|
+
external_agent_id: "api_specialist"
|
|
177
|
+
|
|
178
|
+
agents:
|
|
179
|
+
- id: "frontend_team"
|
|
180
|
+
provider: "remote/frontend_project"
|
|
181
|
+
|
|
182
|
+
- id: "backend_team"
|
|
183
|
+
provider: "remote/backend_project"
|
|
184
|
+
|
|
185
|
+
- id: "coordinator"
|
|
186
|
+
provider: "cli/claude"
|
|
187
|
+
inline:
|
|
188
|
+
system_prompt: |
|
|
189
|
+
You coordinate between frontend and backend teams.
|
|
190
|
+
Use @frontend_team for React/UI tasks.
|
|
191
|
+
Use @backend_team for API/database tasks.
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Usage:**
|
|
195
|
+
```bash
|
|
196
|
+
# Coordinate full-stack feature
|
|
197
|
+
crewx query "@coordinator plan user authentication feature"
|
|
198
|
+
crewx execute "@frontend_team create login UI" "@backend_team create auth API"
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Distributed Team Setup
|
|
202
|
+
|
|
203
|
+
Each team member runs their own CrewX with specialized configurations:
|
|
204
|
+
|
|
205
|
+
**Team Lead's configuration:**
|
|
206
|
+
```yaml
|
|
207
|
+
providers:
|
|
208
|
+
- id: alice_workstation
|
|
209
|
+
type: remote
|
|
210
|
+
location: "http://alice.local:3000"
|
|
211
|
+
external_agent_id: "alice_specialist"
|
|
212
|
+
auth:
|
|
213
|
+
type: bearer
|
|
214
|
+
token: "alice-key"
|
|
215
|
+
|
|
216
|
+
- id: bob_workstation
|
|
217
|
+
type: remote
|
|
218
|
+
location: "http://bob.local:3000"
|
|
219
|
+
external_agent_id: "bob_specialist"
|
|
220
|
+
auth:
|
|
221
|
+
type: bearer
|
|
222
|
+
token: "bob-key"
|
|
223
|
+
|
|
224
|
+
agents:
|
|
225
|
+
- id: "alice"
|
|
226
|
+
provider: "remote/alice_workstation"
|
|
227
|
+
description: "Alice's specialized AI setup (ML focus)"
|
|
228
|
+
|
|
229
|
+
- id: "bob"
|
|
230
|
+
provider: "remote/bob_workstation"
|
|
231
|
+
description: "Bob's specialized AI setup (DevOps focus)"
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Resource Sharing
|
|
235
|
+
|
|
236
|
+
Access powerful compute resources from lightweight clients:
|
|
237
|
+
|
|
238
|
+
```yaml
|
|
239
|
+
# Laptop configuration
|
|
240
|
+
providers:
|
|
241
|
+
- id: gpu_server
|
|
242
|
+
type: remote
|
|
243
|
+
location: "http://gpu-server.company.com:3000"
|
|
244
|
+
external_agent_id: "ml_trainer"
|
|
245
|
+
auth:
|
|
246
|
+
type: bearer
|
|
247
|
+
token: "${ML_SERVER_TOKEN}" # Use environment variable
|
|
248
|
+
timeout:
|
|
249
|
+
query: 600000 # 10 min for ML tasks
|
|
250
|
+
execute: 1800000 # 30 min for training
|
|
251
|
+
|
|
252
|
+
agents:
|
|
253
|
+
- id: "ml_server"
|
|
254
|
+
provider: "remote/gpu_server"
|
|
255
|
+
description: "High-performance ML agent on GPU server"
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
## Environment Variables
|
|
259
|
+
|
|
260
|
+
Use environment variables for sensitive configuration:
|
|
261
|
+
|
|
262
|
+
```yaml
|
|
263
|
+
providers:
|
|
264
|
+
- id: prod_server
|
|
265
|
+
type: remote
|
|
266
|
+
location: "${CREWX_REMOTE_URL}"
|
|
267
|
+
external_agent_id: "${CREWX_REMOTE_AGENT}"
|
|
268
|
+
auth:
|
|
269
|
+
type: bearer
|
|
270
|
+
token: "${CREWX_REMOTE_TOKEN}"
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
**.env file:**
|
|
274
|
+
```bash
|
|
275
|
+
CREWX_REMOTE_URL=http://production.example.com:3000
|
|
276
|
+
CREWX_REMOTE_AGENT=backend_prod
|
|
277
|
+
CREWX_REMOTE_TOKEN=sk-prod-secret-key
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
## Authentication
|
|
281
|
+
|
|
282
|
+
### Bearer Token Authentication
|
|
283
|
+
|
|
284
|
+
Most common method for HTTP remote servers.
|
|
285
|
+
|
|
286
|
+
**Server side:**
|
|
287
|
+
```bash
|
|
288
|
+
crewx mcp server --http --port 3000 --key "sk-production-key-123"
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**Client side:**
|
|
292
|
+
```yaml
|
|
293
|
+
providers:
|
|
294
|
+
- id: secure_server
|
|
295
|
+
type: remote
|
|
296
|
+
location: "http://server:3000"
|
|
297
|
+
external_agent_id: "agent"
|
|
298
|
+
auth:
|
|
299
|
+
type: bearer
|
|
300
|
+
token: "sk-production-key-123"
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
The token is sent as: `Authorization: Bearer sk-production-key-123`
|
|
304
|
+
|
|
305
|
+
### Custom Headers
|
|
306
|
+
|
|
307
|
+
Add additional headers for advanced authentication or routing:
|
|
308
|
+
|
|
309
|
+
```yaml
|
|
310
|
+
providers:
|
|
311
|
+
- id: enterprise_server
|
|
312
|
+
type: remote
|
|
313
|
+
location: "http://api.company.com:3000"
|
|
314
|
+
external_agent_id: "agent"
|
|
315
|
+
auth:
|
|
316
|
+
type: bearer
|
|
317
|
+
token: "jwt-token-here"
|
|
318
|
+
headers:
|
|
319
|
+
"X-Tenant-ID": "company-123"
|
|
320
|
+
"X-Environment": "production"
|
|
321
|
+
"User-Agent": "CrewX/1.0"
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
## Timeouts
|
|
325
|
+
|
|
326
|
+
Configure appropriate timeouts based on task complexity and network conditions:
|
|
327
|
+
|
|
328
|
+
```yaml
|
|
329
|
+
providers:
|
|
330
|
+
- id: slow_network
|
|
331
|
+
type: remote
|
|
332
|
+
location: "http://remote:3000"
|
|
333
|
+
external_agent_id: "agent"
|
|
334
|
+
timeout:
|
|
335
|
+
query: 600000 # 10 minutes (slow network + complex query)
|
|
336
|
+
execute: 1800000 # 30 minutes (network + file operations)
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
**Recommended timeouts:**
|
|
340
|
+
- **Local network**: query 60-120s, execute 180-300s
|
|
341
|
+
- **Internet**: query 180-300s, execute 600-900s
|
|
342
|
+
- **Complex tasks**: query 300-600s, execute 900-1800s
|
|
343
|
+
|
|
344
|
+
## Limitations
|
|
345
|
+
|
|
346
|
+
### Current Limitations
|
|
347
|
+
|
|
348
|
+
1. **Stateless calls**
|
|
349
|
+
- `--thread` conversation history is NOT forwarded to remote server
|
|
350
|
+
- Each remote call is independent
|
|
351
|
+
- Solution: Use remote server's own thread management
|
|
352
|
+
|
|
353
|
+
2. **MCP tool requirements**
|
|
354
|
+
- Remote server must expose `crewx_queryAgent` and `crewx_executeAgent` tools
|
|
355
|
+
- Standard CrewX MCP server includes these automatically
|
|
356
|
+
|
|
357
|
+
3. **Network considerations**
|
|
358
|
+
- Higher latency than local agents
|
|
359
|
+
- Configure timeouts appropriately
|
|
360
|
+
- Consider task granularity
|
|
361
|
+
|
|
362
|
+
### Workarounds
|
|
363
|
+
|
|
364
|
+
**For conversation continuity:**
|
|
365
|
+
```bash
|
|
366
|
+
# Don't use --thread across remote boundaries
|
|
367
|
+
# Instead, use remote server's thread locally
|
|
368
|
+
|
|
369
|
+
# On remote server
|
|
370
|
+
crewx query "@agent design API" --thread "project"
|
|
371
|
+
crewx execute "@agent implement it" --thread "project"
|
|
372
|
+
|
|
373
|
+
# From client (each call is independent)
|
|
374
|
+
crewx query "@remote_agent task description with full context"
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
**For long-running tasks:**
|
|
378
|
+
```yaml
|
|
379
|
+
# Increase timeout for complex operations
|
|
380
|
+
providers:
|
|
381
|
+
- id: slow_tasks
|
|
382
|
+
type: remote
|
|
383
|
+
location: "http://server:3000"
|
|
384
|
+
external_agent_id: "agent"
|
|
385
|
+
timeout:
|
|
386
|
+
execute: 3600000 # 1 hour
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
## Troubleshooting
|
|
390
|
+
|
|
391
|
+
### Connection Issues
|
|
392
|
+
|
|
393
|
+
**Problem:** Cannot connect to remote server
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
# Test network connectivity
|
|
397
|
+
curl http://remote-host:3000/health
|
|
398
|
+
|
|
399
|
+
# Check server logs
|
|
400
|
+
crewx mcp server --http --port 3000 --log
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
**Solution:**
|
|
404
|
+
- Verify server is running: `crewx mcp server --http`
|
|
405
|
+
- Check firewall rules
|
|
406
|
+
- Verify hostname/port in configuration
|
|
407
|
+
- Test with curl first
|
|
408
|
+
|
|
409
|
+
### Authentication Failures
|
|
410
|
+
|
|
411
|
+
**Problem:** 401 Unauthorized
|
|
412
|
+
|
|
413
|
+
**Solution:**
|
|
414
|
+
- Verify token matches between client and server
|
|
415
|
+
- Check token is correctly set in config
|
|
416
|
+
- Ensure `auth.type` is set to `bearer`
|
|
417
|
+
|
|
418
|
+
### Timeout Errors
|
|
419
|
+
|
|
420
|
+
**Problem:** Task times out
|
|
421
|
+
|
|
422
|
+
**Solution:**
|
|
423
|
+
- Increase timeout values in provider config
|
|
424
|
+
- Check network latency: `ping remote-host`
|
|
425
|
+
- Split large tasks into smaller chunks
|
|
426
|
+
|
|
427
|
+
### Agent Not Found
|
|
428
|
+
|
|
429
|
+
**Problem:** Remote agent ID doesn't exist
|
|
430
|
+
|
|
431
|
+
**Solution:**
|
|
432
|
+
- List available agents on remote: `crewx mcp server --list`
|
|
433
|
+
- Verify `external_agent_id` matches remote agent ID
|
|
434
|
+
- Check remote server's `crewx.yaml` configuration
|
|
435
|
+
|
|
436
|
+
## Best Practices
|
|
437
|
+
|
|
438
|
+
1. **Security**
|
|
439
|
+
- Use strong API keys (min 16 characters)
|
|
440
|
+
- Store tokens in environment variables, not in config files
|
|
441
|
+
- Use HTTPS for remote connections in production
|
|
442
|
+
- Rotate tokens regularly
|
|
443
|
+
|
|
444
|
+
2. **Performance**
|
|
445
|
+
- Use remote agents for specialized tasks, not everything
|
|
446
|
+
- Consider network latency in workflow design
|
|
447
|
+
- Set realistic timeouts
|
|
448
|
+
- Monitor remote server resource usage
|
|
449
|
+
|
|
450
|
+
3. **Organization**
|
|
451
|
+
- Use clear, descriptive agent IDs
|
|
452
|
+
- Document what each remote agent does
|
|
453
|
+
- Version control your remote configurations
|
|
454
|
+
- Keep remote server configs synchronized
|
|
455
|
+
|
|
456
|
+
4. **Reliability**
|
|
457
|
+
- Implement health checks
|
|
458
|
+
- Have fallback local agents
|
|
459
|
+
- Log remote calls for debugging
|
|
460
|
+
- Monitor remote server availability
|
|
461
|
+
|
|
462
|
+
## Examples
|
|
463
|
+
|
|
464
|
+
### Example 1: Development → Staging → Production
|
|
465
|
+
|
|
466
|
+
```yaml
|
|
467
|
+
# development.crewx.yaml
|
|
468
|
+
providers:
|
|
469
|
+
- id: staging_server
|
|
470
|
+
type: remote
|
|
471
|
+
location: "http://staging.company.com:3000"
|
|
472
|
+
external_agent_id: "staging_tester"
|
|
473
|
+
auth:
|
|
474
|
+
type: bearer
|
|
475
|
+
token: "${STAGING_TOKEN}"
|
|
476
|
+
|
|
477
|
+
- id: prod_server
|
|
478
|
+
type: remote
|
|
479
|
+
location: "http://prod.company.com:3000"
|
|
480
|
+
external_agent_id: "prod_deployer"
|
|
481
|
+
auth:
|
|
482
|
+
type: bearer
|
|
483
|
+
token: "${PROD_TOKEN}"
|
|
484
|
+
|
|
485
|
+
agents:
|
|
486
|
+
- id: "dev_agent"
|
|
487
|
+
provider: "cli/claude"
|
|
488
|
+
working_directory: "./src"
|
|
489
|
+
|
|
490
|
+
- id: "staging_agent"
|
|
491
|
+
provider: "remote/staging_server"
|
|
492
|
+
|
|
493
|
+
- id: "prod_agent"
|
|
494
|
+
provider: "remote/prod_server"
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
**Workflow:**
|
|
498
|
+
```bash
|
|
499
|
+
# Develop locally
|
|
500
|
+
crewx execute "@dev_agent implement feature"
|
|
501
|
+
|
|
502
|
+
# Test on staging
|
|
503
|
+
crewx query "@staging_agent run integration tests"
|
|
504
|
+
|
|
505
|
+
# Deploy to production
|
|
506
|
+
crewx execute "@prod_agent deploy version 1.2.3"
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
### Example 2: Specialized Domain Experts
|
|
510
|
+
|
|
511
|
+
```yaml
|
|
512
|
+
providers:
|
|
513
|
+
- id: ml_server
|
|
514
|
+
type: remote
|
|
515
|
+
location: "http://ml-gpu.local:3000"
|
|
516
|
+
external_agent_id: "ml_expert"
|
|
517
|
+
|
|
518
|
+
- id: security_server
|
|
519
|
+
type: remote
|
|
520
|
+
location: "http://security.local:3000"
|
|
521
|
+
external_agent_id: "security_expert"
|
|
522
|
+
|
|
523
|
+
agents:
|
|
524
|
+
- id: "ml_specialist"
|
|
525
|
+
provider: "remote/ml_server"
|
|
526
|
+
description: "ML/AI expert with GPU access"
|
|
527
|
+
|
|
528
|
+
- id: "security_specialist"
|
|
529
|
+
provider: "remote/security_server"
|
|
530
|
+
description: "Security analysis expert"
|
|
531
|
+
|
|
532
|
+
- id: "architect"
|
|
533
|
+
provider: "cli/claude"
|
|
534
|
+
inline:
|
|
535
|
+
system_prompt: |
|
|
536
|
+
You're the system architect. Coordinate with specialists:
|
|
537
|
+
- @ml_specialist for ML/AI questions
|
|
538
|
+
- @security_specialist for security reviews
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
**Usage:**
|
|
542
|
+
```bash
|
|
543
|
+
# Architect coordinates specialists
|
|
544
|
+
crewx query "@architect design user recommendation system"
|
|
545
|
+
# → Architect consults @ml_specialist for ML design
|
|
546
|
+
|
|
547
|
+
crewx query "@architect review authentication code"
|
|
548
|
+
# → Architect consults @security_specialist for security review
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
## See Also
|
|
552
|
+
|
|
553
|
+
- [Agent Configuration](./agent-configuration.md) - General agent setup
|
|
554
|
+
- [MCP Integration](./mcp-integration.md) - MCP server configuration
|
|
555
|
+
- [CLI Guide](./cli-guide.md) - Command-line reference
|
package/package.json
CHANGED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# CrewX Agent CLI Quickstart
|
|
2
|
-
|
|
3
|
-
Lightweight reference for listing and inspecting CrewX agents from the CLI, including remote usage tips.
|
|
4
|
-
|
|
5
|
-
## Prerequisites
|
|
6
|
-
- CrewX CLI installed and on your `PATH`
|
|
7
|
-
- Access to a valid agent configuration (`crewx.yaml`) either locally or via environment variable
|
|
8
|
-
|
|
9
|
-
## Basic Usage
|
|
10
|
-
```bash
|
|
11
|
-
# List configured agents with formatted output
|
|
12
|
-
crewx agent ls
|
|
13
|
-
|
|
14
|
-
# JSON output (useful for scripts or remote automation)
|
|
15
|
-
crewx agent ls --raw
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
### Command Output
|
|
19
|
-
For each agent you will see:
|
|
20
|
-
- `@agent_id` (and friendly name if provided)
|
|
21
|
-
- Provider (`claude`, `gemini`, `copilot`, `remote/...`)
|
|
22
|
-
- Working directory and optional metadata (role, team, capabilities, default model)
|
|
23
|
-
- Remote connection info when applicable (`mcp-http` URL, remote agent id)
|
|
24
|
-
|
|
25
|
-
## Remote Usage (리모트 환경)
|
|
26
|
-
- Ensure the remote machine has CrewX installed and can access a `crewx.yaml`.
|
|
27
|
-
- Set `CREWX_CONFIG` to the configuration path if it is not in the working directory:
|
|
28
|
-
```bash
|
|
29
|
-
export CREWX_CONFIG=/workspace/project/crewx.yaml
|
|
30
|
-
crewx agent ls
|
|
31
|
-
```
|
|
32
|
-
- When running over SSH or runners (e.g., GitHub Actions), use `--raw` for machine-friendly JSON:
|
|
33
|
-
```bash
|
|
34
|
-
CREWX_CONFIG=./config/crewx.yaml crewx agent ls --raw | jq '.agents[] | {id, provider}'
|
|
35
|
-
```
|
|
36
|
-
- **Thread limitation:** 현재 원격 MCP 에이전트 호출은 스레드 ID나 대화 히스토리를 전달하지 않습니다. 따라서 `--thread` 옵션으로 로컬에서 이어 쓰더라도 원격 측에서는 매번 새로운 세션으로 처리됩니다. 지속 대화가 필요하면 원격 서버 쪽에서 자체적으로 히스토리를 관리하도록 설정하거나, 쿼리에 필요한 이전 맥락을 직접 포함시키세요.
|
|
37
|
-
|
|
38
|
-
## Troubleshooting
|
|
39
|
-
- **No agents listed**: verify `CREWX_CONFIG` points to an accessible file.
|
|
40
|
-
- **Remote agent metadata missing**: confirm the remote block in `crewx.yaml` includes `type`, `url`, and optional `agent_id`.
|
|
41
|
-
- **Command not found**: rebuild or reinstall the CLI (`npm run build && npm run cli`).
|