Skip to main content

OpenRAL S2 reasoner — typed LLM client + Plan → BT XML emission

Project description

openral-reasoner

OpenRAL S2 reasoner — the event-driven slow planning loop (CLAUDE.md §3 Layer 4). ReasonerCore consumes a WorldState snapshot plus rolling event buffers (failures, perception events, operator prompts) and emits exactly one typed ReasonerToolCall per tick via the LLM's structured tool-use API — no free-form JSON. The ROS-side reasoner_node (in packages/openral_reasoner_ros/) wraps this core with rclpy subscriptions and dispatch plumbing.

Layer

CLAUDE.md §3 Layer 4 — S2 slow reasoning: event-driven with a ~0.2 Hz heartbeat, sitting between the WorldStateAggregator and the S1 skill executor. Dispatch is direct typed tool calls.

Design

  • ROS 2 reasoner supervisor: direct typed tool-call dispatch.
  • Symbolic S2 reasoner: authored playbooks, self-maintained memory, success-gated task queue.
  • VLM-adjudicated completion, grounding-before-decompose, detection identity.

Public surface

from openral_reasoner import (
    ReasonerCore, ReasonerTickResult,          # the S2 tick loop
    ToolPalette, build_tool_palette,           # registry -> LLM tool palette
    AnthropicToolUseClient,                    # provider clients
    OpenAICompatibleToolUseClient,
    build_tool_use_client_from_env,            # OPENRAL_REASONER_LLM_* selection
    ContextRenderer,                           # WorldState/event -> prompt context
    MemoryStore, MissionState,                 # self-maintained memory + mission ladder
    CriticWatchdog, SpatialMemoryQuerier,      # critic gating + spatial recall
    plan_active_search,                        # active-search frontier planning
)
  • ReasonerCore — the tick loop: render context → call the LLM with the tool palette → validate into a ReasonerToolCall → bounded replanning ladder on failure (retry → param-tweak → substitute-skill → goal-replan → human-handoff).
  • AnthropicToolUseClient / OpenAICompatibleToolUseClient — concrete ToolUseClient implementations; selected at activate-time via OPENRAL_REASONER_LLM_* env vars (PROVIDER ∈ {anthropic, openai-compatible, openrouter}). No hidden default.
  • ToolPalette / build_tool_palette — generated from the local skill registry, rebuilt on /openral/skill_registry_changed.
  • MemoryStore, MissionState, evaluate_task_verdict — self-maintained memory and success-gated task queue.

See docs/methods/06-reasoning-wam-safety-observability.md for the full symbol inventory and docs/reference/reasoner-design.md for the design walkthrough.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openral_reasoner-0.1.0.tar.gz (77.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openral_reasoner-0.1.0-py3-none-any.whl (80.0 kB view details)

Uploaded Python 3

File details

Details for the file openral_reasoner-0.1.0.tar.gz.

File metadata

  • Download URL: openral_reasoner-0.1.0.tar.gz
  • Upload date:
  • Size: 77.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for openral_reasoner-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cec2066c27197340a181d7ca74f2bfe7068c725ecc4602f53f3233b5fd0f267c
MD5 720b8698997425c49f008e46362faebf
BLAKE2b-256 50b8b1ae045d1a4ecd474e27b16532c7aa36b60564b19213a94a49073913b9e5

See more details on using hashes here.

File details

Details for the file openral_reasoner-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for openral_reasoner-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 82a6ca7dd0aa0564a1dcee2ce3a3c9b2375363d2082044907b983a8d88957dc9
MD5 5475600a756bd27c25004145dd0dc0bc
BLAKE2b-256 1a1af7ac176d570e214667f9caf4c90a15acf25d2eeac531a64760021afe725d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page