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 aReasonerToolCall→ bounded replanning ladder on failure (retry → param-tweak → substitute-skill → goal-replan → human-handoff).AnthropicToolUseClient/OpenAICompatibleToolUseClient— concreteToolUseClientimplementations; selected at activate-time viaOPENRAL_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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cec2066c27197340a181d7ca74f2bfe7068c725ecc4602f53f3233b5fd0f267c
|
|
| MD5 |
720b8698997425c49f008e46362faebf
|
|
| BLAKE2b-256 |
50b8b1ae045d1a4ecd474e27b16532c7aa36b60564b19213a94a49073913b9e5
|
File details
Details for the file openral_reasoner-0.1.0-py3-none-any.whl.
File metadata
- Download URL: openral_reasoner-0.1.0-py3-none-any.whl
- Upload date:
- Size: 80.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
82a6ca7dd0aa0564a1dcee2ce3a3c9b2375363d2082044907b983a8d88957dc9
|
|
| MD5 |
5475600a756bd27c25004145dd0dc0bc
|
|
| BLAKE2b-256 |
1a1af7ac176d570e214667f9caf4c90a15acf25d2eeac531a64760021afe725d
|