Skip to content

Repository files navigation

GeoTask

简体中文 | English

面向AI智能体的可验证时空任务协议

License: MIT Python 3.10+ CI Pages Release PyPI

GeoTask把自然语言中的空间、时间、证据、资源和行动约束转换为结构化任务,并通过本地确定性计算验证模型结果。

  • 模型负责提出: 对象、断言、解释和候选动作;
  • GeoTask Core负责验证: 结构、引用、算子契约、确定性结果和可信等级;
  • 上层应用负责决策: 继续执行、阻断任务、补充证据或进入人工复核。

模型生成的答案只是候选结论。只有经过明确验证路径,才能成为可信结果。

从这里开始

为什么Agent需要GeoTask

大模型擅长理解和生成,却可能在坐标顺序、边界语义、时间区间、高度范围、对象能力和安全余量上产生错误。一次Tool Calling可以完成局部函数调用,但通常不能完整保留:

  • 任务要解决什么问题;
  • 哪些对象参与计算;
  • 对象采用什么单位和坐标参考;
  • 哪些结论由模型提出,哪些由本地算子产生;
  • 缺少证据时应阻断什么;
  • 条件恢复后从哪里继续。

GeoTask提供任务级中间表示:

flowchart LR
  A[自然语言任务] --> B[GeoTask文档]
  B --> C[解析与规范化]
  C --> D[结构验证]
  D --> E[本地确定性执行]
  E --> F[结构化结果与可信等级]
  M[模型生成候选结论] --> G[比较验证]
  F --> G
  G --> H[verified / contradicted / review]
Loading

5分钟运行

python -m pip install geotask-core
geotask --help
geotask inspect operators

将下面的最小任务保存为my_distance.yaml

geotask:
  id: "example"
  schema_version: "1.0"

objects:
  a: {type: "point", coordinates: [0, 0]}
  b: {type: "point", coordinates: [3, 4]}

operator_set: [distance_2d]

tasks:
  - id: "calc"
    assertions:
      - id: "ab"
        operator: "distance_2d"
        object_refs: ["a", "b"]

本地执行器会得到:

ab = 5.0 meter
assurance_level = local_deterministic
geotask validate my_distance.yaml
geotask run my_distance.yaml

20个公开应用案例

GeoTask不是只展示几个几何函数,而是通过机器人、无人机、车辆和低空任务,逐步展示AI如何可靠地理解、执行和验证时空任务。

阶段 案例 核心问题
空间关系 GT01—GT03 距离、边界接触和多段路线到底是什么关系?
时空组合 GT04—GT06 水平、高度和时间条件是否同时成立?
不确定性与证据 GT07—GT09 缺证据或证据冲突时,系统应该怎么办?
行动与可行性 GT10—GT20 约束确认以后,下一步具体执行什么?

重点案例:

  • GT07: 时间条件无法核验时,unknown不能被偷换成false
  • GT09: 两份分别已核验的临时禁飞通知仍可能互相冲突;
  • GT10: 两台机器人抢同一条窄通道,需要显式协调规则;
  • GT11: 目标只有50米,轮式机器人却可能必须绕行300米;
  • GT12: 无人机电量够到达,不等于能保留安全余量完成任务;
  • GT13: 道路开放,不等于具体车辆的安全包络能够通过;
  • GT14: 距离最近,不等于救援队能够最早到达并满足响应时限;
  • GT15: 地图结构可通行,不等于机器人当前路线没有被实时障碍占据;
  • GT16: 两条无人机路线相交,不等于它们会在同一高度和同一时刻发生碰撞;
  • GT17: 十次上报不等于十起事件,应合并为一个任务并保留十份来源证据;
  • GT18: 最短路线能够到达目标,不等于它满足环境风险和救援机器人耐受能力约束;
  • GT19: 无人机到达目标上空,不等于投放区已经净空并获得载荷释放授权;
  • GT20: 车辆获得绿灯,不等于下游出口净空且能够完整驶离路口。

完整案例、源码和学习路径见中文案例手册

当前公共Core真正支持什么

Canonical对象类型

pointpolylinerecttime_intervalaltitude_intervalfeature_collection

其中feature_collection已经进入Canonical IR,但具体算子只接受算子注册表中声明的对象组合。

六个本地确定性算子

算子 输入 输出
distance_2d 点、点 数值
line_intersects_rect 折线、矩形 布尔值
point_to_line_distance_2d 点、折线 数值
rect_contains_point 矩形、点 布尔值
time_overlap 时间区间、时间区间 布尔值
altitude_overlap 高度区间、高度区间 布尔值

执行主链

解析YAML → Canonical IR → 验证 → 执行 → GeotaskResult

公共Core已经包含:

  • YAML解析与兼容处理;
  • Canonical IR;
  • 结构化诊断;
  • 算子注册与确定性执行;
  • 结果汇总和Assurance等级;
  • 模型输出归一化;
  • 模型结果与本地结果比较;
  • CLI、JSON Schema、案例和一致性测试。

案例扩展语义

GT07—GT20还展示了:

unverifiable
conflicted
blocked
evidence_request
blocked_outputs
resume_when
next_action

这些主要属于案例层或工作流扩展语义,通常放在extensions中;它们不能被误写为当前Core已经全部实现的基础枚举。

当前不包含什么

公共Core不包含:

  • 托管大模型调用和模型密钥;
  • 生产级任务编排、模型路由和成本治理;
  • 行业Domain Pack和客户规则;
  • 私有数据连接器、审批阈值和评分模型;
  • 自动设备控制;
  • 专利敏感优化方法和商业运行逻辑。

详见目标规范状态开源Core边界

CLI

geotask validate <file.yaml>
geotask run <file.yaml>
geotask normalize <model-output.txt>
geotask eval <file.yaml> <model-output.txt>
geotask inspect operators

版本说明

名称 当前版本 含义
GeoTask Core包 0.2.0 Python实现版本
GeoTask文档Schema 1.0 YAML/JSON任务格式版本
语言与执行规范 1.0 当前公共实现规范
白皮书 0.1 公开概念草案

文档

参与项目

欢迎提交:

  • Bug和结构化诊断问题;
  • 通用确定性算子建议;
  • 文档与中文表达改进;
  • 新的机器人、无人机、自动驾驶和城市治理案例;
  • 对状态、证据和恢复语义的讨论。

请阅读中文贡献指南English Contributing Guide

参与开发时再使用源码安装:

git clone https://github.com/stpku/GeoTask.git
cd GeoTask
python -m pip install -e ".[dev]"
pytest

开源许可与边界

GeoTask Core使用MIT License。公开代码、规范和案例,与私有Runtime、Domain Pack、客户数据及专利敏感实现保持明确分离。

About

GeoTask — 面向AI智能体的可验证时空任务协议 | Verifiable spatiotemporal task protocol for AI agents.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages