Skip to content

Pass config to tool constructor#169

Merged
EvilFreelancer merged 5 commits intomainfrom
feat/tool_configuration
Feb 10, 2026
Merged

Pass config to tool constructor#169
EvilFreelancer merged 5 commits intomainfrom
feat/tool_configuration

Conversation

@snow-ghost
Copy link
Copy Markdown
Collaborator

Closes #155

Comment on lines +64 to +66
max_searches = self.tool_configs.get(WebSearchTool.tool_name, {}).get("max_searches") or (
self.config.search.max_searches if self.config.search else 4
)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Мудрёно выглядит. На уровне дизайна фичи я бы предложил в тулу добавить модельку конфига и доставать уже оттуда явным образом и дефолтными значениями без вот этих условностей с хардкодом и get()

Общий флоу:

  • считывается конфиг
  • Валидируется pydantic моделью конфига тулы
  • попадает уже в виде объектной структуры, минуя неочевидные dict операции

Но с таким подходом может быть неочевидно как этот конфиг поставлять из общего, надо продумать

Comment on lines +180 to +183
tools: list[ToolItem] = Field(
default_factory=list,
description="List of tool names, classes, or dicts with 'name' and optional kwargs for the tool",
)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Общая идея: tools должны стать моделями дефиниций уже здесь чтобы дальше сырые значения словарей не вспылвали

Вообще не уверен, насколько это правильнее, но как идея на подумать, собирать конфиги на уровне definition, Как это происходит с AgentDefinition в default_config_override_validator чтобы не переусложнять работу фабрики и не размазывать точки отказа невалидированных данных словаря

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я бы предложил описывать настройки тулов только в глобальном tools, а у агентов чтобы был просто списк какие тулы ему нужны list[str], всё же вероятночть что у разных агентов будут разные настройки у тулов кажется мне сомнительной.

Copy link
Copy Markdown
Member

@virrius virrius Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

могу представить такую ситуацию, но реальных кейсов нет, можно оставить на будущее

Можно попробовать в чатике поузнавать

EvilFreelancer
EvilFreelancer previously approved these changes Feb 8, 2026
@EvilFreelancer EvilFreelancer merged commit d090c6a into main Feb 10, 2026
2 checks passed
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.

Pass config to tool constructor

3 participants