From 6dbb5748628b9297f956fe705b957670b8692852 Mon Sep 17 00:00:00 2001 From: ymq Date: Fri, 21 Aug 2026 19:18:51 +0800 Subject: [PATCH] =?UTF-8?q?refactor(sdlc):=20=E6=8A=80=E8=83=BD=20base=5Fd?= =?UTF-8?q?ir=20=E6=94=B9=E5=85=A8=E5=B1=80=20skills/=EF=BC=88=E5=8D=95?= =?UTF-8?q?=E4=B8=80=E6=8A=80=E8=83=BD=E6=A0=91=EF=BC=8C=E5=8E=BB=E6=8E=89?= =?UTF-8?q?=E6=9C=BA=E6=9E=84=E5=89=AF=E6=9C=AC=E8=B7=AF=E5=BE=84=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - agent_loop: _build_role_skills_block/_load_skill_by_name 改 get_skills_base() - agent_loop_v2: _resolve_skills_base_dir 改返回 get_skills_base() --- pipeline_service/agent_loop.py | 12 ++++-------- pipeline_service/agent_loop_v2.py | 12 +++--------- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/pipeline_service/agent_loop.py b/pipeline_service/agent_loop.py index d544402..9cd8ed8 100644 --- a/pipeline_service/agent_loop.py +++ b/pipeline_service/agent_loop.py @@ -1016,10 +1016,8 @@ async def _build_role_skills_block(sor, project_id, role, org_id=""): try: pid = await _resolve_pipeline_id(project_id) from pipeline_core.skill_loader import get_skill_loader, SCOPE_PRIORITY, SCOPE_TAG - from pipeline_core.skill_pack import ensure_org_skills - from .workspace import get_workspace_base - ws_base = await get_workspace_base(sor) - skills_dir = ensure_org_skills(ws_base, org_id or '0') + from pipeline_core.skill_pack import get_skills_base + skills_dir = get_skills_base() loader = get_skill_loader(skills_dir) merged = loader.get_merged(pipeline_id=pid, role=role, project_id=project_id, org_id=org_id or '0') @@ -1050,10 +1048,8 @@ async def _load_skill_by_name(sor, project_id, role, org_id, name, file_path=Non try: pid = await _resolve_pipeline_id(project_id) from pipeline_core.skill_loader import get_skill_loader - from pipeline_core.skill_pack import ensure_org_skills - from .workspace import get_workspace_base - ws_base = await get_workspace_base(sor) - skills_dir = ensure_org_skills(ws_base, org_id or '0') + from pipeline_core.skill_pack import get_skills_base + skills_dir = get_skills_base() loader = get_skill_loader(skills_dir) merged = loader.get_merged(pipeline_id=pid, role=role, project_id=project_id, org_id=org_id or '0') diff --git a/pipeline_service/agent_loop_v2.py b/pipeline_service/agent_loop_v2.py index 0c780fd..f15bcfa 100644 --- a/pipeline_service/agent_loop_v2.py +++ b/pipeline_service/agent_loop_v2.py @@ -410,16 +410,10 @@ class AgentExecutor: self.space = GENERAL_SPACE if self.generic else (self.pipeline_id or GENERAL_SPACE) async def _resolve_skills_base_dir(self): - """技能根目录 = 机构工作目录/skills/(多租户隔离,不在全局应用目录)。""" + """技能根目录 = 全局 skills/(单一技能树,所有机构共享读,2026-08-21 重构)。""" try: - from sqlor.dbpools import DBPools - from pipeline_service.workspace import get_workspace_base - from pipeline_core.skill_pack import ensure_org_skills - db = DBPools() - async with db.sqlorContext("pipeline") as sor: - ws_base = await get_workspace_base(sor) - org_id = self.org_id or '0' - return ensure_org_skills(ws_base, org_id) + from pipeline_core.skill_pack import get_skills_base + return get_skills_base() except Exception: return self.config.skills.base_dir