feat: load_skill工具handler(按需加载技能正文)

This commit is contained in:
ymq 2026-08-15 19:43:11 +08:00
parent 2fded1f83c
commit 4e7157c161

View File

@ -626,6 +626,7 @@ class AgentExecutor:
"run_command": self._t_run_command,
# ── 通用工具集(Hermes CLI 能力子集)──
"read_file": self._t_read_file,
"load_skill": self._t_load_skill,
"write_file": self._t_write_file,
"list_files": self._t_list_files,
"search_files": self._t_search_files,
@ -793,6 +794,23 @@ class AgentExecutor:
except Exception as e:
return f"ERROR: {str(e)[:300]}"
async def _t_load_skill(self, sor, p, pid):
name = (p.get("name") or "").strip()
if not name:
return "FAIL: 需要技能名称"
if not self._skill_loader:
return "FAIL: 技能系统未初始化"
merged = self._skill_loader.get_merged(
pipeline_id=self.pipeline_id or "",
role=self.role or "",
project_id=self.project_id or "",
org_id=self.org_id or "",
user_id=self.user_id or "")
if name not in merged:
names = ", ".join(sorted(merged.keys())) or "(无可用技能)"
return f"FAIL: 技能 '{name}' 不存在。可用技能: {names}"
return merged[name].to_prompt_block()
async def _t_write_file(self, sor, p, pid):
path = p.get("path", "")
content = p.get("content", "")