{"slug": "portal-agent-astra-reaches-portal-endgame", "title": "Portal Agent – Astra reaches Portal endgame", "summary": "A developer using OpenAI's GPT-6 Astra model completed Valve's Portal game in about 23 hours 43 minutes on September 5, 2026, with the AI agent controlling gameplay through a custom SourcePauseTool and local MCP server. The run, which reached the end credits, is documented in a public repository with setup instructions and a session log.", "body_md": "This is the setup I used for my **GPT-6 Astra Portal run**, which reached the end credits on September 5, 2026 (San Francisco time, PDT / UTC−7).\n\n**Portal pauses while the agent thinks.** The agent sees screenshots, player position, and camera angles, chooses its next inputs, then lets the game advance and checks the result.\n\n``` php\nflowchart LR\n    A[Codex / GPT-6 Astra] -->|JavaScript plan| B[Local MCP server]\n    B -->|TCP on 127.0.0.1:27182| C[Custom SourcePauseTool]\n    C -->|Play N ticks, then pause| D[Portal]\n    D -->|Screenshot + position + facing| C\n    C --> B\n    B --> A\n```\n\nThe run used `gpt-6-astra` with `max` reasoning effort and took about **23 hours 43 minutes**, including capacity interruptions and waiting. I resumed it after capacity errors and switched to Fast mode. The agent handled gameplay throughout; after the initial goal, my only additional instruction was to leave the credits rolling.\n\n- **[How it works](/cozyblaze/portal-agent/blob/main/docs/how-it-works.md)** — what the agent saw and controlled.\n- **[Run it yourself](/cozyblaze/portal-agent/blob/main/docs/setup.md)** — the tested Windows setup.\n- **[Read the session log](/cozyblaze/portal-agent/blob/main/evidence/README.md)** — the agent's messages, actions, and results.\n\nThe controller and SourcePauseTool changes here are the versions used during the run. Game files are not included; you'll need your own copy of Portal.\n\n## Source files and technical reference\n\n| Folder | Contents | \n|---|---|\n| `controller/` | Game controller, [API reference](/cozyblaze/portal-agent/blob/main/controller/mcp/portal-documentation.md) , and tests | \n| `run/` | Agent instructions and configuration template | \n| `game-config/` | Game settings and the SPT loader file | \n| `spt/` | SourcePauseTool changes and [version details](/cozyblaze/portal-agent/blob/main/spt/UPSTREAM.json) | \n| `evidence/` | Sanitized session log and summary | \n| `tools/` | Setup and export helpers | \n\nController code uses [MIT](/cozyblaze/portal-agent/blob/main/controller/LICENSE); SourcePauseTool retains its [upstream license](/cozyblaze/portal-agent/blob/main/spt/LICENSE) and [credits](/cozyblaze/portal-agent/blob/main/spt/NOTICE). Portal belongs to Valve. Documentation and session evidence have no additional license grant.\n\nPersonal information and embedded screenshots were removed from the shared log. See [privacy notes](/cozyblaze/portal-agent/blob/main/docs/publication.md).", "url": "https://wpnews.pro/news/portal-agent-astra-reaches-portal-endgame", "canonical_source": "https://github.com/cozyblaze/portal-agent/tree/main", "published_at": "2026-09-07 17:47:31+00:00", "updated_at": "2026-09-07 18:01:44.176762+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-agents", "ai-research"], "entities": ["OpenAI", "GPT-6 Astra", "Valve", "Portal", "SourcePauseTool", "MCP"], "alternates": {"html": "https://wpnews.pro/news/portal-agent-astra-reaches-portal-endgame", "markdown": "https://wpnews.pro/news/portal-agent-astra-reaches-portal-endgame.md", "text": "https://wpnews.pro/news/portal-agent-astra-reaches-portal-endgame.txt", "jsonld": "https://wpnews.pro/news/portal-agent-astra-reaches-portal-endgame.jsonld"}}