agentx-dev 3.0.1__tar.gz → 3.0.2__tar.gz
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.
- {agentx_dev-3.0.1/agentx_dev.egg-info → agentx_dev-3.0.2}/PKG-INFO +1 -1
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/Runner/AgentRun.py +35 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2/agentx_dev.egg-info}/PKG-INFO +1 -1
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/pyproject.toml +1 -1
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/AGENTX.md +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/LICENSE +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/MANIFEST.in +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/README.md +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/Agents/Agent.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/Agents/__init__.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/AsyncTools.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/AutoSetup.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/Cache.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/ChatModel.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/Config.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/DefaultTools.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/Loader.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/MCP.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/Memory.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/Observability.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/Planner.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/Runner/AsyncAgentRun.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/Runner/__init__.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/Runner/promptTemplate.yaml +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/Session.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/Streaming.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/Supervisor.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/Tools.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/WebTools.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/__init__.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/resources/__init__.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev/resources/promptTemplate.yaml +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev.egg-info/SOURCES.txt +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev.egg-info/dependency_links.txt +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev.egg-info/requires.txt +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/agentx_dev.egg-info/top_level.txt +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/README.md +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/async_example.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/async_quickstart.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/auto_features_example.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/caching_example.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/chatbot_example.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/complete_example.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/concurrent_example.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/concurrent_tool_example.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/file_agent_demo.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/function_calling_demo.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/mcp_demo.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/observability_example.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/orchestration_demo.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/planner_example.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/supervisor_codebase_analysis_demo.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/supervisor_example.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/examples/sync_quickstart.py +0 -0
- {agentx_dev-3.0.1 → agentx_dev-3.0.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentx-dev
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.2
|
|
4
4
|
Summary: A lightweight LLM agent framework with multi-agent orchestration (Supervisor + dynamic specialist spawning), permission-gated default tools, MCP integration, and prompt-template presets.
|
|
5
5
|
Author-email: Bruce-Arhin Shadrach <brucearhin098@gmail.com>
|
|
6
6
|
License: MIT License
|
|
@@ -1328,6 +1328,41 @@ class AgentRunner:
|
|
|
1328
1328
|
yield {"type": "final", "content": final_answer}
|
|
1329
1329
|
break
|
|
1330
1330
|
|
|
1331
|
+
# Guardrail for use_function_calling=True: the model is forced
|
|
1332
|
+
# to call the parser tool (React_ / FewShot / etc.) and fills
|
|
1333
|
+
# in `action` + `action_input`. Nothing in the parser schema
|
|
1334
|
+
# constrains `action` to a real tool name, so the model can
|
|
1335
|
+
# (and does) put its natural-language closing response there
|
|
1336
|
+
# — e.g. action = "Provide a response to the athlete."
|
|
1337
|
+
# Without this guardrail the runner would try to dispatch
|
|
1338
|
+
# a tool with that name, get "not found", and the turn dies.
|
|
1339
|
+
# Detection: action isn't Final_Answer AND isn't in the
|
|
1340
|
+
# registry. Treat the whole turn as an implicit Final_Answer
|
|
1341
|
+
# built from whatever text the model provided (thought +
|
|
1342
|
+
# action + action_input, whichever are present).
|
|
1343
|
+
known_tools = set(self.func) | set(self.args)
|
|
1344
|
+
if action and action != "Final_Answer" and action not in known_tools:
|
|
1345
|
+
parts: List[str] = []
|
|
1346
|
+
if thought:
|
|
1347
|
+
parts.append(str(thought))
|
|
1348
|
+
# action itself may BE the response text
|
|
1349
|
+
if action:
|
|
1350
|
+
parts.append(str(action))
|
|
1351
|
+
# action_input often carries the actual body
|
|
1352
|
+
if action_input and str(action_input).strip():
|
|
1353
|
+
parts.append(str(action_input))
|
|
1354
|
+
final_answer = "\n\n".join(parts) or (
|
|
1355
|
+
"(agent emitted an unrecognized action and no text)"
|
|
1356
|
+
)
|
|
1357
|
+
if self.verbose:
|
|
1358
|
+
print(
|
|
1359
|
+
f"\x1B[1;33m[loop] implicit-final: action "
|
|
1360
|
+
f"'{action[:60]}' is not a registered tool; "
|
|
1361
|
+
f"treating turn as Final_Answer\x1B[0m"
|
|
1362
|
+
)
|
|
1363
|
+
yield {"type": "final", "content": final_answer}
|
|
1364
|
+
break
|
|
1365
|
+
|
|
1331
1366
|
# Loop-level spiral check — same (action, args) as the last
|
|
1332
1367
|
# turn? Count it. Three in a row and we bail with a synthesized
|
|
1333
1368
|
# Final_Answer built from whatever real data was gathered
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentx-dev
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.2
|
|
4
4
|
Summary: A lightweight LLM agent framework with multi-agent orchestration (Supervisor + dynamic specialist spawning), permission-gated default tools, MCP integration, and prompt-template presets.
|
|
5
5
|
Author-email: Bruce-Arhin Shadrach <brucearhin098@gmail.com>
|
|
6
6
|
License: MIT License
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
|
|
3
3
|
name = "agentx-dev"
|
|
4
|
-
version = "3.0.
|
|
4
|
+
version = "3.0.2"
|
|
5
5
|
description = "A lightweight LLM agent framework with multi-agent orchestration (Supervisor + dynamic specialist spawning), permission-gated default tools, MCP integration, and prompt-template presets."
|
|
6
6
|
authors = [{ name = "Bruce-Arhin Shadrach", email = "brucearhin098@gmail.com" }]
|
|
7
7
|
# Best practice: link to the license file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|