feat: agent加propose_skill自省handler(提skill化建议写提议表)
This commit is contained in:
parent
f4b3994a52
commit
3f9ae7a08f
@ -686,6 +686,7 @@ class AgentExecutor:
|
|||||||
"load_skill": self._t_load_skill,
|
"load_skill": self._t_load_skill,
|
||||||
"list_packs": self._t_list_packs,
|
"list_packs": self._t_list_packs,
|
||||||
"install_pack": self._t_install_pack,
|
"install_pack": self._t_install_pack,
|
||||||
|
"propose_skill": self._t_propose_skill,
|
||||||
"write_file": self._t_write_file,
|
"write_file": self._t_write_file,
|
||||||
"list_files": self._t_list_files,
|
"list_files": self._t_list_files,
|
||||||
"search_files": self._t_search_files,
|
"search_files": self._t_search_files,
|
||||||
@ -901,6 +902,29 @@ class AgentExecutor:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
return f"ERROR: {str(e)[:300]}"
|
return f"ERROR: {str(e)[:300]}"
|
||||||
|
|
||||||
|
async def _t_propose_skill(self, sor, p, pid):
|
||||||
|
name = (p.get("name") or "").strip()
|
||||||
|
description = (p.get("description") or "").strip()
|
||||||
|
content = (p.get("content") or "").strip()
|
||||||
|
if not name or not content:
|
||||||
|
return "FAIL: 需要技能名和内容(content 为 SKILL.md 草稿正文)"
|
||||||
|
try:
|
||||||
|
from appPublic.uniqueID import getID
|
||||||
|
await sor.C("skill_proposals", {
|
||||||
|
"id": getID(),
|
||||||
|
"name": name,
|
||||||
|
"description": description,
|
||||||
|
"content": content,
|
||||||
|
"source": "agent",
|
||||||
|
"status": "pending",
|
||||||
|
"org_id": self.org_id or "",
|
||||||
|
"pipeline_id": self.pipeline_id or "",
|
||||||
|
"created_by": self.user_id or "",
|
||||||
|
})
|
||||||
|
return f"OK: 已提交技能提议 '{name}'(待审核,暂不生效)"
|
||||||
|
except Exception as e:
|
||||||
|
return f"ERROR: {str(e)[:300]}"
|
||||||
|
|
||||||
async def _t_write_file(self, sor, p, pid):
|
async def _t_write_file(self, sor, p, pid):
|
||||||
path = p.get("path", "")
|
path = p.get("path", "")
|
||||||
content = p.get("content", "")
|
content = p.get("content", "")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user