From aed9e6d636fc8939cc5959bb6986d5ce7f6a565d Mon Sep 17 00:00:00 2001 From: stpku <83755634+stpku@users.noreply.github.com> Date: Thu, 27 Aug 2026 09:48:33 +0800 Subject: [PATCH 01/17] docs: reposition GeoTask as task context engine --- README.md | 497 +++++++++++++++++++++--------------------------------- 1 file changed, 195 insertions(+), 302 deletions(-) diff --git a/README.md b/README.md index 00668dbf..ac8b83e4 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,9 @@ **简体中文** | [English](README.en.md) -> **面向AI智能体的可验证时空任务协议与确定性核心** +> **GeoTask 是面向 AI Agent 的时空任务上下文引擎(Spatiotemporal Task Context Engine)。** > -> 当前:把观察、证据、世界状态和行动条件转化为可计算、可更新、可追溯的机器契约。 -> 近期:形成可信世界状态运行时的Reference Agent与开发者产品。 -> 长期:成为高风险物理世界智能体的可信任务基础设施之一。 +> 它不试图把“整个世界”塞进 Agent 的上下文,而是围绕当前任务,构造**真正需要、适用、分辨率足够且可明确判断充分性**的最小上下文。 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/) @@ -15,356 +13,251 @@ [![Release](https://img.shields.io/github/v/release/stpku/GeoTask?include_prereleases&label=release)](https://github.com/stpku/GeoTask/releases) [![PyPI](https://img.shields.io/pypi/v/geotask-core)](https://pypi.org/project/geotask-core/) -```bash -pip install geotask-core -geotask inspect capabilities -geotask inspect health -geotask agent demo --output ./geotask-reference-agent -``` +## 为什么是 Task Context,而不是“更多上下文” -`inspect capabilities` 从已安装包现有的 Operator、Artifact、Schema、Runtime/Provider 接口、Reference Agent 与 Benchmark 元数据中生成公共 Core 能力索引,不扫描外部插件、真实 Runtime/Provider 或行业 Pack,也不新增任何 Artifact/Schema/Operator。`inspect health` 会继续检查这些安装能力及 Schema/Artifact/Operator 注册表、Reference Agent bundle 与固定离线 benchmark;它不访问网络、不调用模型、不接触生产系统,其诊断结果也不是注册 GeoTask Artifact,不代表现实正确性。随后,`agent demo` 会校验安装包内的 Reference Agent 教材 bundle、生成一个可自由修改的本地工作目录,并立即执行一次确定性成功场景重放;它不会读取外部真实数据、写生产状态或授权现实动作。 - -GeoTask把多模态模型、传感器、地图、权威数据和人工输入转化为显式的世界对象、时空关系、状态、证据和行动约束,构建可计算、可验证、可更新、可追溯的时空世界状态。它不是把整个世界隐式压进一个神经网络,而是让智能体依赖的现实事实能够被查看、复算、纠偏和持续维护。 - -- **多模态模型负责感知与开放推理:** 从文本、地图、图像、视频和状态数据中形成观测、假设与方案; -- **GeoTask核心负责世界状态规范与验证内核:** 显式表达对象、坐标、时间、关系、证据和命题,并用本地确定性路径验证; -- **验证与控制机制负责维护世界:** 保留已证实事实,标记冲突和未知,限定纠偏范围,并管理行动资格; -- **运行时与行业能力包负责连接现实:** 接入权威数据、行业规则、本地预测模型、人工复核和生产动作。 - -> **工程边界:** GeoTask核心提供可验证时空世界模型的公共状态规范、接口契约、验证内核和制品基础,“可验证时空任务协议”仍是当前实现形式。当前公共实现覆盖观测记录、世界状态、受限观测合并、状态转换、验证会话、差异报告、纠偏请求、影响图、受限重算推导、受限后继状态物化、增量复核结果,以及验证提供方描述符、验证请求、验证响应、可信保证策略、对象同一性审定、对象身份归并提案、对象身份归并审批记录、对象关系图变更请求和对象关系图变更应用审批记录。公共核心只校验结构、语义和原始字节级绑定,不获取外部事实、不推断未声明的来源优先级、不发布生产环境输出,也不授权或执行现实动作。 - -## 从这里开始 - -- [体验42个公开可验证示例(38个场景入口)](https://stpku.github.io/GeoTask/) -- [English ecosystem homepage](https://stpku.github.io/GeoTask/en/) -- [5分钟中文入门](docs/tutorials/quickstart.zh-CN.md) -- [GeoTask白皮书v0.1](docs/whitepaper/GeoTask_White_Paper_v0.1.md) -- [白皮书英文摘要](docs/whitepaper/GeoTask_White_Paper_v0.1.md#english-abstract) -- [GT01—GT20中文案例手册](docs/cookbook/gt01-gt20.zh-CN.md) -- [GT21—GT28世界状态循环案例手册](docs/cookbook/gt21-gt28.zh-CN.md) -- [GT38—GT42无人机身份治理复合案例](docs/cookbook/gt38-gt42-uav-identity-governance.zh-CN.md) -- [当前实现语言与执行规范v1.0](docs/spec/geotask-language-spec-v1.0.md) -- [Observation v0.1](docs/spec/geotask-observation-v0.1.md) -- [World State v0.1](docs/spec/geotask-world-state-v0.1.md) -- [Observation Merge Result v0.1](docs/spec/geotask-observation-merge-result-v0.1.md) -- [State Transition v0.1](docs/spec/geotask-state-transition-v0.1.md) -- [Verification Session v0.1](docs/spec/geotask-verification-session-v0.1.md) -- [Discrepancy Report v0.1](docs/spec/geotask-discrepancy-report-v0.1.md) -- [Correction Request v0.1](docs/spec/geotask-correction-request-v0.1.md) -- [Impact Graph v0.1](docs/spec/geotask-impact-graph-v0.1.md) -- [Recompute Derivation Result v0.1](docs/spec/geotask-recompute-derivation-result-v0.1.md) -- [World State Materialization Result v0.1](docs/spec/geotask-world-state-materialization-result-v0.1.md) -- [Incremental Reevaluation Result v0.1](docs/spec/geotask-incremental-reevaluation-result-v0.1.md) -- [Agent集成Profile v0.1](docs/spec/geotask-agent-integration-profile-v0.1.md) -- [运行时接口规范 v0.1](docs/spec/geotask-runtime-interface-profile-v0.1.md) -- [验证提供方接口规范 v0.1](docs/spec/geotask-verification-provider-profile-v0.1.zh-CN.md) -- [对象关系图变更请求 v0.1](docs/spec/geotask-object-graph-change-request-v0.1.md) -- [中文术语规范](docs/terminology.zh-CN.md) -- [GeoTask核心智能体技能](skills/geotask-core/SKILL.md) -- [VS Code Schema配置示例](.vscode/settings.json) -- [v0.4.1 能力发现与发布加固维护版说明](docs/release_v0_4_1.md) -- [v0.4.0 Core产品化与Reference Agent发布说明](docs/release_v0_4_0.md) -- [v0.3.0 Agent集成版发布说明](docs/release_v0_3_0.md) -- [v0.2.0制品契约版发布说明](docs/release_v0_2_0.md) -- [架构宣言 v1](docs/architecture_manifesto_v1.md) -- [GeoTask Architecture Series v0.1](docs/articles/architecture-series/README.zh-CN.md) -- [Reference Agent v0.1 规格](docs/reference/reference-agent-v0.1.md) -- [运行 Reference Agent:虚构低空设施评估更新](examples/reference_agent/facility_assessment_update/README.md) -- [Reference Agent从零教程](docs/tutorials/reference-agent.zh-CN.md) -- [Verification Quality Benchmark v0.1](docs/reference/verification-quality-benchmark-v0.1.md) —— 安装包可直接运行 `geotask benchmark quality` -- [Verification Quality Benchmark v0.2](docs/reference/verification-quality-benchmark-v0.2.md) —— `geotask benchmark quality --suite perturbation` 运行34个确定性合成扰动案例,不外推为现实准确率或跨域泛化 -- [GeoTask ↔ Lowa-GT Integration Contract v0.1](docs/reference/lowa-gt-integration-contract-v0.1.md) -- [Cross-Line Promotion Gate v0.1](docs/reference/cross-line-promotion-gate-v0.1.md) -- [Core Distribution Boundary v0.1](docs/reference/core-distribution-boundary-v0.1.md) -- [产品化路线图 v0.2](docs/productization_roadmap_v0_2.md) -- [公共路线图](ROADMAP.md) -- [中文文档导航](docs/README.md) +Agent 进入真实任务后,问题通常不是“有没有数据”,而是: -## 智能体为什么需要可验证的世界模型 +- **这个任务到底需要知道什么?** +- **某条信息虽然相关,但对当前对象、空间、时间和条件真的适用吗?** +- **它的空间/时间/语义分辨率足够支持当前任务吗?** +- **已有上下文是否足够,还是仍存在关键缺口?** +- **能否减少无关上下文,同时不漏掉关键上下文?** +- **现实发生变化后,哪些 Requirement 需要重评,哪些上下文可以继续复用?** -多模态大模型越来越会看懂场景、调用工具和生成计划,但模型内部的“世界理解”通常隐含在上下文、向量或参数中。进入真实行动前,智能体还需要一个外显、共享、可验证的世界状态,持续回答: +GeoTask 将这些问题变成显式、可组合、可测试的 Task Context 合同与方法。 -- 世界中有哪些对象,它们在哪里、何时存在、处于什么状态; -- 哪些关系和约束已经成立,哪些仍然未知、冲突或缺少证据; -- 新观察到来后,哪些世界状态和结论需要更新或失效; -- 哪些事实来自模型、传感器、权威数据或人工复核; -- 当前世界状态允许智能体采取什么行动。 +```text +Task + ↓ +derive requirements + ↓ +discover candidates + ↓ +Relevance + ↓ +Applicability + ↓ +Resolution Adequacy + ↓ +Sufficiency + ↓ +Minimum Sufficient TaskContext + ↓ +Explicit Gaps / Trace / Cost +``` -一次Tool Calling可以完成局部函数调用,却不会自动维护对象身份、世界快照、证据状态、变化影响和行动边界。GeoTask把这些信息组织为可验证、可审计的世界模型原语与Artifact: +## 核心语义 -```mermaid -flowchart LR - O[多模态观察与外部状态] --> W[显式时空世界状态] - W --> R[关系、约束与世界命题] - R --> V[本地验证与证据治理] - V --> U[状态更新、纠偏与复核] - U --> G[行动资格与外部Runtime] - N[新观察到来] --> W -``` +当前公共 Core 已提供面向 Task Context 的一组稳定原语与组合接口,包括: -当前公共核心已经实现世界对象与空间参考约束、来源与证据绑定、观测记录、世界状态、受限观测合并、状态转换、验证会话、差异报告、纠偏请求、影响图、来源绑定的受限重算推导、受限后继状态物化、增量复核结果、验证提供方公共接口契约、对象同一性审定、对象身份归并提案、对象身份归并审批记录、对象关系图变更请求、对象关系图变更应用审批记录、世界命题、确定性关系验证、控制状态、智能体机械修复和限定路径重试。自动差异计算、未声明策略的歧义冲突消解、影响关系自动发现与传播执行、对象关系图变更应用与应用结果以及通用推导方法仍属于后续路线图。 +- `TaskFrame` +- `ContextRequirement` +- `ContextCandidate` +- `RelevanceResult` +- `ApplicabilityResult` +- `ResolutionRequirement` / `ResolutionAdequacyResult` +- `ContextAssessment` +- `ContextGap` +- `SufficiencyAssessment` +- `TaskContext` +- `ContextConstructionTrace` +- `ContextMinimalityAssessment` +- `MinimumSufficientTaskContext` +- Temporal Reassessment / Continuity contracts -## 5分钟运行 +这些对象刻意保持几个边界: -```bash -python -m pip install geotask-core -geotask --help -geotask inspect operators +```text +Context ≠ World State +Relevant ≠ Applicable +Applicable ≠ Sufficient +Candidate exists ≠ Requirement satisfied +Large payload ≠ Sufficient context +Provider returned a value ≠ Valid task context +Context sufficient ≠ Domain decision +Context sufficient ≠ Action authorization ``` -将下面的最小任务保存为`my_distance.yaml`: +## GeoTask 负责什么 -```yaml -geotask: - id: "example" - schema_version: "1.0" +GeoTask 负责 **Task-relative Context**: -objects: - a: {type: "point", coordinates: [0, 0]} - b: {type: "point", coordinates: [3, 4]} +1. 用 `TaskFrame` 明确当前任务、目标与作用域; +2. 从任务导出或接收 `ContextRequirement`; +3. 从 GIS、API、Sensor、Database、WorldState 或其他 Provider 获取 `ContextCandidate`; +4. 分别评估 Relevance、Applicability 与 Resolution Adequacy; +5. 显式形成 Requirement-level Assessment 与 Gap; +6. 由明确方法组合 `SufficiencyAssessment`; +7. 构造 `TaskContext`,并在不增加 Critical Context Miss 的前提下寻找 Minimum Sufficient Context; +8. 当 Provider / Reality 变化时,仅重评受影响 Requirement,并尽量复用未受影响 Context。 -operator_set: [distance_2d] +GeoTask **不拥有世界真值**,也不替代 Agent Harness、GIS、数据库、知识图谱、RAG 系统或领域决策系统。 -tasks: - - id: "calc" - assertions: - - id: "ab" - operator: "distance_2d" - object_refs: ["a", "b"] +```text +World / Data Providers +WorldState · GIS · API · Sensor · Database · GSTAR · ... + │ + ▼ + ┌─────────┐ + │ GeoTask │ + │ Task │ + │ Context │ + └────┬────┘ + │ + ▼ + Agent / Harness + │ + ▼ + Domain Decision / Action ``` -本地执行器会得到: +**Provider 可以告诉 GeoTask“候选事实是什么”;GeoTask 判断的是“它对当前任务是否需要、适用、足够”。** -```text -ab = 5.0 meter -assurance_level = local_deterministic -``` +## North Star:充分,而不是堆积 -```bash -geotask validate my_distance.yaml -geotask run my_distance.yaml -``` +GeoTask 的长期目标是: -## 42个公开可验证示例,38个场景入口 - -GeoTask不是只展示几个几何函数,而是通过机器人、无人机、车辆和低空任务,逐步展示模型方案如何被结构化、复算、验错、补证、纠偏和行动门控。其中GT38—GT42不是五个彼此独立的应用案例,而是“巡检无人机UAV-017失联后重新编号”的一个五阶段身份治理复合案例。 - -| 阶段 | 案例 | 核心问题 | -|---|---|---| -| 空间关系 | GT01—GT03 | 距离、边界接触和多段路线到底是什么关系? | -| 时空组合 | GT04—GT06 | 水平、高度和时间条件是否同时成立? | -| 不确定性与证据 | GT07—GT09 | 缺证据或证据冲突时,系统应该怎么办? | -| 行动与可行性 | GT10—GT20 | 约束确认以后,下一步具体执行什么? | -| 世界状态循环 | GT21—GT28 | 多源观测、状态变化、影响范围、限定纠偏和行动门禁怎样闭环? | -| 验证提供方生态 | GT29—GT32 | 多个外部来源冲突、显式裁决、渐进授权和行动门禁怎样形成独立可信保证? | -| 动态世界对象 | GT33—GT37+GT38—GT42复合案例 | 前五例处理轨迹与同一性候选;后五个参考例共同描述UAV-017失联后重新编号的证据审定、归并提案、审批、变更请求和应用审批。 | - -重点案例: - -- **GT07:** 时间条件无法核验时,`unknown`不能被偷换成`false`; -- **GT09:** 两份分别已核验的临时禁飞通知仍可能互相冲突; -- **GT10:** 两台机器人抢同一条窄通道,需要显式协调规则; -- **GT11:** 目标只有50米,轮式机器人却可能必须绕行300米; -- **GT12:** 无人机电量够到达,不等于能保留安全余量完成任务; -- **GT13:** 道路开放,不等于具体车辆的安全包络能够通过; -- **GT14:** 距离最近,不等于救援队能够最早到达并满足响应时限; -- **GT15:** 地图结构可通行,不等于机器人当前路线没有被实时障碍占据; -- **GT16:** 初始计划已验证,不等于新遥测到来后可以停止监测;延误使预测间隔从120秒缩至80秒,系统应保留有效结论并准备增量复核; -- **GT17:** 十次上报不等于十起事件,应合并为一个任务并保留十份来源证据; -- **GT18:** 最短路线能够到达目标,不等于它满足环境风险和救援机器人耐受能力约束; -- **GT19:** 无人机到达目标上空,不等于投放区已经净空并获得载荷释放授权; -- **GT20:** 车辆获得绿灯,不等于下游出口净空且能够完整驶离路口; -- **GT21:** 遥测显示延误60秒,运行审核记录显示55秒时,AI不能按到达顺序覆盖、取平均或自行判断来源权威;必须暴露冲突并执行业务方明确声明的规则; -- **GT22:** 无人机的位置和电量来自两个系统时,AI不能简单拼接“最新字段”;必须先确认对象、时间和字段归属,才能形成可追溯的统一运行快照; -- **GT23:** 无人机飞行五分钟后位置和电量都变化时,不能只覆盖最新值;必须保留前后快照,绑定300秒时间差,并明确记录位置、电量和对象有效期变化; -- **GT24:** 临时禁飞区发布后,不能把全部任务一律重算,也不能只更新地图;必须沿显式依赖链只复核相交航线、对应任务、审批结论和起飞动作; -- **GT25:** 无人机位置从走廊100米更新到130米后,只重算与位置相关的起重机和通信塔距离,同时保留固定设施间距与电池余量; -- **GT26:** 飞行服务站营业时间从08:00—22:00调整为09:00—18:00后,只替换营业计划,保留位置、频率、服务类型和联系方式,并阻断20:30任务直至复核; -- **GT27:** 东区风速由6升至12米/秒后,只复核同区域且处于更新生效时段的任务A、D;任务A变为不适飞,任务D复核后仍适飞,任务B、C继续复用; -- **GT28:** 路线、高度、天气窗口和风速预检全部通过,但空域、运营人、起降场、气象放行和任务授权仍缺失;预检结论可引用,自动起飞授权与起飞指令保持阻断; -- **GT29:** 模拟气象服务给出8米/秒,现场传感器给出13米/秒;两个来源都新鲜且来自不同独立分组,但结果仍然冲突,因此天气结论保持未知并请求第三个独立来源; -- **GT30:** 第三个独立来源也给出13米/秒,形成二比一;但可信保证策略未声明多数表决,因此系统仍保持未知、保留8米/秒少数来源,并请求显式气象审定; -- **GT31:** 人工复核精确绑定三份冲突响应和虚构上下文证据,保留原始读数并将两份13米/秒限定为局部测试气流影响;8米/秒天气结论可用,但自动起飞授权和起飞指令继续阻断; -- **GT32:** 空域、运营人、起降场、气象放行和任务授权逐项到达,未知项从5降至0;最后两个起飞相关输出转为可用,但公共核心不发布结果、不发送指令,也不执行飞行动作; -- **GT33:** 三次带时区位置观测绑定同一移动对象,形成严格递增的离散轨迹并确定性计算持续300秒;公共核心不插值、不预测、不地图匹配,也不执行现实动作。 -- **GT34:** 三次明确观测按相邻顺序绑定为两个轨迹分段,分别计算120/180秒持续时间、60/90个文档水平单位距离和0.5水平单位/秒平均速度;公共核心不把平均速度冒充瞬时速度,不插值、预测或执行动作; -- **GT35:** 调用方显式声明5米停留半径、120秒最短停留时长、300秒最大观测间隔和缺口许可后,三个相邻分段分别输出`stationary_candidate`、`moving_observed`和`observation_gap`;缺口不允许时同一超限分段返回`unverifiable`,公共核心不推断失联、异常或连续停留; -- **GT36:** 以分段中点为代表时刻,在300秒最大观测间隔内计算相邻分段平均速度变化率;前两个转换输出0和1/300水平单位/秒²,第三个转换因下一分段持续600秒而返回`unverifiable`并保持速度差和加速度为`null`,公共核心不推断瞬时或向量加速度、方向变化、未来位置或现实动作; -- **GT37:** 两个不同临时身份绑定的轨迹边界相隔60秒、5米且对象类别相同,在调用方声明的120秒、10米和同类要求下输出`same_object_candidate`对象同一性候选;公共核心保留两个原始身份和`subject_ref`,不自动归并对象、不证明现实身份,也不发布或执行身份更新。 -- **GT38—GT42复合案例:** 虚构巡检无人机UAV-017进入建筑遮挡区后短暂失联,恢复观测时被建立为新的轨迹和临时主体。资产登记系统确认相同Remote ID和设备序列号,人工复核确认任务、机型、运营人和时间连续;GT38形成对象同一性审定,GT39选择原始主体并保留临时主体为别名,GT40记录提案审批,GT41把范围收敛为`track_beta /subject_ref`从`provisional_beta`改为`provisional_alpha`的一项请求,GT42记录应用审批。五个阶段均保持实际引用、对象关系图和World State未变,详见[复合案例手册](docs/cookbook/gt38-gt42-uav-identity-governance.zh-CN.md)。 - -GT01—GT20见[基础案例手册](docs/cookbook/gt01-gt20.zh-CN.md),GT21—GT28见[世界状态循环案例手册](docs/cookbook/gt21-gt28.zh-CN.md),GT29—GT32见[验证提供方接口规范](docs/spec/geotask-verification-provider-profile-v0.1.zh-CN.md),GT33—GT42见[轨迹与移动对象Profile](docs/spec/geotask-trajectory-profile-v0.1.zh-CN.md),GT38审定制品见[Trajectory Identity Adjudication v0.1](docs/spec/geotask-trajectory-identity-adjudication-v0.1.md),GT39归并提案见[Identity Merge Proposal v0.1](docs/spec/geotask-identity-merge-proposal-v0.1.md),GT40审批记录见[Identity Merge Approval Record v0.1](docs/spec/geotask-identity-merge-approval-record-v0.1.md),GT41变更请求见[Object Graph Change Request v0.1](docs/spec/geotask-object-graph-change-request-v0.1.md),GT42应用审批记录见[Object Graph Change Application Approval Record v0.1](docs/spec/geotask-object-graph-change-application-approval-record-v0.1.md)。 - -## 当前公共Core真正支持什么 - -### Canonical对象类型 - -`point`、`polyline`、`multi_polyline`、`polygon`、`rect`、`time_interval`、`altitude_interval`、`feature_collection`、`moving_object`和`trajectory`。 - -`moving_object`只声明稳定身份,不内嵌位置;`trajectory`必须引用一个`moving_object`,包含至少两个严格递增、带时区的二维观测样本,并显式声明`interpolation: none`。`feature_collection`已经进入Canonical IR,但具体算子只接受算子注册表中声明的对象组合。 - -### 十四个本地确定性算子 - -| 算子 | 输入 | 输出 | -|---|---|---| -| `distance_2d` | 点、点 | 数值 | -| `line_intersects_rect` | 折线、矩形 | 布尔值 | -| `multi_polyline_intersects_rect` | 多折线、矩形 | 布尔值 | -| `point_in_polygon` | 点、多边形 | 布尔值 | -| `polygon_contains_point` | 多边形、点 | 布尔值 | -| `point_to_line_distance_2d` | 点、折线 | 数值 | -| `rect_contains_point` | 矩形、点 | 布尔值 | -| `time_overlap` | 时间区间、时间区间 | 布尔值 | -| `altitude_overlap` | 高度区间、高度区间 | 布尔值 | -| `trajectory_duration_seconds` | 离散轨迹 | 秒数 | -| `trajectory_segment_metrics` | 离散轨迹 | 有序分段列表(持续时间、水平距离、平均速度) | -| `trajectory_segment_classifications` | 离散轨迹+显式阈值 | `stationary_candidate`、`moving_observed`、`observation_gap`或`unverifiable`的有序列表 | -| `trajectory_segment_acceleration_estimates` | 离散轨迹+显式中点/间隔参数 | 相邻分段平均速度变化率;缺口转换返回`unverifiable`且数值为`null` | -| `trajectory_identity_candidate` | 两段离散轨迹+显式时间/距离/类别策略 | `same_object_candidate`、`different_object_candidate`或`unverifiable`;不合并身份、不改写引用 | - -### 跨任务空间参考与单位约束 - -同一文档中的全部任务共享一套CRS、坐标顺序、水平/垂直单位和边界语义。平面算子只接受`local_cartesian`或带标识的`projected`坐标,且坐标顺序必须为`[x, y]`;Core不会把经纬度直接当作欧氏坐标,也不会自动换算单位。距离断言与高度对象必须匹配文档单位;当前边界敏感算子只支持`closed`,声明`open`会失败关闭。纯时间任务不受平面CRS门禁影响。 - -### 来源、证据与审计 - -文档可选声明`provenance.sources`、`evidence_bindings`和`audit`。Core严格校验来源ID、类型、URI/Artifact身份、SHA-256、带时区时间、断言绑定和审计引用;通过后将声明的来源ID写入对应`CheckResult.evidence_refs`。该机制不联网获取来源、不重算外部摘要,也不会仅因存在来源元数据而提升Assurance等级。 - -`geotask inspect schemas --format json`还会为每类公共Artifact返回`ide_file_patterns`,可直接用于VS Code YAML、JetBrains或其他支持JSON Schema文件匹配的IDE配置。 - -### 公共一致性与性能基准 +> **Task Sufficiency at Minimum Context Cost** -```bash -geotask benchmark core --enforce-performance --output core-benchmark.json -``` +也就是在保证关键 Requirement 不被遗漏的前提下,用尽可能少、尽可能局部的上下文支撑任务。 + +建议同时观察正指标与反指标: + +| 目标 | Counter Metric | +|---|---| +| Critical Requirement Coverage ↑ | **Critical Context Miss Rate** | +| Sufficiency Accuracy ↑ | **False Sufficiency Rate** | +| Context Reduction ↑ | **Critical Context Miss Rate** | +| Applicability Accuracy ↑ | **Irrelevant / Inapplicable Context Rate** | +| Local Rebuild ↑ | **Unnecessary Context Rebuild** | -该离线基准使用10个固定虚构案例覆盖全部14个公共确定性算子,并检查结果往返、重复执行语义指纹和Provenance证据绑定;同时测量`JSON解码→Canonical化→验证→执行→序列化`全链路。默认100毫秒p95阈值仅用于发现本机严重性能回归,不是跨硬件排名、生产SLA或模型能力评测。报告可作为`geotask.core-benchmark-report`再次严格验证。 +上下文成本不只等于 Token,可以包括网络获取、携带字节、Provider 延迟、人类恢复成本等。 -### 执行主链 +## 已公开的独立消费者:Warehouse Robot Picking + +GeoTask 已提供一个**不依赖官方 WorldState、也不依赖低空领域**的独立消费者示例: ```text -解析YAML → Canonical IR → 验证 → 执行 → GeotaskResult +Indoor GIS / topology +Inventory API +Aisle-clearance sensor + ↓ +TaskFrame + ↓ +ContextRequirement[] + ↓ +ContextCandidate[] + ↓ +Relevance / Applicability / Resolution Adequacy + ↓ +SufficiencyAssessment + ↓ +Minimum Sufficient TaskContext + ↓ +Sensor change + ↓ +Bounded Temporal Reassessment ``` -公共Core已经包含: +示例中特意保留一个关键语义:**即使测得通道比机器人更窄,只要这个测量本身相关、适用、新鲜且分辨率足够,GeoTask 仍可以判断“上下文充分”;但它不会因此判断“机器人可以通行”。** 领域安全判断与动作授权仍属于下游系统。 + +- [Warehouse Robot Picking 示例](examples/independent_consumers/warehouse_robot_picking/README.md) + +## 安装与现有工具 -- YAML解析与兼容处理; -- Canonical IR; -- 结构化诊断; -- 算子注册与确定性执行; -- 结果汇总和Assurance等级; -- 模型输出归一化; -- 模型结果与本地结果比较; -- Agent工具契约发现、生成草稿机械修复、结构化修订请求、差异约束重试、四类报告Artifact离线验证与GT08补证据恢复; -- CLI、JSON Schema、案例和一致性测试。 +```bash +pip install geotask-core +geotask inspect capabilities +geotask inspect health +``` -## 案例扩展语义 +当前公共包同时保留既有确定性算子、Artifact、Verification、Runtime/Provider、Reference Agent 与 Benchmark 能力。它们是 GeoTask 演化过程中已经发布的公共兼容资产;**新的长期语义所有权以 Task Context Engine 为主线**。 -GT07—GT20还展示了: +如果想直接查看 Task Context Engine 的组合方式,优先从独立消费者开始: -```text -unverifiable -conflicted -blocked -evidence_request -blocked_outputs -resume_when -next_action +```bash +python - <<'PY' +from examples.independent_consumers.warehouse_robot_picking.consumer import ( + build_warehouse_pick_context, +) + +run = build_warehouse_pick_context() +print(run.construction.sufficiency.status) +print(len(run.construction.context.values), len(run.minimum.context.values)) +PY ``` -这些仍是`extensions`中的控制与工作流语义,而不是基础`ClaimStatus`枚举。当前公共Core已经通过`geotask.control/1.0`对其进行严格校验和只读评估,并支持单一命名条件的补证据后重新执行;恢复过程可输出并离线验证`geotask.agent-evidence-recovery` Artifact。真实证据获取、审批和动作执行仍属于外部Runtime或Domain Pack。 +预期高层结果: -## 当前不包含什么 +```text +sufficient +4 3 +``` -公共Core不包含: +该示例是确定性参考实现,不代表真实仓储集成或机器人安全认证。 -- 托管大模型调用和模型密钥; -- 生产级任务编排、模型路由和成本治理; -- 行业Domain Pack和客户规则; -- 私有数据连接器、审批阈值和评分模型; -- 自动设备控制; -- 专利敏感优化方法和商业运行逻辑。 +## Reality Change:下一条重要主线 -详见[目标规范状态](docs/spec/target-specification-status.md)和[安全说明](SECURITY.md)。 +Task Context 不是一次性 Prompt 组装。对长任务,现实会变化:状态过期、Provider 更新、冲突出现、Unknown 被解决。 -## CLI +GeoTask 的变化响应边界是: -```bash -geotask validate -geotask run -geotask normalize -geotask eval -geotask inspect operators -geotask agent inspect --format json -geotask agent prepare --repaired-output -geotask agent retry --verification-output --prepared-output -geotask agent recover --evidence --output -geotask artifact validate geotask.agent-evidence-recovery --format json -geotask runtime inspect examples/core/runtime_reference_descriptor.json --format json -geotask runtime check examples/core/runtime_reference_descriptor.json examples/core/runtime_validate_artifact_request.json --format json -geotask runtime mock examples/core/runtime_validate_artifact_request.json --output runtime-response.json -geotask provider inspect --profile --format json -geotask provider check examples/core/verification_provider_descriptor_authoritative_weather_gt29.json examples/core/verification_request_weather_conflict_gt29.json --format json -geotask provider validate examples/core/verification_response_authoritative_weather_gt29.json --request examples/core/verification_request_weather_conflict_gt29.json --descriptor examples/core/verification_provider_descriptor_authoritative_weather_gt29.json --format json -geotask verify examples/core/verification_session_uav_recheck.json --state examples/core/world_state_uav_separation_recheck.json --observation examples/core/observation_uav_b_delay_recheck.json --bind task-gt16=examples/core/uav_route_crossing_temporal_separation.yaml --bind result-gt16-initial=examples/core/verification_session_uav_execution_result.json --bind transition-uav-recheck=examples/core/state_transition_uav_separation_recheck.json --format json -geotask recheck examples/core/incremental_reevaluation_result_uav_recheck.json --bind base-world-state=examples/core/world_state_uav_separation_recheck.json --bind successor-world-state=examples/core/world_state_uav_separation_successor.json --bind impact-graph-uav-recheck=examples/core/impact_graph_uav_recheck.json --bind correction-uav-recheck=examples/core/correction_request_uav_recheck.json --bind discrepancy-uav-recheck=examples/core/discrepancy_report_uav_recheck.json --bind result-gt16-reevaluation=examples/core/incremental_reevaluation_uav_execution_result.json --format json +```text +Changed facts / provider state + ↓ +Affected ContextRequirements + ↓ +Reassess Applicability / Resolution / Sufficiency + ↓ +ContextGap delta + ↓ +Minimal rebuild only when needed ``` -公共仓还提供[`examples/adapters/http_json_runtime_adapter.py`](examples/adapters/http_json_runtime_adapter.py),演示如何在`geotask_core`之外把已离线检查的Descriptor绑定到独立HTTP Runtime。配套的[`examples/endpoints/reference_runtime_http_server.py`](examples/endpoints/reference_runtime_http_server.py)可在回环地址启动一个真实HTTP Endpoint,形成Adapter—Endpoint端到端闭环。两者均不在线获取Descriptor、不处理凭据、不重试、不调用模型,也不执行生产动作;传输错误与Runtime状态严格分离,返回结果仍由Core执行Descriptor / Request / Response三方契约校验。 +目标不是每次变化都重建全部上下文,而是让 **Context Rebuild Locality** 可解释、可测量。 -[`examples/model_adapters/provider_neutral/`](examples/model_adapters/provider_neutral/)进一步提供一个可独立构建的Provider-neutral模型Adapter包骨架:定义非秘密配置、结构化Provider Protocol、Mock Provider和`execute-nonlocal`映射,并在调用前验证输入Artifact、调用后验证输出Artifact及模型真实性。它拒绝模型结果冒充`verified`、`local_deterministic`或确定性执行。 +## 公开路线 -[`examples/model_adapters/openai_responses/`](examples/model_adapters/openai_responses/)在此基础上实现首个真实Provider集成:由私有启动代码注入已认证的官方OpenAI SDK客户端,公共包执行一次关闭重试、关闭存储、禁用工具的Responses API严格结构化输出调用,并将结果继续交给Artifact和真实性门禁。仓库测试仅使用模拟SDK客户端,不读取密钥,也不发起线上调用。 +当前 Task Context 主线按以下研究问题持续推进: -## 版本说明 +- **Requirement Derivation** — Task → Requirement 的稳定方法; +- **Relevance / Applicability Separation** — 同一事实对不同任务可以有不同适用性; +- **Resolution Adequacy & Sufficiency** — “有数据”不等于“足够支持任务”; +- **Minimum Context Cost** — 在 Critical Miss 不上升的前提下降低上下文成本; +- **Temporal Reassessment** — 变化只触发有界重评与最小重建; +- **Independent Consumers** — 用第二、第三领域验证 Core 不被单一业务塑形。 -| 名称 | 当前版本 | 含义 | -|---|---:|---| -| GeoTask Core包 | `0.4.1` | Python实现版本 | -| GeoTask文档Schema | `1.0` | YAML/JSON任务格式版本 | -| 语言与执行规范 | `1.0` | 当前公共实现规范 | -| Agent Integration Profile | `0.1` | 模型无关工具契约、补证据恢复与恢复报告Artifact | -| 运行时接口规范 | `0.1` | 核心与外部运行时之间的描述符、请求、响应契约 | -| 验证提供方接口规范 | `0.1` | 验证提供方描述符、验证请求、验证响应和可信保证策略 | -| 白皮书 | `0.1` | 公开概念草案 | +路线图描述研究方向和公共能力演化,不构成交付日期承诺。 -## 文档 +## Legacy / Compatibility -- [中文文档导航](docs/README.md) -- [English documentation index](docs/README.en.md) -- [中文快速入门](docs/tutorials/quickstart.zh-CN.md) -- [英文快速入门](docs/tutorials/quickstart.md) -- [GT01—GT20中文案例手册](docs/cookbook/gt01-gt20.zh-CN.md) -- [GT01—GT20 English Cookbook](docs/cookbook/gt01-gt20.md) -- [GT21—GT28世界状态循环案例手册](docs/cookbook/gt21-gt28.zh-CN.md) -- [GT21–GT28 World-State Cycle Cookbook](docs/cookbook/gt21-gt28.md) -- [JSON Schema](schemas/geotask-v1.0.schema.json) -- [状态与可信等级](docs/reference/status-model.md) -- [证据、冲突、阻断与恢复](docs/reference/evidence-and-recovery.md) -- [架构说明](docs/architecture.md) -- [算子扩展指南](docs/operator-guide.md) +GeoTask 早期公开版本以“可验证时空任务协议 / World-State Cycle / Verification”为主线,已经形成大量可验证 Artifact、案例和文档。这些资产继续保留,用于兼容、可追溯历史和已发布能力维护,但**不再定义 GeoTask 的长期产品定位**。 -## 参与项目 +需要理解旧资产时,可从以下入口进入: -欢迎提交: +- [中文文档导航](docs/README.md) +- [GT01—GT20 Cookbook](docs/cookbook/gt01-gt20.zh-CN.md) +- [GT21—GT28 World-State Cycle](docs/cookbook/gt21-gt28.zh-CN.md) +- [Reference Agent](docs/reference/reference-agent-v0.1.md) +- [Verification Quality Benchmark](docs/reference/verification-quality-benchmark-v0.2.md) +- [历史白皮书 v0.1](docs/whitepaper/GeoTask_White_Paper_v0.1.md) -- Bug和结构化诊断问题; -- 通用确定性算子建议; -- 文档与中文表达改进; -- 新的机器人、无人机、自动驾驶和城市治理案例; -- 对状态、证据和恢复语义的讨论。 +> 历史文档中的 “GeoTask = World-State Runtime / Verifiable World Model” 应按其发布时的版本语境理解;当前定位以 **Task Context Engine** 为准。 -请阅读[中文贡献指南](CONTRIBUTING.zh-CN.md)或[English Contributing Guide](CONTRIBUTING.md)。 +## 开始使用 -参与开发时再使用源码安装: +- [GeoTask 项目主页](https://stpku.github.io/GeoTask/) +- [Warehouse Robot Picking 独立消费者](examples/independent_consumers/warehouse_robot_picking/README.md) +- [5 分钟中文入门](docs/tutorials/quickstart.zh-CN.md) +- [公共 API](src/geotask_core/v1/) +- [Examples](examples/) +- [Issues](https://github.com/stpku/GeoTask/issues) +- [Releases](https://github.com/stpku/GeoTask/releases) -```bash -git clone https://github.com/stpku/GeoTask.git -cd GeoTask -python -m pip install -e ".[dev]" -pytest -``` +## License + +GeoTask Core 使用 [MIT License](LICENSE)。 -## 开源许可与边界 +--- -GeoTask Core使用[MIT License](LICENSE)。公开代码、规范和案例,与私有Runtime、Domain Pack、客户数据及专利敏感实现保持明确分离。 +**一句话:GeoTask 不负责“知道整个世界”,而负责让 Agent 在当前任务中,只拿到真正需要、适用且足够的时空上下文。** From ca1e976add71f4582c3a293ac6da6690593b21ee Mon Sep 17 00:00:00 2001 From: stpku <83755634+stpku@users.noreply.github.com> Date: Thu, 27 Aug 2026 09:49:00 +0800 Subject: [PATCH 02/17] docs: align English positioning with task context engine --- README.en.md | 457 ++++++++++++++++++++++----------------------------- 1 file changed, 197 insertions(+), 260 deletions(-) diff --git a/README.en.md b/README.en.md index 3c2413d1..7b197566 100644 --- a/README.en.md +++ b/README.en.md @@ -2,11 +2,9 @@ [简体中文](README.md) | **English** -**Open verifiable spatiotemporal task protocol and deterministic Core for AI agents.** - -> **Current:** turn observations, evidence, world state and action conditions into computable, updatable and traceable machine contracts. -> **Near term:** deliver a Reference Agent and developer product toward a trusted world-state runtime. -> **Long term:** become a reusable trusted task infrastructure layer for high-consequence physical-world agents. +> **GeoTask is a spatiotemporal Task Context Engine for AI agents.** +> +> It does not try to put “the whole world” into an agent context. It constructs the **minimum context that the current task actually needs, that is applicable, resolution-adequate, and explicitly sufficient**. [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/) @@ -15,312 +13,251 @@ [![Release](https://img.shields.io/github/v/release/stpku/GeoTask?include_prereleases&label=release)](https://github.com/stpku/GeoTask/releases) [![PyPI](https://img.shields.io/pypi/v/geotask-core)](https://pypi.org/project/geotask-core/) -```bash -pip install geotask-core -geotask inspect capabilities -geotask inspect health -geotask agent demo --output ./geotask-reference-agent -``` +## Why Task Context instead of more context? -`inspect capabilities` projects an installed public Core index from the existing Operator, Artifact, Schema, Runtime/Provider interface, Reference Agent, and benchmark metadata. It does not discover external plugins, real Runtime/Provider instances, or domain packs, and it does not add an Artifact, Schema, or Operator. `inspect health` then checks those installed capabilities together with the Schema/Artifact/Operator registries, packaged Reference Agent, and fixed offline benchmarks without network, model, or production access. Its diagnostic payload is not a registered GeoTask Artifact and does not claim real-world correctness. `agent demo` then verifies the packaged Reference Agent teaching bundle, materializes an editable local workspace, and immediately replays the deterministic success scenario. It does not fetch external truth, write production state, or authorize a real-world action. +For an agent working on a real task, the hard questions are usually not “do we have data?” but: -GeoTask turns multimodal models, sensors, maps, authoritative data, and human input into explicit world objects, spatiotemporal relations, state, evidence, and action constraints. It builds a world state that is computable, verifiable, updatable, and traceable. Rather than hiding the whole world inside a neural representation, GeoTask makes the facts an agent depends on inspectable, recomputable, correctable, and maintainable. +- **What does this task actually need to know?** +- A fact may be relevant, but is it applicable to this object, place, time, and condition? +- Is its spatial, temporal, or semantic resolution adequate for the task? +- Is the resulting context sufficient, or is a critical gap still open? +- Can irrelevant context be removed without increasing critical misses? +- When reality changes, which requirements must be reassessed and which context can be reused? -- **Multimodal models perceive and reason openly:** observations, hypotheses, explanations, and plans from text, maps, imagery, video, and state data. -- **GeoTask Core provides world-state specifications, interface contracts, and a verification kernel:** explicit objects, coordinates, time, relations, evidence, and claims with local deterministic verification. -- **Verification and control maintain the world:** preserve supported facts, expose conflict and unknown states, constrain correction, and manage action eligibility. -- **Runtimes and Domain Packs connect reality:** authoritative data, industry rules, local predictive models, human review, and production actions. +GeoTask turns these questions into explicit, composable, testable Task Context contracts and methods. -> **Engineering boundary:** GeoTask Core provides public world-state contracts, deterministic validation, exact Artifact binding, and fail-closed control semantics; the verifiable task protocol remains the current implementation form. The implemented public profile covers Observation, World State, bounded Observation Merge, State Transition, Verification Session, Discrepancy Report, Correction Request, Impact Graph, bounded recompute derivation, bounded successor materialization, Incremental Reevaluation Result, Verification Provider Descriptor, Verification Request, Verification Response, Assurance Profile, Trajectory Identity Adjudication, Identity Merge Proposal, Identity Merge Approval Record, Object Graph Change Request, and Object Graph Change Application Approval Record. Core does not fetch external truth, invent undeclared source precedence, publish production output, authorize actions, or execute side effects. +```text +Task + ↓ +derive requirements + ↓ +discover candidates + ↓ +Relevance + ↓ +Applicability + ↓ +Resolution Adequacy + ↓ +Sufficiency + ↓ +Minimum Sufficient TaskContext + ↓ +Explicit Gaps / Trace / Cost +``` -## Start here +## Core semantics -- [Explore 42 public reference examples across 38 scenario entries](https://stpku.github.io/GeoTask/) -- [English ecosystem homepage](https://stpku.github.io/GeoTask/en/) -- [Quickstart](docs/tutorials/quickstart.md) -- [White Paper v0.1](docs/whitepaper/GeoTask_White_Paper_v0.1.md) -- [White paper English abstract](docs/whitepaper/GeoTask_White_Paper_v0.1.md#english-abstract) -- [Implemented Language and Execution Specification v1.0](docs/spec/geotask-language-spec-v1.0.md) -- [GeoTask Observation v0.1](docs/spec/geotask-observation-v0.1.md) -- [GeoTask World State v0.1](docs/spec/geotask-world-state-v0.1.md) -- [GeoTask Observation Merge Result v0.1](docs/spec/geotask-observation-merge-result-v0.1.md) -- [GeoTask State Transition v0.1](docs/spec/geotask-state-transition-v0.1.md) -- [GeoTask Verification Session v0.1](docs/spec/geotask-verification-session-v0.1.md) -- [GeoTask Discrepancy Report v0.1](docs/spec/geotask-discrepancy-report-v0.1.md) -- [GeoTask Correction Request v0.1](docs/spec/geotask-correction-request-v0.1.md) -- [GeoTask Impact Graph v0.1](docs/spec/geotask-impact-graph-v0.1.md) -- [GeoTask Recompute Derivation Result v0.1](docs/spec/geotask-recompute-derivation-result-v0.1.md) -- [GeoTask World State Materialization Result v0.1](docs/spec/geotask-world-state-materialization-result-v0.1.md) -- [GeoTask Incremental Reevaluation Result v0.1](docs/spec/geotask-incremental-reevaluation-result-v0.1.md) -- [GeoTask Agent Integration Profile v0.1](docs/spec/geotask-agent-integration-profile-v0.1.md) -- [GeoTask Runtime Interface Profile v0.1](docs/spec/geotask-runtime-interface-profile-v0.1.md) -- [GeoTask Verification Provider Profile v0.1](docs/spec/geotask-verification-provider-profile-v0.1.md) -- [GeoTask Object Graph Change Request v0.1](docs/spec/geotask-object-graph-change-request-v0.1.md) -- [English Terminology Guide](docs/terminology.en.md) -- [GeoTask Core Agent Skill](skills/geotask-core/SKILL.md) -- [VS Code Schema association example](.vscode/settings.json) -- [GT01–GT20 Cookbook](docs/cookbook/gt01-gt20.md) -- [GT21–GT28 World-State Cycle Cookbook](docs/cookbook/gt21-gt28.md) -- [GT38–GT42 UAV Identity-Governance Composite Case](docs/cookbook/gt38-gt42-uav-identity-governance.md) -- [v0.4.1 Capability Discovery and Release-Hardening maintenance release notes](docs/release_v0_4_1.md) -- [v0.4.0 Core Productization and Reference Agent release notes](docs/release_v0_4_0.md) -- [v0.3.0 Agent Integration release notes](docs/release_v0_3_0.md) -- [v0.2.0 artifact-contract release notes](docs/release_v0_2_0.md) -- [Architecture Manifesto v1](docs/architecture_manifesto_v1.md) -- [Reference Agent v0.1 specification](docs/reference/reference-agent-v0.1.md) -- [Run the Reference Agent: fictional facility assessment update](examples/reference_agent/facility_assessment_update/README.md) -- [Reference Agent end-to-end tutorial](docs/tutorials/reference-agent.md) -- [Verification Quality Benchmark v0.1](docs/reference/verification-quality-benchmark-v0.1.md) — run from an installed package with `geotask benchmark quality` -- [Verification Quality Benchmark v0.2](docs/reference/verification-quality-benchmark-v0.2.md) — run 34 deterministic synthetic perturbations with `geotask benchmark quality --suite perturbation`; no real-world accuracy or cross-domain claim -- [GeoTask ↔ Lowa-GT Integration Contract v0.1](docs/reference/lowa-gt-integration-contract-v0.1.md) -- [Cross-Line Promotion Gate v0.1](docs/reference/cross-line-promotion-gate-v0.1.md) -- [Core Distribution Boundary v0.1](docs/reference/core-distribution-boundary-v0.1.md) -- [Productization Roadmap v0.2](docs/productization_roadmap_v0_2.md) -- [Public roadmap](ROADMAP.md) -- [Documentation index](docs/README.en.md) +The current public Core exposes task-context primitives and composition seams including: -## Why agents need a verifiable world model +- `TaskFrame` +- `ContextRequirement` +- `ContextCandidate` +- `RelevanceResult` +- `ApplicabilityResult` +- `ResolutionRequirement` / `ResolutionAdequacyResult` +- `ContextAssessment` +- `ContextGap` +- `SufficiencyAssessment` +- `TaskContext` +- `ContextConstructionTrace` +- `ContextMinimalityAssessment` +- `MinimumSufficientTaskContext` +- temporal reassessment / continuity contracts -Multimodal models are becoming better at understanding scenes, calling tools, and proposing plans, but their “understanding of the world” is usually implicit in context, vectors, or parameters. Before real action, an agent still needs an explicit, shared, verifiable world state that continuously answers: +The contracts deliberately preserve these distinctions: -- which objects exist, where and when they exist, and what state they are in; -- which relations and constraints hold, remain unknown, conflict, or lack evidence; -- which world states and conclusions must change when a new observation arrives; -- which facts come from models, sensors, authoritative data, or human review; -- which actions are currently permitted by the maintained world state. +```text +Context ≠ World State +Relevant ≠ Applicable +Applicable ≠ Sufficient +Candidate exists ≠ Requirement satisfied +Large payload ≠ Sufficient context +Provider returned a value ≠ Valid task context +Context sufficient ≠ Domain decision +Context sufficient ≠ Action authorization +``` -A tool call can compute one function, but it does not automatically maintain object identity, world snapshots, evidence state, change impact, or action boundaries. GeoTask organizes those concerns into verifiable and auditable world-model primitives and Artifacts: +## What GeoTask owns -```mermaid -flowchart LR - O[Multimodal observations and external state] --> W[Explicit spatiotemporal world state] - W --> R[Relations, constraints, and world claims] - R --> V[Local verification and evidence governance] - V --> U[State update, correction, and recheck] - U --> G[Action eligibility and external Runtime] - N[New observation arrives] --> W -``` +GeoTask owns **task-relative context**: -The current public Core implements world objects and spatial contracts, source and evidence bindings, Observation, World State, bounded Observation Merge, State Transition, Verification Session, Discrepancy Report, Correction Request, Impact Graph, source-bound bounded recompute derivation, bounded successor-state materialization, Incremental Reevaluation Result, Verification Provider contracts, Trajectory Identity Adjudication, Identity Merge Proposal, Identity Merge Approval Record, Object Graph Change Request, Object Graph Change Application Approval Record, world claims, deterministic relation verification, control states, mechanical Agent repair, and bounded-path retry. Automatic diff computation, resolution of ambiguous claims without a declared policy, automatic impact discovery and propagation execution, object-graph change application and application-result records, and general-purpose derivation methods remain roadmap capabilities. +1. frame the task, goal, and scope with `TaskFrame`; +2. derive or receive `ContextRequirement` objects; +3. acquire `ContextCandidate` objects from GIS, API, sensor, database, WorldState, or other providers; +4. assess relevance, applicability, and resolution adequacy separately; +5. keep requirement-level assessments and gaps explicit; +6. compose `SufficiencyAssessment` through an explicit method; +7. construct `TaskContext` and seek a minimum sufficient context without increasing critical misses; +8. when a provider or reality changes, reassess only affected requirements and reuse unaffected context where valid. -## Five-minute quickstart +GeoTask **does not own world truth** and does not replace an agent harness, GIS, database, knowledge graph, RAG system, or domain decision system. -```bash -python -m pip install geotask-core -geotask --help -geotask inspect operators +```text +World / Data Providers +WorldState · GIS · API · Sensor · Database · GSTAR · ... + │ + ▼ + ┌─────────┐ + │ GeoTask │ + │ Task │ + │ Context │ + └────┬────┘ + │ + ▼ + Agent / Harness + │ + ▼ + Domain Decision / Action ``` -Save this minimal task as `my_distance.yaml`: +**A provider can tell GeoTask what candidate information exists. GeoTask evaluates whether that information is needed, applicable, and sufficient for the current task.** + +## North Star: sufficiency, not accumulation + +GeoTask's long-term North Star is: + +> **Task Sufficiency at Minimum Context Cost** + +The goal is to support the task with the smallest useful context while keeping critical requirement misses visible. -```yaml -geotask: - id: "example" - schema_version: "1.0" +Positive metrics should be paired with counter-metrics: -objects: - a: {type: "point", coordinates: [0, 0]} - b: {type: "point", coordinates: [3, 4]} +| Goal | Counter-metric | +|---|---| +| Critical Requirement Coverage ↑ | **Critical Context Miss Rate** | +| Sufficiency Accuracy ↑ | **False Sufficiency Rate** | +| Context Reduction ↑ | **Critical Context Miss Rate** | +| Applicability Accuracy ↑ | **Irrelevant / Inapplicable Context Rate** | +| Local Rebuild ↑ | **Unnecessary Context Rebuild** | -operator_set: [distance_2d] +Context cost can include acquisition cost, carried bytes, token cost, provider latency, and human recovery cost. -tasks: - - id: "calc" - assertions: - - id: "ab" - operator: "distance_2d" - object_refs: ["a", "b"] +## Public independent consumer: Warehouse Robot Picking + +GeoTask includes an independent public consumer that does **not** require the official WorldState implementation and does not depend on the low-altitude domain: + +```text +Indoor GIS / topology +Inventory API +Aisle-clearance sensor + ↓ +TaskFrame + ↓ +ContextRequirement[] + ↓ +ContextCandidate[] + ↓ +Relevance / Applicability / Resolution Adequacy + ↓ +SufficiencyAssessment + ↓ +Minimum Sufficient TaskContext + ↓ +Sensor change + ↓ +Bounded Temporal Reassessment ``` -The local executor returns `ab = 5.0 meter` with `assurance_level: local_deterministic`. +The example preserves an important boundary: if an aisle is measured narrower than the robot, GeoTask may still conclude that **the context is sufficient** when that measurement is relevant, applicable, fresh, and resolution-adequate. It does **not** conclude that the robot may traverse the aisle. Domain safety and action authorization remain downstream. + +- [Warehouse Robot Picking example](examples/independent_consumers/warehouse_robot_picking/README.md) + +## Install and inspect ```bash -geotask validate my_distance.yaml -geotask run my_distance.yaml +pip install geotask-core +geotask inspect capabilities +geotask inspect health ``` -## 42 public reference examples across 38 scenario entries - -The examples show how model proposals are materialized, recomputed, contradicted, evidence-gated, corrected, and kept behind action boundaries across robotics, UAV, vehicle, and emergency scenarios. GT38–GT42 are not five independent application cases: together they form one five-stage identity-governance composite case about inspection drone UAV-017 receiving a new provisional identity after a brief tracking loss. - -| 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–GT20 | What executable action follows from verified spatial, resource, response, live-environment, multi-UAV conflict, city-event deduplication, equipment-capability, and high-risk action-gate constraints? | -| World-state cycle | GT21–GT28 | How do multi-source observations, state change, impact scope, bounded correction, incremental reevaluation, and action gates close the loop? | -| Verification Provider ecosystem | GT29–GT32 | How do independent sources, explicit adjudication, progressive authorization, and action gates remain separate? | -| Dynamic world objects | GT33–GT37 plus the GT38–GT42 composite case | The first five examples cover trajectory semantics and identity candidates; the final five reference examples form one UAV-017 re-identification and identity-governance workflow. | - -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. -- **GT14:** the nearest rescue team may not have the earliest verified arrival or meet the response deadline. -- **GT15:** a structurally passable map corridor may still be occupied by a live obstacle. -- **GT16:** an initially verified plan does not justify stopping monitoring after new telemetry arrives; a delay reduces predicted separation from 120 to 80 seconds, so valid findings are preserved while reevaluation remains armed. -- **GT17:** ten reports of one incident should create one dispatch task while preserving all ten evidence sources. -- **GT18:** the geometrically shortest route may be unsafe when it crosses a hazard beyond the rescue robot's operating capability. -- **GT19:** reaching the target overhead does not authorize payload release while the live ground-clearance condition remains false. -- **GT20:** a green signal does not authorize intersection entry while the downstream exit cannot store and clear the full vehicle. -- **GT21:** when telemetry says a 60-second delay and an operations review says 55 seconds, the AI must not overwrite by arrival order, average the values, or invent source authority; it must expose the conflict and apply a caller-declared rule. -- **GT22:** when position and battery data come from different systems, the AI must not assemble a “current state” from the latest fields alone; it must first bind object identity, time, and field ownership into one traceable operational snapshot; -- **GT23:** when position and battery change over five minutes, the system must not overwrite the earlier values; it must retain both snapshots, bind the 300-second interval, and explicitly record position, battery, and object-validity changes; -- **GT24:** when a temporary no-fly zone is published, the system must neither recompute every operation nor update only the map; it must follow an explicit dependency chain and recheck only the intersecting route, its mission, approval conclusion, and launch action; -- **GT25:** when the UAV position moves from corridor chainage 100 to 130 metres, the system recomputes only the crane and tower distances that depend on position while preserving fixed-facility spacing and battery state; -- **GT26:** when a flight-service station schedule changes from 08:00–22:00 to 09:00–18:00, the system replaces only the schedule, preserves location, radio frequency, service types, and contact channel, and blocks the 20:30 mission until recheck; -- **GT27:** when east-zone wind rises from 6 to 12 m/s, the system reevaluates only Missions A and D in the matching region and active time window; Mission A becomes unsuitable, Mission D remains suitable after recheck, and Missions B and C are reused; -- **GT28:** route, altitude, weather-window, and wind checks all pass, but airspace, operator, departure-site, weather-release, and mission authorizations remain absent; the precheck is reusable while automatic takeoff authorization and the takeoff command stay blocked. -- **GT29:** a mock weather service reports 8 m/s while an onsite sensor reports 13 m/s against a 12 m/s mission limit; both responses are fresh and independently grouped, but the result remains unknown and a third independent source is requested; -- **GT30:** a third independent source also reports 13 m/s, creating a two-to-one split; because no majority policy is declared, Assurance remains unknown, the 8 m/s minority source is preserved, and explicit weather adjudication is requested; -- **GT31:** a fictional human review binds the three conflicting responses and scoped context evidence, preserves all raw results, and treats the two 13 m/s readings as local-test-flow observations; the 8 m/s weather conclusion becomes eligible while automatic takeoff authorization and the takeoff command remain blocked; -- **GT32:** five fictional authorization records arrive one by one, reducing unknown authorization fields from five to zero. The final control evaluation makes automatic takeoff authorization and the takeoff command eligible, while Core still does not publish output, send a command, authorize reality, or execute flight. -- **GT33:** three timezone-aware position observations bind to one moving object as a strictly ordered discrete trajectory. Core deterministically returns a 300-second duration without interpolation, prediction, map matching, publication, or action execution. -- **GT34:** three explicit observations bind into two adjacent trajectory segments. Core returns 120/180-second durations, 60/90 document-horizontal-unit distances, and 0.5 horizontal-unit-per-second averages without treating average speed as instantaneous state, interpolating, predicting, or executing action. -- **GT35:** with a caller-declared 5-unit stationary radius, 120-second minimum duration, 300-second maximum observation interval, and explicit gap permission, three adjacent segments become `stationary_candidate`, `moving_observed`, and `observation_gap`. When gap marking is disallowed, the same excessive interval becomes `unverifiable`; Core does not infer lost link, anomaly, or continuous stationary motion. -- **GT36:** segment midpoints represent adjacent segment-average speeds under a caller-declared 300-second maximum interval. The first two transitions produce scalar acceleration estimates of 0 and 1/300 horizontal units per second squared; the third becomes `unverifiable` with null speed change and acceleration because the next segment lasts 600 seconds. Core does not infer instantaneous or vector acceleration, direction change, future position, or action. -- **GT37:** two trajectory fragments bound to different provisional identities have boundary samples 60 seconds and 5 meters apart and share the same object class. Under caller-declared 120-second, 10-unit, and class-equality limits, Core returns `same_object_candidate` while preserving both identities and subject references. It does not verify real-world identity, merge objects, publish, or execute an identity update. -- **GT38–GT42 composite case:** fictional inspection drone UAV-017 enters a building-shadow region and is briefly lost. Observation resumes 60 seconds later and five meters away, but the tracker creates a new trajectory and provisional subject. A fictional asset registry reports the same Remote ID and device serial number, while a fictional human review confirms mission, model, operator, and temporal continuity. GT38 adjudicates the identity evidence; GT39 selects the original subject and retains the resumed subject as an alias; GT40 records proposal approval; GT41 narrows the requested mutation to `track_beta /subject_ref`, from `provisional_beta` to `provisional_alpha`; and GT42 records application approval. All five stages keep the actual references, object graph, and World State unchanged. See the [composite-case cookbook](docs/cookbook/gt38-gt42-uav-identity-governance.md). - -See the [GT01–GT20 Cookbook](docs/cookbook/gt01-gt20.md), the [GT21–GT28 World-State Cycle Cookbook](docs/cookbook/gt21-gt28.md), the [Verification Provider Profile](docs/spec/geotask-verification-provider-profile-v0.1.md) for GT29–GT32, the [Trajectory and Moving Object Profile](docs/spec/geotask-trajectory-profile-v0.1.md) for GT33–GT42, the [Trajectory Identity Adjudication v0.1](docs/spec/geotask-trajectory-identity-adjudication-v0.1.md) for GT38, the [Identity Merge Proposal v0.1](docs/spec/geotask-identity-merge-proposal-v0.1.md) for GT39, the [Identity Merge Approval Record v0.1](docs/spec/geotask-identity-merge-approval-record-v0.1.md) for GT40, the [Object Graph Change Request v0.1](docs/spec/geotask-object-graph-change-request-v0.1.md) for GT41, and the [Object Graph Change Application Approval Record v0.1](docs/spec/geotask-object-graph-change-application-approval-record-v0.1.md) for GT42. - -## Implemented public Core - -### Canonical object types - -`point`, `polyline`, `multi_polyline`, `polygon`, `rect`, `time_interval`, `altitude_interval`, `feature_collection`, `moving_object`, and `trajectory`. - -A `moving_object` declares stable identity without embedding position. A `trajectory` must reference one `moving_object`, contain at least two strictly increasing timezone-aware 2D observation samples, and declare `interpolation: none`. `feature_collection` remains 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 | -| `multi_polyline_intersects_rect` | multi-polyline, rect | boolean | -| `point_in_polygon` | point, polygon | boolean | -| `polygon_contains_point` | polygon, point | 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 | -| `trajectory_duration_seconds` | discrete trajectory | seconds | -| `trajectory_segment_metrics` | discrete trajectory | ordered segment list with duration, horizontal distance, and average speed | -| `trajectory_segment_classifications` | discrete trajectory + explicit thresholds | ordered `stationary_candidate`, `moving_observed`, `observation_gap`, or `unverifiable` records | -| `trajectory_segment_acceleration_estimates` | discrete trajectory + explicit midpoint/gap parameters | adjacent segment-average speed-change rates; gap transitions are `unverifiable` with null values | -| `trajectory_identity_candidate` | two discrete trajectories + explicit time/distance/class policy | `same_object_candidate`, `different_object_candidate`, or `unverifiable` without identity merge or reference mutation | - -### Cross-task space contract - -All tasks in one document share one CRS, coordinate order, horizontal/vertical unit, and boundary contract. Planar operators accept only `local_cartesian` or an identified `projected` CRS and require `[x, y]`; Core does not treat longitude/latitude as Euclidean coordinates or convert units. Distance assertions and altitude objects must match the document units. Current boundary-sensitive operators support `closed` only and fail closed when `open` is declared. Pure temporal tasks are not blocked by the planar CRS gate. - -### Provenance, evidence, and audit - -Documents may optionally declare `provenance.sources`, `evidence_bindings`, and `audit`. Core strictly validates source identity, kind, URI/Artifact identity, SHA-256, timezone-aware timestamps, assertion bindings, and audit references. Valid bindings are copied to the corresponding `CheckResult.evidence_refs`. Core does not fetch sources, recompute external digests, or raise assurance merely because provenance metadata exists. - -`geotask inspect schemas --format json` also returns portable `ide_file_patterns` for every public Artifact, suitable for VS Code YAML, JetBrains, and other IDEs that associate files with JSON Schemas. - -### Public conformance and performance benchmark +The public package also retains previously released deterministic operators, Artifacts, Verification, Runtime/Provider, Reference Agent, and benchmark capabilities. They remain supported public compatibility assets from GeoTask's earlier evolution; **the long-term semantic direction is now Task Context Engine**. + +To inspect the Task Context Engine composition directly, start with the independent consumer: ```bash -geotask benchmark core --enforce-performance --output core-benchmark.json +python - <<'PY' +from examples.independent_consumers.warehouse_robot_picking.consumer import ( + build_warehouse_pick_context, +) + +run = build_warehouse_pick_context() +print(run.construction.sufficiency.status) +print(len(run.construction.context.values), len(run.minimum.context.values)) +PY ``` -The offline benchmark uses ten fixed fictional cases to cover all fourteen public deterministic operators, result round trips, semantic replay digests, and provenance evidence bindings. It measures the full `JSON decode → canonicalize → validate → execute → serialize` path. The default 100 ms p95 threshold is only a broad local regression guardrail, not a cross-hardware ranking, production SLA, or model-quality benchmark. The retained report is registered as `geotask.core-benchmark-report` and can be strictly validated again. - -### Execution chain +Expected high-level output: ```text -parse YAML → canonicalize → validate → execute → GeotaskResult +sufficient +4 3 ``` -The public Core includes YAML parsing, Canonical IR, structured diagnostics, deterministic execution, result assembly, assurance metadata, model-output normalization, local verification, Agent tool-contract discovery, mechanical preparation of generated drafts, structured revision requests, guarded revision-diff retries, offline validation of four registered Agent report Artifacts, deterministic GT08 evidence recovery, CLI commands, JSON Schema, examples, and conformance tests. +This is a deterministic reference example, not a live warehouse integration or robot-safety certification. -## Workflow semantics in the weekly cases +## Reality change is a context problem too -The cases also demonstrate `unverifiable`, `conflicted`, `blocked`, `evidence_request`, `blocked_outputs`, `resume_when`, and `next_action`. These remain control and workflow semantics under `extensions`, not base `ClaimStatus` enum values. The public Core strictly validates and read-only evaluates them through `geotask.control/1.0`, and can recover one single-named condition by rerunning the affected deterministic assertion. The recovery trace is available as the offline-verifiable `geotask.agent-evidence-recovery` Artifact. Real evidence retrieval, approval, and action execution remain outside Core in a Runtime or Domain Pack. +Task Context is not one-shot prompt assembly. During long-running work, reality changes: state expires, providers update, conflicts appear, and unknowns are resolved. -## Not included in the public Core +GeoTask's change-response boundary is: -- 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 +```text +Changed facts / provider state + ↓ +Affected ContextRequirements + ↓ +Reassess Applicability / Resolution / Sufficiency + ↓ +ContextGap delta + ↓ +Minimal rebuild only when needed +``` -See [Target Specification Status](docs/spec/target-specification-status.md) and [Security](SECURITY.md). +The objective is not to rebuild everything after every change, but to make **context rebuild locality** explicit and measurable. -## CLI +## Public research direction -```bash -geotask validate -geotask run -geotask normalize -geotask eval -geotask inspect operators -geotask agent inspect --format json -geotask agent prepare --repaired-output -geotask agent retry --verification-output --prepared-output -geotask agent recover --evidence --output -geotask artifact validate geotask.agent-evidence-recovery --format json -geotask runtime inspect examples/core/runtime_reference_descriptor.json --format json -geotask runtime check examples/core/runtime_reference_descriptor.json examples/core/runtime_validate_artifact_request.json --format json -geotask runtime mock examples/core/runtime_validate_artifact_request.json --output runtime-response.json -geotask provider inspect --profile --format json -geotask provider check examples/core/verification_provider_descriptor_authoritative_weather_gt29.json examples/core/verification_request_weather_conflict_gt29.json --format json -geotask provider validate examples/core/verification_response_authoritative_weather_gt29.json --request examples/core/verification_request_weather_conflict_gt29.json --descriptor examples/core/verification_provider_descriptor_authoritative_weather_gt29.json --format json -geotask verify examples/core/verification_session_uav_recheck.json --state examples/core/world_state_uav_separation_recheck.json --observation examples/core/observation_uav_b_delay_recheck.json --bind task-gt16=examples/core/uav_route_crossing_temporal_separation.yaml --bind result-gt16-initial=examples/core/verification_session_uav_execution_result.json --bind transition-uav-recheck=examples/core/state_transition_uav_separation_recheck.json --format json -geotask recheck examples/core/incremental_reevaluation_result_uav_recheck.json --bind base-world-state=examples/core/world_state_uav_separation_recheck.json --bind successor-world-state=examples/core/world_state_uav_separation_successor.json --bind impact-graph-uav-recheck=examples/core/impact_graph_uav_recheck.json --bind correction-uav-recheck=examples/core/correction_request_uav_recheck.json --bind discrepancy-uav-recheck=examples/core/discrepancy_report_uav_recheck.json --bind result-gt16-reevaluation=examples/core/incremental_reevaluation_uav_execution_result.json --format json -``` +The current Task Context line advances through these problems: -The public repository also includes [`examples/adapters/http_json_runtime_adapter.py`](examples/adapters/http_json_runtime_adapter.py), showing how an offline-inspected Descriptor can be bound to an independently hosted HTTP Runtime outside `geotask_core`. The paired [`examples/endpoints/reference_runtime_http_server.py`](examples/endpoints/reference_runtime_http_server.py) starts a real loopback HTTP Endpoint and completes the Adapter-to-Endpoint path. Neither example fetches the Descriptor online, manages credentials, retries, calls a model, or executes production actions; transport errors remain separate from Runtime states, and the returned Response still passes Core's Descriptor / Request / Response three-way contract validation. +- **Requirement Derivation** — stable Task → Requirement methods; +- **Relevance / Applicability Separation** — the same fact can have different applicability for different tasks; +- **Resolution Adequacy & Sufficiency** — data availability is not the same as task adequacy; +- **Minimum Context Cost** — reduce context cost without increasing critical misses; +- **Temporal Reassessment** — bounded reassessment and minimal rebuild after change; +- **Independent Consumers** — validate the Core in additional domains so one product cannot shape the semantics. -[`examples/model_adapters/provider_neutral/`](examples/model_adapters/provider_neutral/) adds an independently buildable provider-neutral model Adapter package skeleton. It defines non-secret configuration, a structural Provider Protocol, a Mock Provider, and `execute-nonlocal` mapping, validates registered input and output Artifacts, and rejects model output that pretends to be `verified`, `local_deterministic`, or deterministic. +These are research and public capability directions, not delivery-date commitments. -[`examples/model_adapters/openai_responses/`](examples/model_adapters/openai_responses/) builds the first real provider integration on that boundary. Private startup code injects an authenticated official OpenAI SDK client; the public package performs one no-retry, no-storage, tool-free Responses API call with strict Structured Outputs and then sends the nested result through Artifact and truthfulness validation. Repository tests use only a fake SDK-shaped client, read no key, and make no live request. +## Legacy / compatibility -## Version map +Earlier public GeoTask releases centered on a verifiable spatiotemporal task protocol, World-State Cycle, Verification, and related Artifacts. Those assets remain for compatibility, traceability, and maintenance of released capabilities, but they **no longer define GeoTask's long-term product positioning**. -| Artifact | Current version | Meaning | -|---|---:|---| -| GeoTask Core package | `0.4.1` | Python implementation version | -| GeoTask document schema | `1.0` | YAML/JSON document format | -| Language specification | `1.0` | Implemented public normative profile | -| Agent Integration Profile | `0.1` | Model-neutral tool contract, evidence recovery, and recovery-report Artifact | -| Runtime Interface Profile | `0.1` | Descriptor, Request, and Response contracts between Core and an external Runtime | -| Verification Provider Profile | `0.1` | Provider Descriptor, Verification Request, Verification Response, and Assurance Profile contracts | -| White paper | `0.1` | Public conceptual draft | +Useful legacy entry points: -## Documentation +- [Documentation index](docs/README.en.md) +- [GT01–GT20 Cookbook](docs/cookbook/gt01-gt20.md) +- [GT21–GT28 World-State Cycle](docs/cookbook/gt21-gt28.md) +- [Reference Agent](docs/reference/reference-agent-v0.1.md) +- [Verification Quality Benchmark](docs/reference/verification-quality-benchmark-v0.2.md) +- [Historical White Paper v0.1](docs/whitepaper/GeoTask_White_Paper_v0.1.md) -- [English documentation index](docs/README.en.md) -- [中文文档导航](docs/README.md) -- [JSON Schema](schemas/geotask-v1.0.schema.json) -- [Status and Assurance Model](docs/reference/status-model.md) -- [Evidence, Conflict, Blocking, and Recovery](docs/reference/evidence-and-recovery.md) -- [Architecture](docs/architecture.md) -- [Operator extension guide](docs/operator-guide.md) +> Historical documents that describe “GeoTask = World-State Runtime / Verifiable World Model” should be read in their release-era context. The current positioning is **Task Context Engine**. -## Contributing +## Start here -Read [CONTRIBUTING.md](CONTRIBUTING.md) or [中文贡献指南](CONTRIBUTING.zh-CN.md). Bug reports, operator proposals, documentation improvements, and new application-case ideas are welcome. +- [GeoTask project homepage](https://stpku.github.io/GeoTask/) +- [Warehouse Robot Picking independent consumer](examples/independent_consumers/warehouse_robot_picking/README.md) +- [Quickstart](docs/tutorials/quickstart.md) +- [Public API](src/geotask_core/v1/) +- [Examples](examples/) +- [Issues](https://github.com/stpku/GeoTask/issues) +- [Releases](https://github.com/stpku/GeoTask/releases) -Use an editable source install only when contributing to development: +## License -```bash -git clone https://github.com/stpku/GeoTask.git -cd GeoTask -python -m pip install -e ".[dev]" -pytest -``` +GeoTask Core is released under the [MIT License](LICENSE). -## License and boundary +--- -GeoTask Core is released under the [MIT License](LICENSE). Public code, specifications, and examples are separate from private Runtime, Domain Packs, customer data, and patent-sensitive implementation details. +**In one sentence: GeoTask does not try to know the whole world; it helps an agent obtain only the spatiotemporal context that the current task actually needs, that applies, and that is sufficient.** From 48aeb51ed849fcf3b3ef418b399aae025dcdac3f Mon Sep 17 00:00:00 2001 From: stpku <83755634+stpku@users.noreply.github.com> Date: Thu, 27 Aug 2026 09:50:08 +0800 Subject: [PATCH 03/17] docs: rebuild Chinese portal around task context --- site/index.html | 426 +++++++++++------------------------------------- 1 file changed, 93 insertions(+), 333 deletions(-) diff --git a/site/index.html b/site/index.html index 076e9ddf..44124560 100644 --- a/site/index.html +++ b/site/index.html @@ -3,394 +3,154 @@ - - - + + + - + + - - + + - - - GeoTask|面向智能体的可验证时空世界模型 + + + GeoTask|面向 AI Agent 的时空任务上下文引擎 - - -