更新日期:2026年9月9日
本文为技术实践文章,不涉及充值、代充、支付渠道或账号交易。根据 OpenAI 2026 年 9 月的官方说明,GPT‑6 Pro 由 GPT‑6 Astra 驱动,正在向 Pro 等计划的 ChatGPT 逐步开放;GPT‑6 Astra 也在 Work / Codex 中逐步开放。Pro 可使用现有完整的 Work / Codex allowance 来运行 Astra,而 Plus 的 Astra 使用量相对有限。不同账号与入口的实际开放时间可能不同。
2026 年谈 GPT‑6,最值得关注的已经不只是问答,而是 Agent。可是 Agent 很容易被说得太玄。真正的 Agent 系统不是"给模型更多权限,然后让它自己想办法",而是一个明确的循环:目标、模型判断、工具调用、结果回传、状态更新、继续判断、达到终止条件。
GPT‑6 Astra 对复杂多步骤工作和工具使用的能力,让这类系统更值得做;Codex 本身又是非常好的软件工程 Agent 实践环境。对高频开发者来说,这也是 Pro 更容易发挥价值的方向。
一、Agent 最重要的不是自主,而是边界
危险设计:
text
你可以使用 shell。
请修复所有问题。
这等于把目标、权限、验收和风险处理全部交给模型自由理解。
更合理的是:
text
目标:修复当前仓库 failing tests。
允许:读取仓库、修改 src/ 和 tests/、运行 pytest。
禁止:网络访问、删除测试、修改 CI secrets、git push、修改生产配置。
终止条件:pytest 全通过,或连续三轮无法进一步修复。
Agent 能力越强,边界越重要。
二、先实现一个极简工具 Agent
假设只允许读取文件与运行测试:
python
from pathlib import Path
import subprocess
ROOT = Path("./project").resolve()
def safe_read_file(relative_path: str) -> str:
path = (ROOT / relative_path).resolve()
if ROOT not in path.parents and path != ROOT:
raise ValueError("path outside workspace")
return path.read_text(encoding="utf-8")
def run_tests() -> dict:
proc = subprocess.run(
["python", "-m", "pytest", "-q"],
cwd=ROOT,
capture_output=True,
text=True,
timeout=120,
)
return {
"returncode": proc.returncode,
"stdout": proc.stdout[-10000:],
"stderr": proc.stderr[-5000:],
}
关键不是函数会跑,而是读取路径被限制、命令不是模型自由拼接、测试有 timeout、输出长度也被限制。
如果直接这样:
python
subprocess.run(model_generated_command, shell=True)
风险完全不同。
三、工具最好是窄接口
数据库工具不要给:
text
execute_sql(sql)
更适合给:
python
def get_order(order_id: int): ...
def list_failed_orders(limit: int = 20): ...
def retryable_order_count(): ...
工具越窄,越容易审计、测试、限权和记录。
四、让 GPT‑6 Astra 输出结构化下一步
python
from pydantic import BaseModel
from typing import Literal
class AgentAction(BaseModel):
action: Literal["read_file", "run_tests", "finish"]
target: str | None = None
reason: str
调用:
python
from openai import OpenAI
client = OpenAI()
response = client.responses.parse(
model="gpt-6-astra",
reasoning={"effort": "high"},
input="""
当前目标:修复测试。
当前状态:
- tests/test_math.py 失败
- 已读取 src/math.py
请选择下一步。
""",
text_format=AgentAction,
)
action = response.output_parsed
结构化输出不会保证判断一定正确,但它能显著缩小程序需要处理的状态空间。
五、Agent 必须有最大循环次数
python
MAX_STEPS = 12
for step in range(MAX_STEPS):
action = decide_next_action(state)
if action.action == "finish":
break
result = execute(action)
state.add(result)
else:
raise RuntimeError("agent step limit reached")
真实系统中可能出现模型反复读取同一文件、测试一直失败、工具结果模糊、状态循环。智能体不应该等于无限循环。
六、加入人工审批点
python
HIGH_RISK_ACTIONS = {
"delete_file",
"database_migration",
"deploy",
"push_git",
}
if action.action in HIGH_RISK_ACTIONS:
raise ApprovalRequired(action)
Agent 最适合自动化的是可逆、可验证、范围明确、失败代价低的工作。
七、权限必须由程序决定
错误做法:
python
if "safe" in model_response:
execute_action()
正确思路:
python
POLICY = {
"read_file": True,
"run_tests": True,
"deploy": False,
}
if not POLICY.get(action.action, False):
raise PermissionError(action.action)
一句话:模型负责建议,程序负责授权。
八、状态机让 Agent 更可控
python
from enum import Enum
class State(str, Enum):
ANALYZE = "analyze"
TEST = "test"
FIX = "fix"
DONE = "done"
BLOCKED = "blocked"
TRANSITIONS = {
State.ANALYZE: {State.TEST, State.BLOCKED},
State.TEST: {State.FIX, State.DONE},
State.FIX: {State.TEST, State.BLOCKED},
}
def transition(current, new):
allowed = TRANSITIONS.get(current, set())
if new not in allowed:
raise ValueError(f"invalid transition: {current} -> {new}")
return new
这样即使模型建议 ANALYZE 直接跳 DONE,程序也可以拒绝。
九、Codex 本身就是 Agent 训练场
你不一定第一天就要自己搭 Agent 框架。先在 Codex 里训练任务表达:
text
任务:修复当前仓库单元测试。
允许范围:src/math.py、tests/test_math.py。
禁止:删除测试、更改测试预期、新增依赖。
步骤:
1. 运行失败测试;
2. 阅读实现;
3. 提出原因;
4. 最小修改;
5. 再运行测试;
6. 查看 diff。
如果失败原因不明确,停止并报告。
这个提示已经包含 Goal、Scope、Tools、Policy、Loop、Stop condition、Evidence。
十、Agent 日志必须可追踪
不要只保存最终答案。至少记录:
json
{
"run_id": "run_1024",
"step": 4,
"action": "run_tests",
"result": "failed",
"duration_ms": 8200
}
同时记录模型、reasoning effort、工具名、工具耗时、工具错误、总步数、最终状态和人工审批。否则 Agent 出错后几乎无法复盘。
十一、上线前至少测试三类失败路径
第一类:循环上限。
python
def test_agent_stops_after_limit():
agent = Agent(max_steps=3)
agent.model = AlwaysRepeatModel()
with pytest.raises(StepLimitReached):
agent.run("fix tests")
第二类:权限。
python
def test_deploy_requires_approval():
action = Action(name="deploy")
with pytest.raises(ApprovalRequired):
policy.execute(action)
第三类:工具超时。
python
def test_tool_timeout_is_reported():
result = run_tool_with_timeout("slow_tool", timeout=1)
assert result.status == "timeout"
如果这些失败路径都没有测试,Agent 不能因为一次成功 demo 就被称为生产系统。
十二、为什么 Pro 更适合 Agent 开发
Agent 的特点是多轮交互:模型调用、工具结果、再次模型调用、再次工具、再分析、再测试。和普通聊天相比,它天然更消耗 Work / Codex allowance。
官方当前安排下,Pro 可把完整现有 Work / Codex allowance 用于 Astra,Plus 的 Astra 使用则相对有限。因此偶尔体验 Agent,Plus 足够;但高频做多个 Agent、长任务、高 reasoning、大上下文和仓库级工程时,Pro 更容易形成持续工作环境。
十三、真正成熟的 Agent 是"确定性系统 + 非确定性推理"
可以用这个公式理解:
text
Agent
=
模型推理
+
确定性工具
+
权限系统
+
状态机
+
日志
+
评估
+
人工审批
只有模型推理和工具调用,还不能称为成熟 Agent。
十四、GPT‑6 Astra 时代的重点会变化
以前 Agent 常见问题是"模型不知道下一步怎么办"。随着模型能力变强,越来越多问题会变成:"模型知道太多可能做法,但系统必须决定哪些做法允许执行。"
所以 Agent 开发者需要掌握的不只是 Prompt,还包括 API 设计、权限、状态机、可观测性、测试、沙箱、数据治理和人机审批。
十五、API 使用与 Pro 订阅仍然是两套路径
如果你自己的 Agent 服务使用 API key 调用 gpt-6-astra,按 API 规则计费;这和你在 ChatGPT Pro / Codex 中进行开发是不同路径。一个清晰的架构是:
text
开发 Agent 本身 → Pro + Codex
生产运行 Agent → API + 自己的权限与监控系统
这样最容易控制成本和责任边界。
结语
GPT‑6 Astra + Codex 最值得研究的方向之一,就是 Agent。但专业 Agent 并不是让模型获得最大自由,而是给它足够能力完成任务,同时让系统始终知道它能做什么、正在做什么、什么时候必须停。
对于重度 Agent 开发者,我更倾向 Pro,因为真正的 Agent 项目会频繁触发多轮模型与工具交互,Work / Codex 的持续使用能力比单次聊天上限更重要。模型越来越强之后,最有价值的开发能力反而会回到软件工程本身:边界、验证、状态和责任。
参考资料
- OpenAI:GPT‑6 Astra Model --- https://developers.openai.com/api/docs/models/gpt-6-astra
- OpenAI:Model guidance / Using GPT‑6 Astra --- https://developers.openai.com/api/docs/guides/latest-model
- OpenAI Help:ChatGPT Work and Codex --- https://help.openai.com/en/articles/20001275
- OpenAI Help:GPT‑5.6 and GPT‑6 Pro in ChatGPT --- https://help.openai.com/en/articles/20001354-GPT-5.6