ForcePilot/backend/package/yuxi/agents/backends/knowledge_base_backend.py
Wenjie Zhang c772e5ca3a refactor: Agent 运行时架构重构 - 移除 RuntimeConfigMiddleware,统一上下文准备与工具解析
- 删除 runtime_config_middleware.py,将功能合并到:
  - prepare_agent_runtime_context(): 统一上下文准备入口
  - resolve_configured_runtime_tools(): 运行时工具解析
- context.py: 规范化函数重命名 (_names → _keys),重构 config 加载流程
- chatbot/deep_agent graph: 集成新上下文准备流程,移除 RuntimeConfigMiddleware 引用
- skills_middleware: 抽取 normalize_string_list 为共享工具函数
- subagent_service: get_subagents_from_names → get_subagents_from_slugs,支持 slug 查询
- 对应更新 repositories/services/routers 适配新接口
2026-05-26 17:40:17 +08:00

23 lines
803 B
Python

from __future__ import annotations
from typing import Any
from yuxi import knowledge_base
async def resolve_visible_knowledge_bases_for_context(context) -> list[dict[str, Any]]:
uid = getattr(context, "uid", None)
if not uid:
setattr(context, "_visible_knowledge_bases", [])
return []
result = await knowledge_base.get_databases_by_uid(str(uid))
databases = result.get("databases") or []
enabled_knowledges = getattr(context, "knowledges", None)
if enabled_knowledges is not None:
enabled_ids = {str(value).strip() for value in enabled_knowledges if str(value).strip()}
databases = [db for db in databases if str(db.get("kb_id") or "").strip() in enabled_ids]
setattr(context, "_visible_knowledge_bases", databases)
return databases