Skip to content

fix(tutorbot): correct question_type → question_types in deep-question SKILL.md#538

Closed
wedone wants to merge 3 commits into
HKUDS:devfrom
wedone:fix/deep-question-skill-param-name
Closed

fix(tutorbot): correct question_type → question_types in deep-question SKILL.md#538
wedone wants to merge 3 commits into
HKUDS:devfrom
wedone:fix/deep-question-skill-param-name

Conversation

@wedone

@wedone wedone commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Description

The deep-question SKILL.md documented the config parameter as question_type (singular), but the capability implementation in deeptutor/capabilities/deep_question.py reads question_types (plural) via overrides.get("question_types").

This mismatch causes TutorBot's LLM to generate CLI commands with --config question_type=<type>, which the capability silently ignores, resulting in the parameter having no effect. Users see errors like "question_type 参数不被当前版本支持" and the LLM must self-correct by retrying without the parameter.

Fix: Align SKILL.md parameter name with the actual code — question_typequestion_types.

Related Issues

N/A (no existing issue found)

Module(s) Affected

  • agents
  • api
  • config
  • core
  • knowledge
  • logging
  • services
  • tools
  • utils
  • web (Frontend)
  • docs (Documentation)
  • scripts
  • tests
  • Other: tutorbot/skills

Checklist

  • I have read and followed the contribution guidelines.
  • My code follows the project's coding standards.
  • I have run pre-commit run --all-files and fixed any issues.
  • I have added relevant tests for my changes.
  • I have updated the documentation (if necessary).
  • My changes do not introduce any new security vulnerabilities.

Additional Notes

Root cause analysis:

# deeptutor/capabilities/deep_question.py L88
raw_types = overrides.get("question_types") or []  # ← plural
# deeptutor/tutorbot/skills/deep-question/SKILL.md L31 (before fix)
| `--config question_type=<type>` | ... |  # ← singular

The --config key=value CLI flag maps directly to config_overrides[key], so question_type and question_types are different keys. The SKILL.md was documenting the wrong key name.

…n SKILL.md

The deep-question SKILL.md documented the config parameter as
'question_type' (singular), but the capability implementation
in deeptutor/capabilities/deep_question.py reads
'question_types' (plural) via overrides.get('question_types').

This mismatch causes TutorBot's LLM to generate CLI commands
with --config question_type=<type>, which the capability
silently ignores, resulting in unexpected behavior.
@wedone wedone changed the base branch from main to dev June 2, 2026 06:16
wedone added 2 commits June 2, 2026 14:43
…nd deep-solve SKILL.md

deep-research SKILL.md documented a 'sources' config field, but
DeepResearchRequestConfig (extra='forbid') only accepts 'mode' and
'depth'. Passing 'sources' causes a validation error. Sources are
actually controlled via -t tool flags and --kb, not --config-json.

deep-solve SKILL.md documented 'detailed_answer=false', but
DeepSolveRequestConfig is an empty model with extra='forbid'.
Passing any config key causes a validation error.

Both fixes align SKILL.md documentation with the actual request
contracts defined in deeptutor/capabilities/request_contracts.py.
--config key=value only passes scalar values, but question_types
requires a list. Using --config question_types=multiple_choice
passes a string which fails Pydantic validation. Must use
--config-json '{"question_types":["multiple_choice"]}' instead.
@wedone wedone closed this Jun 9, 2026
@wedone wedone deleted the fix/deep-question-skill-param-name branch June 9, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant