执行入口。 generate_code_execution_reply(conversable_agent.py 第 652 行起)会从消息历史向前扫描,并对 message["content"] 调用 extract_code:
last_n_messages = code_execution_config.pop("last_n_messages", 1)
...
for i in range(min(len(messages), messages_to_scan)):
message = messages[-(i + 1)]
if not message["content"]:
continue
code_blocks = extract_code(message["content"])
if len(code_blocks) == 1 and code_blocks[0][0] == UNKNOWN:
continue
exitcode, logs = self.execute_code_blocks(code_blocks)
return True, f"exitcode: {exitcode} (...)\nCode output: {logs}"
这里的输入对象就是消息文本。识别出代码块以后,内容会继续进入 execute_code_blocks,中间没有新的来源字段参与判断。
代码块判断。 extract_code(code_utils.py 第 100 行)找不到围栏块时返回 [(UNKNOWN, 全文)];上面的循环会跳过单个 UNKNOWN,因此这里实际区分的是:
没有代码块 → 跳过(UNKNOWN)
有围栏代码块 → 提取并执行(不问来源)
所以这一层仍然是格式判断:有没有框架能够识别的代码块。
黑客技术 渗透拖库 域名劫持 漏洞攻击 程序破解 UID转换手机号 直播间匿名采集 爬虫提取 提权wedshell十年老牌技术员:@Suitthug0