diff --git a/TMWebDriver.py b/TMWebDriver.py index d00b653..1c88c95 100644 --- a/TMWebDriver.py +++ b/TMWebDriver.py @@ -94,7 +94,7 @@ class TMWebDriver: auto_switch_newtab = data.get('auto_switch_newtab', False) try: result = self.execute_js(code, timeout=timeout, session_id=session_id, auto_switch_newtab=auto_switch_newtab) - print('remote', result) + print('[remote result]', str(result)[:500]) newTabs = result.get('newTabs', []) if isinstance(result, dict) else [] return json.dumps({'result': result, 'newTabs': newTabs}, ensure_ascii=False) except Exception as e: diff --git a/ga.py b/ga.py index 63538db..0a8bbb5 100644 --- a/ga.py +++ b/ga.py @@ -16,16 +16,16 @@ def code_run(code: str, code_type: str = "python", timeout: int = 60, cwd: str = """ preview = (code[:60].replace('\n', ' ') + '...') if len(code) > 60 else code.strip() yield f"[Action] Running {code_type} in {os.path.basename(cwd)}: {preview}\n" - cwd = cwd or os.getcwd() + cwd = cwd or os.getcwd(); tmp_path = None if code_type == "python": tmp_file = tempfile.NamedTemporaryFile(suffix=".py", delete=False, mode='w', encoding='utf-8') tmp_file.write(code) tmp_path = tmp_file.name tmp_file.close() - cmd = ["python", "-u", tmp_path] - elif code_type == "powershell": - cmd = ["powershell", "-NoProfile", "-NonInteractive", "-Command", code] - tmp_path = None + cmd = ["python", "-X", "utf8", "-u", tmp_path] + elif code_type in ["powershell", "bash"]: + if os.name == 'nt': cmd = ["powershell", "-NoProfile", "-NonInteractive", "-Command", code] + else: cmd = ["bash", "-c", code] else: return {"status": "error", "msg": f"不支持的类型: {code_type}"} print("code run output:") @@ -398,7 +398,8 @@ class GenericAgentHandler(BaseHandler): next_prompt = '''### [总结提炼经验] 既然你觉得当前任务有重要信息需要记忆,请提取最近一次任务中【事实验证成功且长期有效】的环境事实与用户偏好,更新至全局记忆。 1. 严禁记录任何任务特定中间执行过程或临时变量经验,那是过程记忆不是全局记忆。 2. 若无高价值新事实,那就不更新任何内容。 -3. 尽量先查看现有全局记忆形式,仿照形式且避免冗余,insight也要添加对全局记忆的短印象来提醒存在性。''' +3. 尽量先查看现有全局记忆形式,仅作少量修改不要影响其余部分。insight也要同步更新全局记忆的短印象来提醒存在性。 +4. 优先使用file_read和file_patch来保证少量修改。''' yield "[Info] Start distilling good memory for long-term storage.\n" return StepOutcome({"status": "success"}, next_prompt=next_prompt) diff --git a/simphtml.py b/simphtml.py index b915e16..0f8caf2 100644 --- a/simphtml.py +++ b/simphtml.py @@ -816,8 +816,9 @@ def get_main_block(driver): if type(html) is not str: time.sleep(2) html = driver.execute_js(js_optHTML) - else: - print('[STRANGE TYPE]', str(html)[:500]) + if type(html) is not str: + print('[STRANGE TYPE]', type(html), str(html)[:500]) + return html return html diff --git a/tools_schema.json b/tools_schema.json index 7e4a450..822b070 100644 --- a/tools_schema.json +++ b/tools_schema.json @@ -1,7 +1,7 @@ [ {"type": "function", "function": { "name": "code_run", - "description": "针对 Windows 优化的双模态代码执行器。优先使用 python 运行复杂逻辑,仅在必要系统操作时使用 powershell。注意:执行的代码必须以 ```python 或 ```powershell 代码块的形式包含在回复正文中。严禁在代码中硬编码大量数据,如有需要应通过文件读取。执行时间限制为 60s。", + "description": "针对 Windows 优化的双模态代码执行器。优先使用python,仅在必要系统操作时使用 powershell。注意:执行的代码必须以 ```python 或 ```powershell 代码块的形式包含在回复正文中。严禁在代码中硬编码大量数据,如有需要应通过文件读取。执行时间限制为 60s。", "parameters": {"type": "object", "properties": { "type": {"type": "string", "enum": ["python", "powershell"], "description": "执行环境类型,默认为 python。", "default": "python"}, "timeout": {"type": "integer", "description": "执行超时时间(秒),默认 60。", "default": 60},