mirror of
https://github.com/OpenBMB/ChatDev.git
synced 2026-04-25 11:18:06 +00:00
feat(agent): remove unneeded python_execution tool
This commit is contained in:
parent
cefe90fd5e
commit
49b8285c73
@ -1,54 +0,0 @@
|
||||
def run_python_script(script: str, timeout_seconds: int = 60) -> dict:
|
||||
"""
|
||||
Run a short Python script and return a structured result with stdout, stderr, and exit code.
|
||||
|
||||
This tool is intended for agent workflows that need a reliable Python scratchpad for
|
||||
calculations, parsing, formatting, or quick validation.
|
||||
"""
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import uuid
|
||||
from pathlib import Path
|
||||
|
||||
workspace = Path(os.getenv("TEMP_CODE_DIR", "temp")).resolve()
|
||||
workspace.mkdir(exist_ok=True)
|
||||
|
||||
script_path = workspace / f"{uuid.uuid4()}.py"
|
||||
payload = script if script.endswith("\n") else script + "\n"
|
||||
script_path.write_text(payload, encoding="utf-8")
|
||||
|
||||
try:
|
||||
completed = subprocess.run(
|
||||
[sys.executable or "python3", str(script_path.resolve())],
|
||||
cwd=str(workspace),
|
||||
capture_output=True,
|
||||
text=True,
|
||||
timeout=timeout_seconds,
|
||||
check=False,
|
||||
)
|
||||
return {
|
||||
"ok": completed.returncode == 0,
|
||||
"exit_code": completed.returncode,
|
||||
"stdout": completed.stdout,
|
||||
"stderr": completed.stderr,
|
||||
}
|
||||
except subprocess.TimeoutExpired as exc:
|
||||
return {
|
||||
"ok": False,
|
||||
"exit_code": None,
|
||||
"stdout": exc.stdout or "",
|
||||
"stderr": (exc.stderr or "") + f"\nError: Execution timed out after {timeout_seconds} seconds.",
|
||||
}
|
||||
except Exception as exc:
|
||||
return {
|
||||
"ok": False,
|
||||
"exit_code": None,
|
||||
"stdout": "",
|
||||
"stderr": f"Execution error: {exc}",
|
||||
}
|
||||
finally:
|
||||
try:
|
||||
script_path.unlink(missing_ok=True)
|
||||
except Exception:
|
||||
pass
|
||||
@ -1,7 +1,7 @@
|
||||
---
|
||||
name: python-scratchpad
|
||||
description: Use the existing Python execution tools as a scratchpad for calculations, data transformation, and quick script-based validation.
|
||||
allowed-tools: run_python_script execute_code
|
||||
allowed-tools: execute_code
|
||||
---
|
||||
|
||||
# Python Scratchpad
|
||||
@ -15,22 +15,21 @@ This skill is especially useful for:
|
||||
- checking assumptions with a small reproducible script
|
||||
|
||||
Requirements:
|
||||
- The agent should have access to `run_python_script` or `execute_code`.
|
||||
- The agent should have access to `execute_code`.
|
||||
|
||||
Workflow:
|
||||
1. If the task needs computation or a repeatable transformation, activate this skill.
|
||||
2. If you need examples, call `read_skill_file` for `references/examples.md`.
|
||||
3. Write a short Python script for the exact task.
|
||||
4. Prefer `run_python_script` with the script in its `script` argument.
|
||||
5. If `run_python_script` is unavailable, call `execute_code` once with that script.
|
||||
6. Use the script output in the final answer.
|
||||
7. Keep scripts small and task-specific.
|
||||
5. Use the script output in the final answer.
|
||||
6. Keep scripts small and task-specific.
|
||||
|
||||
Rules:
|
||||
1. Prefer standard library Python.
|
||||
2. Print only the values you need.
|
||||
3. Do not invent outputs without running the script.
|
||||
4. If neither `run_python_script` nor `execute_code` is available, say exactly: `No Python execution tool is configured for this agent.`
|
||||
4. If `execute_code` is not available, say exactly: `No Python execution tool is configured for this agent.`
|
||||
5. Do not claim there is a generic execution-environment problem unless a tool call actually returned such an error.
|
||||
|
||||
Expected behavior:
|
||||
|
||||
@ -7,7 +7,7 @@ numbers = [14, 27, 31, 8]
|
||||
print(sum(numbers))
|
||||
```
|
||||
|
||||
Expected structured result with `run_python_script`:
|
||||
Expected structured result with `execute_code`:
|
||||
|
||||
```json
|
||||
{
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
graph:
|
||||
id: skills
|
||||
description: ''
|
||||
description: Workflow to demonstrate skills usage
|
||||
initial_instruction: Give the agent an instruction to explicitly use code to generate a Fibonacci sequence, sum numbers, or something else that is better done with code than LLM generation.
|
||||
log_level: DEBUG
|
||||
is_majority_voting: false
|
||||
nodes:
|
||||
@ -17,7 +18,7 @@ graph:
|
||||
- type: function
|
||||
config:
|
||||
tools:
|
||||
- name: python_execution:All
|
||||
- name: code_executor:All
|
||||
timeout: null
|
||||
prefix: ''
|
||||
thinking: null
|
||||
@ -33,7 +34,6 @@ graph:
|
||||
log_output: true
|
||||
edges: []
|
||||
memory: []
|
||||
initial_instruction: ''
|
||||
start:
|
||||
- Qwerty
|
||||
end: []
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user