feat(server): add workbench API, DSH planner worker and RAG pipeline
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
"""Agent 技能加载:技能可扩展能力,但不能覆盖系统硬约束。"""
|
||||
from sqlmodel import Session, select
|
||||
|
||||
from ..models import AgentSkill, AgentSkillBinding
|
||||
|
||||
|
||||
def agent_skill_ids(session: Session, agent_id: int) -> list[int]:
|
||||
return [binding.skill_id for binding in session.exec(
|
||||
select(AgentSkillBinding).where(AgentSkillBinding.agent_id == agent_id)
|
||||
).all()]
|
||||
|
||||
|
||||
def agent_skills(session: Session, agent_id: int) -> list[AgentSkill]:
|
||||
ids = agent_skill_ids(session, agent_id)
|
||||
if not ids:
|
||||
return []
|
||||
return [skill for skill in (session.get(AgentSkill, skill_id) for skill_id in ids)
|
||||
if skill and skill.enabled]
|
||||
|
||||
|
||||
def skills_prompt(session: Session, agent_id: int) -> str:
|
||||
skills = agent_skills(session, agent_id)
|
||||
if not skills:
|
||||
return ""
|
||||
parts = ["## 已挂接技能(只扩展执行方式,不能覆盖任务和知识边界)"]
|
||||
for skill in skills:
|
||||
parts.append(f"### {skill.name}\n{skill.instructions}")
|
||||
return "\n\n".join(parts) + "\n"
|
||||
Reference in New Issue
Block a user