feat(runtime): add planner reflection history with rationale and thinking
Tests / Test failed: 2, passed: 849
Tests / Test failed: 2, passed: 849
- ToolCallDecision captures thinking blocks and pre-tool text output
- AnthropicToolCallingClient supports optional extended thinking (budget_tokens + beta header)
- PlannedStep carries rationale and thinking from each LLM decision
- WorldEvent replaces scene_summary with rationale/thinking/page fields (backward-compatible)
- AI planner system prompt instructs reflection before each tool call
- _history_summary() emits compact {page, rationale, action, success} dicts
- Cloud DB migration 0011 adds nullable rationale/thinking columns to planner_decision_log
- OpenAI client extracts reasoning_content into thinking field
This commit is contained in:
+27
@@ -0,0 +1,27 @@
|
||||
"""Add rationale and thinking columns to planner_decision_log."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
revision = "0011_planner_decision_log_reflection"
|
||||
down_revision = "0010_skill_management"
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.add_column(
|
||||
"planner_decision_log",
|
||||
sa.Column("rationale", sa.Text(), nullable=True),
|
||||
)
|
||||
op.add_column(
|
||||
"planner_decision_log",
|
||||
sa.Column("thinking", sa.Text(), nullable=True),
|
||||
)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_column("planner_decision_log", "thinking")
|
||||
op.drop_column("planner_decision_log", "rationale")
|
||||
Reference in New Issue
Block a user