ForcePilot/backend/package/yuxi/agents/backends/composite.py

24 lines
872 B
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from deepagents.backends import CompositeBackend, StateBackend
from yuxi.agents.middlewares.skills_middleware import normalize_selected_skills
from .skills_backend import SelectedSkillsReadonlyBackend
def _get_visible_skills_from_runtime(runtime) -> list[str]:
"""获取运行时可见的 skills 列表"""
context = getattr(runtime, "context", None)
selected = getattr(context, "skills", None) or []
return normalize_selected_skills(selected)
def create_agent_composite_backend(runtime) -> CompositeBackend:
"""为 agent 构建 backend默认 StateBackend + /skills 路由只读 backend。"""
visible_skills = _get_visible_skills_from_runtime(runtime)
return CompositeBackend(
default=StateBackend(runtime),
routes={
"/skills/": SelectedSkillsReadonlyBackend(selected_slugs=visible_skills),
},
)