mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-07-28 08:56:13 +00:00
Replace the full-metadata <available_skills> system-prompt block with a compact <skill_index> (names only) and an on-demand describe_skill tool when skills.deferred_discovery: true (default: false / backward compat). New modules: - skills/catalog.py — SkillCatalog (immutable, searchable; select: has no cap, keyword/prefix search caps at MAX_RESULTS=5) - skills/describe.py — build_describe_skill_tool(catalog) closure; build_skill_search_setup() wires SkillSearchSetup into both the LangGraph agent factory (agent.py) and DeerFlowClient (client.py) Changes: - Skill @dataclass(frozen=True); allowed_tools/required_secrets list→tuple - Skill First prompt line gated on skill_names (deferred vs legacy wording) - get_skills_prompt_section: short-circuit storage on deferred path; merge user_id (upstream) + skill_names (this PR) params - describe_skill tool parameter named "name" (matches prompt wording) - select: branch removes [:MAX_RESULTS] cap (exact request, not ranking) - AGENTS.md: document deferred_discovery config field + new modules Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
24 lines
769 B
Python
24 lines
769 B
Python
from __future__ import annotations
|
|
|
|
from .catalog import SkillCatalog
|
|
from .describe import SkillSearchSetup, build_describe_skill_tool, build_skill_search_setup
|
|
from .installer import SkillAlreadyExistsError, SkillSecurityScanError
|
|
from .storage import LocalSkillStorage, SkillStorage, get_or_new_skill_storage
|
|
from .types import Skill
|
|
from .validation import ALLOWED_FRONTMATTER_PROPERTIES, _validate_skill_frontmatter
|
|
|
|
__all__ = [
|
|
"Skill",
|
|
"SkillCatalog",
|
|
"SkillSearchSetup",
|
|
"build_describe_skill_tool",
|
|
"build_skill_search_setup",
|
|
"ALLOWED_FRONTMATTER_PROPERTIES",
|
|
"_validate_skill_frontmatter",
|
|
"SkillAlreadyExistsError",
|
|
"SkillSecurityScanError",
|
|
"SkillStorage",
|
|
"LocalSkillStorage",
|
|
"get_or_new_skill_storage",
|
|
]
|