jarviscore-framework 0.1.0__py3-none-any.whl → 0.2.0__py3-none-any.whl
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.
- examples/autoagent_distributed_example.py +211 -0
- examples/custom_profile_decorator.py +134 -0
- examples/custom_profile_wrap.py +168 -0
- examples/customagent_distributed_example.py +362 -0
- examples/customagent_p2p_example.py +347 -0
- jarviscore/__init__.py +60 -15
- jarviscore/adapter/__init__.py +40 -0
- jarviscore/adapter/decorator.py +336 -0
- jarviscore/adapter/wrapper.py +303 -0
- jarviscore/cli/check.py +18 -13
- jarviscore/cli/scaffold.py +178 -0
- jarviscore/cli/smoketest.py +3 -2
- jarviscore/context/__init__.py +40 -0
- jarviscore/context/dependency.py +160 -0
- jarviscore/context/jarvis_context.py +207 -0
- jarviscore/context/memory.py +155 -0
- jarviscore/core/agent.py +44 -1
- jarviscore/core/mesh.py +196 -35
- jarviscore/data/.env.example +146 -0
- jarviscore/data/__init__.py +7 -0
- jarviscore/data/examples/autoagent_distributed_example.py +211 -0
- jarviscore/data/examples/calculator_agent_example.py +77 -0
- jarviscore/data/examples/customagent_distributed_example.py +362 -0
- jarviscore/data/examples/customagent_p2p_example.py +347 -0
- jarviscore/data/examples/multi_agent_workflow.py +132 -0
- jarviscore/data/examples/research_agent_example.py +76 -0
- jarviscore/docs/API_REFERENCE.md +264 -51
- jarviscore/docs/AUTOAGENT_GUIDE.md +198 -0
- jarviscore/docs/CONFIGURATION.md +41 -23
- jarviscore/docs/CUSTOMAGENT_GUIDE.md +415 -0
- jarviscore/docs/GETTING_STARTED.md +113 -17
- jarviscore/docs/TROUBLESHOOTING.md +155 -13
- jarviscore/docs/USER_GUIDE.md +144 -363
- jarviscore/execution/llm.py +23 -16
- jarviscore/orchestration/engine.py +20 -8
- jarviscore/p2p/__init__.py +10 -0
- jarviscore/p2p/coordinator.py +129 -0
- jarviscore/p2p/messages.py +87 -0
- jarviscore/p2p/peer_client.py +576 -0
- jarviscore/p2p/peer_tool.py +268 -0
- jarviscore_framework-0.2.0.dist-info/METADATA +143 -0
- jarviscore_framework-0.2.0.dist-info/RECORD +132 -0
- {jarviscore_framework-0.1.0.dist-info → jarviscore_framework-0.2.0.dist-info}/WHEEL +1 -1
- {jarviscore_framework-0.1.0.dist-info → jarviscore_framework-0.2.0.dist-info}/top_level.txt +1 -0
- test_logs/code_registry/functions/data_generator-558779ed_560ebc37.py +7 -0
- test_logs/code_registry/functions/data_generator-5ed3609e_560ebc37.py +7 -0
- test_logs/code_registry/functions/data_generator-66da0356_43970bb9.py +25 -0
- test_logs/code_registry/functions/data_generator-7a2fac83_583709d9.py +36 -0
- test_logs/code_registry/functions/data_generator-888b670f_aa235863.py +9 -0
- test_logs/code_registry/functions/data_generator-9ca5f642_aa235863.py +9 -0
- test_logs/code_registry/functions/data_generator-bfd90775_560ebc37.py +7 -0
- test_logs/code_registry/functions/data_generator-e95d2f7d_aa235863.py +9 -0
- test_logs/code_registry/functions/data_generator-f60ca8a2_327eb8c2.py +29 -0
- test_logs/code_registry/functions/mathematician-02adf9ee_958658d9.py +19 -0
- test_logs/code_registry/functions/mathematician-0706fb57_5df13441.py +23 -0
- test_logs/code_registry/functions/mathematician-153c9c4a_ba59c918.py +83 -0
- test_logs/code_registry/functions/mathematician-287e61c0_41daa793.py +18 -0
- test_logs/code_registry/functions/mathematician-2967af5a_863c2cc6.py +17 -0
- test_logs/code_registry/functions/mathematician-303ca6d6_5df13441.py +23 -0
- test_logs/code_registry/functions/mathematician-308a4afd_cbf5064d.py +73 -0
- test_logs/code_registry/functions/mathematician-353f16e2_0968bcf5.py +18 -0
- test_logs/code_registry/functions/mathematician-3c22475a_41daa793.py +17 -0
- test_logs/code_registry/functions/mathematician-5bac1029_0968bcf5.py +18 -0
- test_logs/code_registry/functions/mathematician-640f76b2_9198780b.py +19 -0
- test_logs/code_registry/functions/mathematician-752fa7ea_863c2cc6.py +17 -0
- test_logs/code_registry/functions/mathematician-baf9ef39_0968bcf5.py +18 -0
- test_logs/code_registry/functions/mathematician-bc8b2a2f_5df13441.py +23 -0
- test_logs/code_registry/functions/mathematician-c31e4686_41daa793.py +18 -0
- test_logs/code_registry/functions/mathematician-cc84c84c_863c2cc6.py +17 -0
- test_logs/code_registry/functions/mathematician-dd7c7144_9198780b.py +19 -0
- test_logs/code_registry/functions/mathematician-e671c256_41ea4487.py +74 -0
- test_logs/code_registry/functions/report_generator-1a878fcc_18d44bdc.py +47 -0
- test_logs/code_registry/functions/report_generator-25c1c331_cea57d0d.py +35 -0
- test_logs/code_registry/functions/report_generator-37552117_e711c2b9.py +35 -0
- test_logs/code_registry/functions/report_generator-bc662768_e711c2b9.py +35 -0
- test_logs/code_registry/functions/report_generator-d6c0e76b_5e7722ec.py +44 -0
- test_logs/code_registry/functions/report_generator-f270fb02_680529c3.py +44 -0
- test_logs/code_registry/functions/text_processor-11393b14_4370d3ed.py +40 -0
- test_logs/code_registry/functions/text_processor-7d02dfc3_d3b569be.py +37 -0
- test_logs/code_registry/functions/text_processor-8adb5e32_9168c5fe.py +13 -0
- test_logs/code_registry/functions/text_processor-c58ffc19_78b4ceac.py +42 -0
- test_logs/code_registry/functions/text_processor-cd5977b1_9168c5fe.py +13 -0
- test_logs/code_registry/functions/text_processor-ec1c8773_9168c5fe.py +13 -0
- tests/test_01_analyst_standalone.py +124 -0
- tests/test_02_assistant_standalone.py +164 -0
- tests/test_03_analyst_with_framework.py +945 -0
- tests/test_04_assistant_with_framework.py +1002 -0
- tests/test_05_integration.py +1301 -0
- tests/test_06_real_llm_integration.py +760 -0
- tests/test_07_distributed_single_node.py +578 -0
- tests/test_08_distributed_multi_node.py +454 -0
- tests/test_09_distributed_autoagent.py +509 -0
- tests/test_10_distributed_customagent.py +787 -0
- tests/test_context.py +467 -0
- tests/test_decorator.py +622 -0
- tests/test_mesh.py +35 -4
- jarviscore_framework-0.1.0.dist-info/METADATA +0 -136
- jarviscore_framework-0.1.0.dist-info/RECORD +0 -55
- {jarviscore_framework-0.1.0.dist-info → jarviscore_framework-0.2.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# JarvisCore Troubleshooting Guide
|
|
2
2
|
|
|
3
|
-
Common issues and solutions for AutoAgent
|
|
3
|
+
Common issues and solutions for AutoAgent and CustomAgent users.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -32,7 +32,7 @@ python -m jarviscore.cli.smoketest --verbose
|
|
|
32
32
|
|
|
33
33
|
**Solution:**
|
|
34
34
|
```bash
|
|
35
|
-
pip install jarviscore
|
|
35
|
+
pip install jarviscore-framework
|
|
36
36
|
|
|
37
37
|
# Or install in development mode
|
|
38
38
|
cd jarviscore
|
|
@@ -45,8 +45,8 @@ pip install -e .
|
|
|
45
45
|
|
|
46
46
|
**Solution:**
|
|
47
47
|
```bash
|
|
48
|
-
pip uninstall jarviscore
|
|
49
|
-
pip install jarviscore
|
|
48
|
+
pip uninstall jarviscore-framework
|
|
49
|
+
pip install jarviscore-framework
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
---
|
|
@@ -58,8 +58,9 @@ pip install jarviscore
|
|
|
58
58
|
**Cause:** Missing API key in `.env`
|
|
59
59
|
|
|
60
60
|
**Solution:**
|
|
61
|
-
1.
|
|
61
|
+
1. Initialize project and copy example config:
|
|
62
62
|
```bash
|
|
63
|
+
python -m jarviscore.cli.scaffold
|
|
63
64
|
cp .env.example .env
|
|
64
65
|
```
|
|
65
66
|
|
|
@@ -198,13 +199,77 @@ await mesh.workflow("wf-1", [
|
|
|
198
199
|
|
|
199
200
|
---
|
|
200
201
|
|
|
201
|
-
### 5.
|
|
202
|
+
### 5. CustomAgent Issues
|
|
203
|
+
|
|
204
|
+
#### Issue: `execute_task not called`
|
|
205
|
+
|
|
206
|
+
**Cause:** Wrong mode for your use case
|
|
207
|
+
|
|
208
|
+
**Solution:**
|
|
209
|
+
```python
|
|
210
|
+
# For workflow orchestration (autonomous/distributed modes)
|
|
211
|
+
class MyAgent(CustomAgent):
|
|
212
|
+
async def execute_task(self, task): # Called by workflow engine
|
|
213
|
+
return {"status": "success", "output": ...}
|
|
214
|
+
|
|
215
|
+
# For P2P mode, use run() instead
|
|
216
|
+
class MyAgent(CustomAgent):
|
|
217
|
+
async def run(self): # Called in P2P mode
|
|
218
|
+
while not self.shutdown_requested:
|
|
219
|
+
msg = await self.peers.receive(timeout=0.5)
|
|
220
|
+
...
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
#### Issue: `self.peers is None`
|
|
224
|
+
|
|
225
|
+
**Cause:** Agent not in P2P or distributed mode
|
|
226
|
+
|
|
227
|
+
**Solution:**
|
|
228
|
+
```python
|
|
229
|
+
# Ensure mesh is in p2p or distributed mode
|
|
230
|
+
mesh = Mesh(mode="distributed", config={ # or "p2p"
|
|
231
|
+
'bind_port': 7950,
|
|
232
|
+
'node_name': 'my-node',
|
|
233
|
+
})
|
|
234
|
+
|
|
235
|
+
# Check peers is available before using
|
|
236
|
+
if self.peers:
|
|
237
|
+
result = await self.peers.as_tool().execute("ask_peer", {...})
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
#### Issue: `No response from peer`
|
|
241
|
+
|
|
242
|
+
**Cause:** Target agent not listening or wrong role
|
|
243
|
+
|
|
244
|
+
**Solution:**
|
|
245
|
+
```python
|
|
246
|
+
# Ensure target agent is running its run() loop
|
|
247
|
+
# In researcher agent:
|
|
248
|
+
async def run(self):
|
|
249
|
+
while not self.shutdown_requested:
|
|
250
|
+
msg = await self.peers.receive(timeout=0.5)
|
|
251
|
+
if msg and msg.is_request:
|
|
252
|
+
await self.peers.respond(msg, {"response": ...})
|
|
253
|
+
|
|
254
|
+
# When asking, use correct role
|
|
255
|
+
result = await self.peers.as_tool().execute(
|
|
256
|
+
"ask_peer",
|
|
257
|
+
{"role": "researcher", "question": "..."} # Must match agent's role
|
|
258
|
+
)
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
### 6. Environment Issues
|
|
202
264
|
|
|
203
265
|
#### Issue: `.env file not found`
|
|
204
266
|
|
|
205
267
|
**Solution:**
|
|
206
268
|
```bash
|
|
207
|
-
#
|
|
269
|
+
# Initialize project first (creates .env.example)
|
|
270
|
+
python -m jarviscore.cli.scaffold
|
|
271
|
+
|
|
272
|
+
# Then copy and configure
|
|
208
273
|
cp .env.example .env
|
|
209
274
|
|
|
210
275
|
# Or create manually
|
|
@@ -230,7 +295,7 @@ python your_script.py
|
|
|
230
295
|
|
|
231
296
|
---
|
|
232
297
|
|
|
233
|
-
###
|
|
298
|
+
### 7. Sandbox Configuration
|
|
234
299
|
|
|
235
300
|
#### Issue: `Remote sandbox connection failed`
|
|
236
301
|
|
|
@@ -255,7 +320,78 @@ python your_script.py
|
|
|
255
320
|
|
|
256
321
|
---
|
|
257
322
|
|
|
258
|
-
###
|
|
323
|
+
### 8. P2P/Distributed Mode Issues
|
|
324
|
+
|
|
325
|
+
#### Issue: `P2P coordinator failed to start`
|
|
326
|
+
|
|
327
|
+
**Cause:** Port already in use or network issue
|
|
328
|
+
|
|
329
|
+
**Solution:**
|
|
330
|
+
```bash
|
|
331
|
+
# Check if port is in use
|
|
332
|
+
lsof -i :7950
|
|
333
|
+
|
|
334
|
+
# Try different port
|
|
335
|
+
mesh = Mesh(mode="distributed", config={
|
|
336
|
+
'bind_port': 7960, # Different port
|
|
337
|
+
})
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
#### Issue: `Cannot connect to seed nodes`
|
|
341
|
+
|
|
342
|
+
**Cause:** Firewall, wrong address, or seed node not running
|
|
343
|
+
|
|
344
|
+
**Solution:**
|
|
345
|
+
```bash
|
|
346
|
+
# Check connectivity
|
|
347
|
+
nc -zv 192.168.1.10 7950
|
|
348
|
+
|
|
349
|
+
# Open firewall ports
|
|
350
|
+
sudo ufw allow 7950/tcp
|
|
351
|
+
sudo ufw allow 7950/udp
|
|
352
|
+
|
|
353
|
+
# Ensure seed node is running first
|
|
354
|
+
# On seed node:
|
|
355
|
+
mesh = Mesh(mode="distributed", config={
|
|
356
|
+
'bind_host': '0.0.0.0', # Listen on all interfaces
|
|
357
|
+
'bind_port': 7950,
|
|
358
|
+
})
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
#### Issue: `Workflow not available in p2p mode`
|
|
362
|
+
|
|
363
|
+
**Cause:** P2P mode doesn't include workflow engine
|
|
364
|
+
|
|
365
|
+
**Solution:**
|
|
366
|
+
```python
|
|
367
|
+
# Use distributed mode for both workflow + P2P
|
|
368
|
+
mesh = Mesh(mode="distributed", config={...})
|
|
369
|
+
|
|
370
|
+
# Or use p2p mode with run() loops instead
|
|
371
|
+
mesh = Mesh(mode="p2p", config={...})
|
|
372
|
+
await mesh.start()
|
|
373
|
+
await mesh.run_forever() # Agents use run() loops
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
#### Issue: `Agents not discovering each other`
|
|
377
|
+
|
|
378
|
+
**Cause:** Network configuration or timing
|
|
379
|
+
|
|
380
|
+
**Solution:**
|
|
381
|
+
```python
|
|
382
|
+
# Wait for mesh to stabilize after start
|
|
383
|
+
await mesh.start()
|
|
384
|
+
await asyncio.sleep(1) # Give time for peer discovery
|
|
385
|
+
|
|
386
|
+
# Check if peers are available
|
|
387
|
+
agent = mesh.get_agent("my_role")
|
|
388
|
+
if agent.peers:
|
|
389
|
+
print("Peers available")
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
---
|
|
393
|
+
|
|
394
|
+
### 9. Performance Issues
|
|
259
395
|
|
|
260
396
|
#### Issue: Code generation is slow (>10 seconds)
|
|
261
397
|
|
|
@@ -291,7 +427,7 @@ python your_script.py
|
|
|
291
427
|
|
|
292
428
|
---
|
|
293
429
|
|
|
294
|
-
###
|
|
430
|
+
### 9. Testing Issues
|
|
295
431
|
|
|
296
432
|
#### Issue: Smoke test fails but examples work
|
|
297
433
|
|
|
@@ -361,7 +497,7 @@ If issues persist:
|
|
|
361
497
|
|
|
362
498
|
3. **Provide this info when asking for help:**
|
|
363
499
|
- Python version: `python --version`
|
|
364
|
-
- JarvisCore version: `pip show jarviscore`
|
|
500
|
+
- JarvisCore version: `pip show jarviscore-framework`
|
|
365
501
|
- LLM provider used (Claude/Azure/Gemini)
|
|
366
502
|
- Error message and logs
|
|
367
503
|
- Minimal code to reproduce issue
|
|
@@ -391,7 +527,7 @@ If issues persist:
|
|
|
391
527
|
|
|
392
528
|
4. **Keep dependencies updated:**
|
|
393
529
|
```bash
|
|
394
|
-
pip install --upgrade jarviscore
|
|
530
|
+
pip install --upgrade jarviscore-framework
|
|
395
531
|
```
|
|
396
532
|
|
|
397
533
|
5. **Use version control for `.env`:**
|
|
@@ -421,4 +557,10 @@ If significantly slower:
|
|
|
421
557
|
|
|
422
558
|
---
|
|
423
559
|
|
|
424
|
-
*Last updated: 2026-01-
|
|
560
|
+
*Last updated: 2026-01-22*
|
|
561
|
+
|
|
562
|
+
---
|
|
563
|
+
|
|
564
|
+
## Version
|
|
565
|
+
|
|
566
|
+
Troubleshooting Guide for JarvisCore v0.2.0
|