fix: str() session_id/tab_id; bump UA to 2.1.251; trim subagent.md
This commit is contained in:
1 parent
7fa5fa4ec0
commit
71cf559fab
4 files changed
+4
-30
No files matched your search
+1
-1
@@ -186,7 +186,7 @@ class TMWebDriver:
|
|||||||
if session.ws_client == client: session.mark_disconnected()
|
if session.ws_client == client: session.mark_disconnected()
|
||||||
|
|
||||||
def execute_js(self, code, timeout=15, session_id=None) -> Any:
|
def execute_js(self, code, timeout=15, session_id=None) -> Any:
|
||||||
if session_id is None: session_id = self.default_session_id
|
if session_id is None: session_id = str(self.default_session_id)
|
||||||
if self.is_remote:
|
if self.is_remote:
|
||||||
safe_print('remote_execute_js')
|
safe_print('remote_execute_js')
|
||||||
response = self._remote_cmd({"cmd": "execute_js", "sessionId": session_id,
|
response = self._remote_cmd({"cmd": "execute_js", "sessionId": session_id,
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ def web_execute_js(script, switch_tab_id=None, no_monitor=False):
|
|||||||
try:
|
try:
|
||||||
if driver is None: first_init_driver()
|
if driver is None: first_init_driver()
|
||||||
if len(driver.get_all_sessions()) == 0: return {"status": "error", "msg": "没有可用的浏览器标签页,查L3记忆分析原因。"}
|
if len(driver.get_all_sessions()) == 0: return {"status": "error", "msg": "没有可用的浏览器标签页,查L3记忆分析原因。"}
|
||||||
if switch_tab_id: driver.default_session_id = switch_tab_id
|
if switch_tab_id: driver.default_session_id = str(switch_tab_id)
|
||||||
result = simphtml.execute_js_rich(script, driver, no_monitor=no_monitor)
|
result = simphtml.execute_js_rich(script, driver, no_monitor=no_monitor)
|
||||||
return result
|
return result
|
||||||
except Exception as e: return {"status": "error", "msg": format_error(e)}
|
except Exception as e: return {"status": "error", "msg": format_error(e)}
|
||||||
|
|||||||
+2
-2
@@ -661,7 +661,7 @@ class BaseSession:
|
|||||||
self.api_mode = 'responses' if mode in ('responses', 'response') else 'chat_completions'
|
self.api_mode = 'responses' if mode in ('responses', 'response') else 'chat_completions'
|
||||||
self.temperature = cfg.get('temperature', 1)
|
self.temperature = cfg.get('temperature', 1)
|
||||||
self.max_tokens = cfg.get('max_tokens')
|
self.max_tokens = cfg.get('max_tokens')
|
||||||
self.default_ua = "claude-cli/2.1.152 (external, cli)"
|
self.default_ua = "claude-cli/2.1.251 (external, cli)"
|
||||||
self.user_agent = cfg.get("user_agent", self.default_ua)
|
self.user_agent = cfg.get("user_agent", self.default_ua)
|
||||||
def _apply_claude_thinking(self, payload):
|
def _apply_claude_thinking(self, payload):
|
||||||
if self.thinking_type:
|
if self.thinking_type:
|
||||||
@@ -773,7 +773,7 @@ def _fix_messages(messages):
|
|||||||
return merged
|
return merged
|
||||||
|
|
||||||
class NativeClaudeSession(BaseSession):
|
class NativeClaudeSession(BaseSession):
|
||||||
native_ua = "claude-cli/2.1.152 (native, cli)"
|
native_ua = "claude-cli/2.1.251 (native, cli)"
|
||||||
def __init__(self, cfg):
|
def __init__(self, cfg):
|
||||||
super().__init__(cfg)
|
super().__init__(cfg)
|
||||||
self.fake_cc_system_prompt = cfg.get("fake_cc_system_prompt", False)
|
self.fake_cc_system_prompt = cfg.get("fake_cc_system_prompt", False)
|
||||||
|
|||||||
@@ -33,29 +33,3 @@
|
|||||||
**用途**:N个独立同构子任务分发,独立上下文避免交叉污染
|
**用途**:N个独立同构子任务分发,独立上下文避免交叉污染
|
||||||
**约束**:文件系统共享(优点);键鼠不可共享;浏览器避免同tab
|
**约束**:文件系统共享(优点);键鼠不可共享;浏览器避免同tab
|
||||||
**流程**:准备独立输入文件→每个启动subagent(--func优先)→收集输出汇总
|
**流程**:准备独立输入文件→每个启动subagent(--func优先)→收集输出汇总
|
||||||
|
|
||||||
## subagent内部plan_mode使用
|
|
||||||
**原则**:subagent本身是完整agent,接收多步骤任务时应在内部创建plan管理执行
|
|
||||||
**触发条件**:任务包含3个以上子步骤、子步骤之间有依赖关系、需要checkpoint来恢复执行
|
|
||||||
**实现方式**:
|
|
||||||
1. **主agent创建subagent时**:在input.txt中说明任务包含多个步骤,建议使用plan_mode
|
|
||||||
2. **subagent内部执行**:检测到多步骤任务后,创建 `./subagent_plan.md` 并使用plan_mode执行
|
|
||||||
3. **主agent监控**:只关注最终结果(output*.txt),不需要关心subagent内部如何执行
|
|
||||||
4. **文件传递机制**:主agent创建subagent时在task_dir中生成 `context.json`,包含所有文件的**绝对路径**
|
|
||||||
**⚠ subagent启动后第一步必须读取context.json**
|
|
||||||
**⚠ 所有文件操作必须使用context.json中的绝对路径**
|
|
||||||
**格式示例**:
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"task": "任务描述",
|
|
||||||
"work_dir": "/absolute/path/to/plan_dir/",
|
|
||||||
"input_files": {
|
|
||||||
"paper_info": "/absolute/path/to/paper_info.txt"
|
|
||||||
},
|
|
||||||
"output_files": {
|
|
||||||
"pdf": "/absolute/path/to/paper.pdf",
|
|
||||||
"report": "/absolute/path/to/paper_report.md"
|
|
||||||
},
|
|
||||||
"dependencies": ["paper_info.txt必须存在"]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
Reference in new issue
Block a user