feat: load_skill工具handler(按需加载技能正文)
This commit is contained in:
parent
2fded1f83c
commit
4e7157c161
@ -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", "")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user