GeoTask Core: deterministic verification for verifiable spatiotemporal AI-agent tasks
Project description
GeoTask
简体中文 | English
Verifiable spatiotemporal task protocol for AI agents.
GeoTask turns spatial, temporal, evidential, resource, and action constraints into explicit YAML tasks that both models and programs can read. GeoTask Core then recomputes supported claims with local deterministic operators, so a fluent model response is not mistaken for a verified result.
- Models propose: objects, assertions, explanations, and candidate actions.
- GeoTask Core verifies: structure, references, operator contracts, deterministic results, and assurance metadata.
- Applications decide: whether a result can continue, must be blocked, needs evidence, or requires review.
A model-generated answer is a proposal. It becomes trustworthy only through an explicit verification path.
Start here
- Try the GT01–GT13 experience
- Quickstart
- White Paper v0.1
- Implemented Language and Execution Specification v1.0
- GT01–GT13 Cookbook
- v0.1.1 PyPI hotfix release notes
- Public roadmap
- Documentation index
Why GeoTask
LLMs can misunderstand coordinates, boundaries, interval semantics, object capabilities, and resource margins. Tool calling solves individual function calls, but it does not by itself preserve task intent, object binding, evidence status, blocked outputs, or resume conditions.
GeoTask provides a task-level intermediate representation:
flowchart LR
A[Natural-language intent] --> B[GeoTask document]
B --> C[Parse and canonicalize]
C --> D[Validate]
D --> E[Deterministic execution]
E --> F[Structured result and assurance]
M[Model-generated proposal] --> G[Comparator]
F --> G
G --> H[verified / contradicted / review]
Five-minute quickstart
python -m pip install geotask-core
geotask --help
geotask inspect operators
Save this minimal task as 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"]
The local executor returns ab = 5.0 meter with assurance_level: local_deterministic.
geotask validate my_distance.yaml
geotask run my_distance.yaml
Public application cases
| Stage | Cases | Main question |
|---|---|---|
| Geometry | GT01–GT03 | What spatial relationship is actually true? |
| Space-time composition | GT04–GT06 | Do horizontal, vertical, and temporal conditions all hold? |
| Uncertainty and evidence | GT07–GT09 | What happens when evidence is missing or conflicting? |
| Action and feasibility | GT10–GT13 | What executable action follows from a verified constraint? |
Selected examples:
- GT07: unknown is not false when a schedule cannot be verified.
- GT09: two individually verified no-fly notices can still conflict.
- GT10: two robots competing for one corridor need an explicit coordination policy.
- GT11: a target 50 meters away may require a 300-meter accessible route.
- GT12: enough energy to arrive is not enough to complete a UAV mission safely.
- GT13: an open road may still be impassable for a specific vehicle envelope.
See the Cookbook for all cases and source files.
Implemented public Core
Canonical object types
point, polyline, rect, time_interval, altitude_interval, and feature_collection.
feature_collection is represented in the Canonical IR; individual operators accept only combinations declared by the operator registry.
Deterministic operators
| Operator | Inputs | Output |
|---|---|---|
distance_2d |
point, point | number |
line_intersects_rect |
polyline, rect | boolean |
point_to_line_distance_2d |
point, polyline | number |
rect_contains_point |
rect, point | boolean |
time_overlap |
time interval, time interval | boolean |
altitude_overlap |
altitude interval, altitude interval | boolean |
Execution chain
parse YAML → canonicalize → validate → execute → GeotaskResult
The public Core includes YAML parsing, Canonical IR, structured diagnostics, deterministic execution, result assembly, assurance metadata, model-output normalization, local verification, CLI commands, JSON Schema, examples, and conformance tests.
Workflow semantics in the weekly cases
The cases also demonstrate unverifiable, conflicted, blocked, evidence_request, blocked_outputs, resume_when, and next_action. These are application or workflow semantics carried through extensions; they must not be confused with every current Core enum.
Not included in the public Core
- Hosted model execution or API keys
- Production orchestration and model routing
- Industry Domain Packs and customer rules
- Private data connectors and approval thresholds
- Automatic device control
- Patent-sensitive optimization and commercial governance
See Target Specification Status and Open Core Boundary.
CLI
geotask validate <file.yaml>
geotask run <file.yaml>
geotask normalize <model-output.txt>
geotask eval <file.yaml> <model-output.txt>
geotask inspect operators
Version map
| Artifact | Current version | Meaning |
|---|---|---|
| GeoTask Core package | 0.1.1 |
Python implementation version |
| GeoTask document schema | 1.0 |
YAML/JSON document format |
| Language specification | 1.0 |
Implemented public normative profile |
| White paper | 0.1 |
Public conceptual draft |
Documentation
- English documentation index
- 中文文档导航
- JSON Schema
- Status and Assurance Model
- Evidence, Conflict, Blocking, and Recovery
- Architecture
- Operator extension guide
Contributing
Read CONTRIBUTING.md or 中文贡献指南. Bug reports, operator proposals, documentation improvements, and new application-case ideas are welcome.
Use an editable source install only when contributing to development:
git clone https://github.com/stpku/GeoTask.git
cd GeoTask
python -m pip install -e ".[dev]"
pytest
License and boundary
GeoTask Core is released under the MIT License. Public code, specifications, and examples are separate from private Runtime, Domain Packs, customer data, and patent-sensitive implementation details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file geotask_core-0.1.1.tar.gz.
File metadata
- Download URL: geotask_core-0.1.1.tar.gz
- Upload date:
- Size: 69.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b2d2020d29ea4005508b24f4e0b8404540d5077304233d835a38f4bf579bb2e
|
|
| MD5 |
a6e83969807683b7d51003f47fd0d84a
|
|
| BLAKE2b-256 |
84dd73fe8c38a1a5f4b9a34ca3ae1de99320342884f7241599948e756f654fd8
|
Provenance
The following attestation bundles were made for geotask_core-0.1.1.tar.gz:
Publisher:
publish-pypi.yml on stpku/GeoTask
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
geotask_core-0.1.1.tar.gz -
Subject digest:
0b2d2020d29ea4005508b24f4e0b8404540d5077304233d835a38f4bf579bb2e - Sigstore transparency entry: 2257421367
- Sigstore integration time:
-
Permalink:
stpku/GeoTask@720358ac78baa0bbb4aa48b62e3eba04ba617a35 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/stpku
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@720358ac78baa0bbb4aa48b62e3eba04ba617a35 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file geotask_core-0.1.1-py3-none-any.whl.
File metadata
- Download URL: geotask_core-0.1.1-py3-none-any.whl
- Upload date:
- Size: 71.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff03144b9afcc3e44950744438006cfa4afe74b42a064915315f02b93e158c0e
|
|
| MD5 |
21c4240d5cb5f33a61ec8fe297c0fda7
|
|
| BLAKE2b-256 |
24b594d7cbe4dcd24f983d078bb54e9aada30d56d810fd935c76b35208815b67
|
Provenance
The following attestation bundles were made for geotask_core-0.1.1-py3-none-any.whl:
Publisher:
publish-pypi.yml on stpku/GeoTask
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
geotask_core-0.1.1-py3-none-any.whl -
Subject digest:
ff03144b9afcc3e44950744438006cfa4afe74b42a064915315f02b93e158c0e - Sigstore transparency entry: 2257421379
- Sigstore integration time:
-
Permalink:
stpku/GeoTask@720358ac78baa0bbb4aa48b62e3eba04ba617a35 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/stpku
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@720358ac78baa0bbb4aa48b62e3eba04ba617a35 -
Trigger Event:
workflow_dispatch
-
Statement type: