Rename LLM agent reasoning config property to reasoning_feedback #142
Labels
No labels
auto/blocked-by-deps
auto/ci-timeout
auto/claimed-implementer
auto/claimed-merge
auto/claimed-reviewer
auto/driver-down
auto/invariant-violation
auto/last-attempt-tier-0
auto/last-attempt-tier-1
auto/last-attempt-tier-2
auto/last-attempt-tier-min
Automation Tracking
auto/needs-conflict-resolution
auto/needs-implementer
auto/postmortem
auto/ready-to-merge
auto/restart-throttled
auto/revert
auto/sentinel
auto/stale-inactivity
auto/unstable
Blocked
Bounty
$100
Bounty
$1000
Bounty
$10000
Bounty
$20
Bounty
$2000
Bounty
$250
Bounty
$50
Bounty
$500
Bounty
$5000
Bounty
$750
MoSCoW
Could have
MoSCoW
Must have
MoSCoW
Should have
Needs Feedback
Points
1
Points
13
Points
2
Points
21
Points
3
Points
34
Points
5
Points
55
Points
8
Points
88
Priority
Backlog
Priority
CI Blocker
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Signed-off: Owner
Signed-off: Scrum Master
Signed-off: Tech Lead
Spike
State
Completed
State
Duplicate
State
In Progress
State
In Review
State
Paused
State
Unverified
State
Verified
State
Wont Do
Type
Automation
Type
Bug
Type
Discussion
Type
Documentation
Type
Epic
Type
Feature
Type
Legendary
Type
Refactor
Type
Support
Type
Task
Type
Testing
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Depends on
#77 Epic: LLM Agent Runtime Stabilization — reliability, resource enforcement & correctness hardening
cleveragents/cleveractors-core
#143 refactor(agents): rename reasoning config field to reasoning_feedback
cleveragents/cleveractors-core
Reference
cleveragents/cleveractors-core#142
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?
Metadata
Commit Message:
refactor(agents): rename reasoning config field to reasoning_feedbackBranch:
feature/m1-rename-reasoning-config-propertyBackground and context
ADR-2036 (spec v1.3.0, §4.4 / §4.4.1) introduced an optional boolean field named
reasoningon thetype: llmagent configuration. Whentrueand the agent'sprovideris non-native (any provider outsideopenai/anthropic/google), it routes the agent through a reasoning-aware client that preserves and round-trips the provider'sreasoning_contentacross a multi-turn tool-call loop.The name
reasoningcollides conceptually with the wire-protocol concept it is toggling — "the model performed reasoning" versus "round-trip the model's reasoning content back to it on the next turn." Operators skimmingagents.<name>configuration cannot tell from the field name alone that it controls feedback/round-tripping behavior rather than, say, enabling a reasoning-capable model or a "thinking mode" toggle. Renaming the field toreasoning_feedbackmakes its actual effect (feeding the provider's own reasoning content back to it) explicit.This is a rename of a normative field name in the Actor Configuration Standard (
docs/index.md, currently version 1.5.0) and therefore requires the ADR process:docs/adr/ADR-2036-reasoning-aware-provider-routing.mdmust be revised in place (a new proposedD-N, no new ADR file) and accepted beforedocs/index.mdor any code is touched.Current behavior
type: llmagent configuration accepts a boolean field literally namedreasoning(defaultfalse).src/cleveractors/agents/llm_client.pyreads it viaconfig.get("reasoning", False), validates it is a boolean ("'reasoning' must be a boolean, got ..."), and passes it as areasoning: boolparameter.src/cleveractors/agents/llm.pyinspects the same"reasoning"key when constructing/validating agent configuration.docs/index.md§4.4 documents the field asreasoning; §4.4.1 shows areasoning: trueexample; §21.1 records its introduction under spec version 1.3.0.features/reasoning_provider_routing.feature,features/llm_agent_coverage.feature) and Robot (robot/reasoning_provider_routing.robot) tests, plusdocs/guides/reasoning-aware-llm-agents.md, all reference thereasoning:key by that name.Expected behavior
reasoning_feedbackinstead ofreasoning, with identical semantics, default (false), validation, and routing effect (non-native providers only).docs/adr/ADR-2036-reasoning-aware-provider-routing.mdcarries an accepted revision documenting the rename decision and rationale.docs/index.md§4.4 / §4.4.1 reflect the new field name, and §21.1 Revision History has a new row attributing the change to the accepted ADR-2036 revision (per the project's spec-revision procedure — no other inline edits todocs/index.md).docs/guides/reasoning-aware-llm-agents.mdguide referencereasoning_feedbackinstead ofreasoning.reasoning_content/reasoning_details(the wire-protocol fields the flag round-trips),cleveractors.agents.llm_reasoning.ReasoningChatModel, and the "reasoning-aware routing" feature/module naming are explicitly out of scope and must not change.Acceptance criteria
docs/adr/ADR-2036-reasoning-aware-provider-routing.mdcontains an accepted revision (newD-N, added in place — no new ADR file) proposing and justifying the rename fromreasoningtoreasoning_feedback, including the spec-versioning treatment (the revision decides whether this is a breaking major-version bump or ships with a deprecation path, per the standard's own semver rules in §0).docs/index.md§4.4 field table names the propertyreasoning_feedback(the literal stringreasoningno longer appears as a field name in §4.4/§4.4.1).docs/index.md§4.4.1 example configuration usesreasoning_feedback: true.docs/index.md§21.1 Revision History has a new row attributing the rename to the accepted ADR-2036 revision.src/cleveractors/agents/llm_client.pyreadsconfig.get("reasoning_feedback", False); the validation error message referencesreasoning_feedback; thereasoning: boolparameter is renamed toreasoning_feedback: boolthroughout the module.src/cleveractors/agents/llm.pyreferences the renamed key wherever it inspectstype: llmagent configuration.src/cleveractors/reads or writes the literal config key"reasoning"for this purpose.docs/guides/reasoning-aware-llm-agents.mdexamples and prose usereasoning_feedback.features/reasoning_provider_routing.feature,features/llm_agent_coverage.feature, and their step files (features/steps/llm_agent_steps.py,features/steps/reasoning_provider_routing_steps.py) exercisereasoning_feedbackinstead ofreasoning.robot/reasoning_provider_routing.robot(androbot/ReasoningRoutingTestLib.pyif it references the key) exercisereasoning_feedback.nox(full default session suite) passes.nox -s coverage_reportreports coverage at or above the project's configured threshold.Supporting information
docs/index.md— §4.4 field table (~line 316), §4.4.1 example (~lines 360-369), routing prose (~line 386), §21.1 revision row for v1.3.0 (~line 4046).docs/adr/ADR-2036-reasoning-aware-provider-routing.md— D-1 defines the current field name and its default/validation rules.docs/guides/reasoning-aware-llm-agents.md.src/cleveractors/agents/llm_client.py—config.get("reasoning", False), boolean validation,reasoning: boolparameter.src/cleveractors/agents/llm.py— configuration inspection referencing the"reasoning"key.features/reasoning_provider_routing.feature,features/llm_agent_coverage.feature,features/steps/llm_agent_steps.py,features/steps/reasoning_provider_routing_steps.py,features/mocks/reasoning_model.py.robot/reasoning_provider_routing.robot,robot/ReasoningRoutingTestLib.py.Subtasks
D-N, in place — no new ADR file) todocs/adr/ADR-2036-reasoning-aware-provider-routing.mdrenaming thereasoningLLM agent configuration field toreasoning_feedback, including rationale and the spec-versioning treatmentdocs/index.md§4.4 / §4.4.1 to the new field name and example, and add a §21.1 Revision History row attributing the change to the accepted ADR-2036 revisionsrc/cleveractors/agents/llm_client.pyfromreasoningtoreasoning_feedbacksrc/cleveractors/agents/llm.pydocs/guides/reasoning-aware-llm-agents.mdexamples to usereasoning_feedbackfeatures/reasoning_provider_routing.feature,features/llm_agent_coverage.feature, and their step definitions to usereasoning_feedbackrobot/reasoning_provider_routing.robotto usereasoning_feedbacknox -s coverage_reportnox(all default sessions), fix any errorsDefinition of Done
This issue is complete when:
docs/index.mdreflects the renamed property with a correctly attributed §21.1 revision-history entry.master, reviewed, and merged.