AI规划跑步路线27分钟,作者:过程不可见是反特性
使用GPT-6 Astra和ChatGPT Work生成跑步路线
2026年9月12日
今天早上我做了一件很巧妙的事:让ChatGPT Work配合GPT-6 Astra(Max)做以下事情:
我住在<我的地址>。帮我找出从我家出发、绕圈返回的5K和10K跑步路线。使用OSM数据。
它工作了27分钟,产出了我所要求的精确结果——既是嵌入式可视化,也是可下载的GPX文件和GeoJSON文件。这是那条5K路线:
当我问它是如何创建路线时,它回答:
我使用Nominatim定位地址,使用Overpass下载当地的OpenStreetMap道路和路径,然后在本地计算环线。
令人沮丧的是,它实际运行的代码和具体操作细节在ChatGPT UI中对我不可见。我认为这种透明度的缺失是一个反特性(anti-feature)。
等我想到要索取它使用的Python代码副本时,ChatGPT已经无法提供了。这似乎是因为线程已被压缩(compacted)。我认为任何使用压缩的LLM系统都需要既保留压缩前的文本,又通过agent工具调用使这些文本可获取,以防止这类问题。
至于向我显示地图,它使用了visualize技能。它创建了一个名为/workspace/el-granada-5k-share.html的文件,直接嵌入到ChatGPT UI中。
以下是该HTML的副本,开头如下:
<div id="eg-share-loop">
<div class="viz-row"><h3>El Granada harbor loop</h3><span class="text-small">5.1 km</span></div>
<div id="eg-share-stage"></div>
<div class="text-small text-muted">Map data © <a href="https://www.openstreetmap.org/copyright" target="_blank" rel="noopener">OpenStreetMap contributors</a></div>
<style>
#eg-share-loop { width:100%; }
#eg-share-loop #eg-share-stage { width:100%; margin:8px 0; }
#eg-share-loop .eg-share-map { display:block; width:100%; touch-action:none; }
#eg-share-loop .eg-share-map text { fill:var(--foreground); font-size:12px; font-weight:400; }
#eg-share-loop .eg-share-label { paint-order:stroke; stroke:var(--background); stroke-width:3px; stroke-linejoin:round; }
</style>
<script type="application/json" id="eg-share-data">{"route":{"type":"LineString","coordinates":[[-122.467425,37.4997753] ...</script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/d3.min.js"></script>
<script>
(() => {
const root=document.getElementById('eg-share-loop');
上述<script type="application/json">元素包含了渲染跑步路线和地图本身所需的完整几何数据,使用D3渲染,D3从visualize技能本节所述的允许列表CDN位置加载:
外部资源
CSP仅允许cdnjs.cloudflare.com、esm.sh、cdn.jsdelivr.net、unpkg.com、fonts.googleapis.com、fonts.gstatic.com和fonts.bunny.net。其他来源会被阻止并静默失败。