Codex 重连 5 次才回答?本期命令与教学提示词 视频:https://www.youtube.com/watch?v=gAg44iN-Mxo 命令只读,不修改网络或代理。需要 Windows PowerShell、Python 3、curl.exe。日志优先 CODEX_HOME,否则使用用户目录下 .codex。不要公开原始日志中的账号、IP、令牌或私人路径。 CMD1|查询重连日志 # Only current-process display encoding; restore it after this command. $ep013PreviousPipeEncoding = $global:OutputEncoding $ep013PreviousConsoleEncoding = [Console]::OutputEncoding try { $global:OutputEncoding = New-Object System.Text.UTF8Encoding [Console]::OutputEncoding = New-Object System.Text.UTF8Encoding @' import sys sys.stdout.reconfigure(encoding="utf-8") import sqlite3, os, datetime, re home = os.environ.get('CODEX_HOME') or os.path.join(os.path.expanduser('~'), '.codex') p = os.path.join(home, 'logs_2.sqlite') c = sqlite3.connect('file:' + p + '?mode=ro', uri=True) q = "select ts, feedback_log_body from logs where target = 'codex_core::responses_retry' order by ts desc limit 15" for t, b in c.execute(q): kind = '压缩' if 'compact' in b else '回答' n = re.search(r'\((\d/\d)', b) r = re.search(r'retries=(\d) max_retries=(\d)', b) step = n.group(1) if n else (r.group(1) + '/' + r.group(2) if r else '-') e = re.search(r'(?:sampling_error|compact_error|error)=(.*)$', b) print(datetime.datetime.fromtimestamp(t).strftime('%m-%d %H:%M:%S'), kind, step, (e.group(1) if e else b)[:90]) '@ | python - if ($LASTEXITCODE -ne 0) { throw '只读日志查询失败,请停止并保留错误。' } } finally { $global:OutputEncoding = $ep013PreviousPipeEncoding [Console]::OutputEncoding = $ep013PreviousConsoleEncoding } ────────── CMD2|两条网络测试 # Read-only connectivity tests from the draft; no proxy/settings changes. Test-NetConnection chatgpt.com -Port 443 curl.exe -s -o NUL -w "连接 %{time_connect}s 首字节 %{time_starttransfer}s`n" https://chatgpt.com/cdn-cgi/trace ────────── CMD3|查询请求大小 # Only current-process display encoding; restore it after this command. $ep013PreviousPipeEncoding = $global:OutputEncoding $ep013PreviousConsoleEncoding = [Console]::OutputEncoding try { $global:OutputEncoding = New-Object System.Text.UTF8Encoding [Console]::OutputEncoding = New-Object System.Text.UTF8Encoding @' import sys sys.stdout.reconfigure(encoding="utf-8") import sqlite3, os, re, datetime home = os.environ.get('CODEX_HOME') or os.path.join(os.path.expanduser('~'), '.codex') p = os.path.join(home, 'logs_2.sqlite') c = sqlite3.connect('file:' + p + '?mode=ro', uri=True) for t, b in c.execute("select ts, feedback_log_body from logs where feedback_log_body like '%Compressed request body%' order by ts desc limit 8"): m = re.search(r'pre_compression_bytes=(\d+) post_compression_bytes=(\d+)', b) if m: print(datetime.datetime.fromtimestamp(t).strftime('%m-%d %H:%M'), '压缩前', round(int(m.group(1))/1e6, 1), 'MB 上传', round(int(m.group(2))/1e6, 1), 'MB') '@ | python - if ($LASTEXITCODE -ne 0) { throw '只读日志查询失败,请停止并保留错误。' } } finally { $global:OutputEncoding = $ep013PreviousPipeEncoding [Console]::OutputEncoding = $ep013PreviousConsoleEncoding } ────────── P1|让旧对话总结 先不要继续执行任务。请只根据本对话和已经保存的文件,写一份可以交给新对话的进度总结,控制在800字以内。 包含: 1. 任务目标与最终交付。 2. 已经完成并有文件/实际结果支持的内容。 3. 未完成、失败、尚未核验的内容,明确区分。 4. 关键文件的项目相对路径。 5. 不能违反的限制与需要本人批准的事项。 6. 下一步一个明确、可检查的小任务。 不要包含密码、令牌、账号、私人完整路径或敏感业务数据。不要把计划写成已经完成;不确定的地方标明不确定,不要猜。 ────────── P2|新对话核对后承接 下面是上一段工作的交接总结。先不要修改文件或执行写入操作。 【在这里粘贴已经人工核对的实际交接总结】 请先读取当前项目规则,逐项核对总结所指文件和实际结果,区分已经完成与待办。不要仅凭总结就相信所有成功声明;发现冲突先报告,不要自行补造结果。 核对后,先完成总结里那个明确的小任务。任何需要人工批准的事项仍然等待本人,不要记录或绕过Gate,不修改网络/代理设置,不发布内容。 ────────── 使用边界:只有日志明确写60 minutes且实际自动恢复,才可暂不处理。连续超时先区分网络失败与长对话两支;小GET完成不保证大请求或长连接稳定。历史5.4 MB不是超时因果证明,当前实录0.1–4.9 MB不是迁移前后同任务对照。迁移后小任务成功不代表长期根治。CMD1会截断错误文本,CMD3查询全局最近8条,不能仅凭时间认定同一对话。旧对话不能总结时,由人依据文件整理;新对话执行前先人工核对总结。