EPIC: Unify and conform the Prolog-RLM control plane #154
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/a0-symbolics#154
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent: #1
Goal
Consume Prolog-RLM as a pinned reusable symbolic library through a thin Python bridge, without copying/reimplementing its policy semantics inside Agent Zero.
Bootstrap integration
Prefer a persistent SWI-Prolog sidecar or narrowly supervised synchronous process boundary with typed JSON messages. Keep process/language failure isolated from the Agent Zero framework runtime.
Initial bridge contract:
Input:
Output:
No output field grants tool authority.
Dependency policy
mainin production.rlm_context_budget+ tiny audited admission predicates.rlm_artifactwhen focused conformance tests pass.rlm_prompt_compilerbehind exact-path tests until its current anonymous-dict/schema regression is demonstrably fixed.Failure semantics
2026-08-24 convergence directive
One Prolog-RLM plugin
Agent Zero must expose one bundled Prolog-RLM plugin,
_prolog_rlm.The current split between
_prolog_rlmand_prolog_context_compileris an implementation migration state, not the target architecture. Context compilation, provider-visible projection, persistent symbolic workers, completion, memory-KB integration, tools, and settings belong behind the single_prolog_rlmplugin boundary.Migration may temporarily preserve internal Python modules/packages to avoid import churn, but only
_prolog_rlmmay remain discoverable/configurable as a runtime plugin at completion.Required invariants:
500-token starting context
The symbolic provider-visible context budget starts at 500 tokens for the minimal/default working projection.
500 is the starting/floor target for a simple turn, not permission to truncate required user input or tool protocol until the request becomes invalid. Prolog-RLM should grow context deliberately from that lean starting point based on task requirements, dependencies, evidence, and tool contracts.
Tests must distinguish:
The current 16k/12k context defaults are not the target operating behavior for Symbolics.
Provider compatibility belongs at the boundary
Provider-specific request legality must be normalized before dispatch. In particular, OpenRouter routes backed by Z.AI that reject
tool_choice: requiredmust receive a supported value such asautorather than failing with HTTP 400.Do not globally force
autofor providers that support stronger tool-choice semantics. Capability/compatibility selection belongs in the transport/provider policy and must be covered by #58.Persistent Prolog KB memory integration
When
_prolog_rlmis active, persistent memory/state intended for symbolic reasoning must be available to Prolog as durable KB facts/records rather than existing only as vector-memory prose.The memory lifecycle and epistemic rules remain owned by #4. This epic owns the runtime/bridge path that makes those persistent KBs queryable by the single Prolog-RLM control plane.
RAGE loop
Review exact current Prolog-RLM commit/APIs/tests -> analyze smallest safe ABI -> generate bridge + fixtures -> execute both happy/failure paths -> inspect Prolog and Python failures independently -> repeat.
Acceptance
rlm_context_budgetpath has a focused conformance suite._prolog_rlmis the only discoverable Prolog-RLM plugin.Non-goal
Do not embed the entire Agent Zero loop into Prolog in this epic.
Mirrored from
lost-rob0t/a0-symbolics#8via tracker sync.