feat: deliver Xingbang four-agent v2 workspace

This commit is contained in:
NathanAlex7
2026-09-08 02:49:06 +08:00
parent 58fb2854dc
commit b5073c3841
32 changed files with 2061 additions and 12 deletions
+2 -2
View File
@@ -17,7 +17,7 @@ PROMPT = """你是兴邦客户经理的提交前风险研判助手,通过 mini
本次未提供的能力必须明确说明。输出关注事项、证据、规则依据和核查建议。"""
def invoke_risk_task(skill, context, evidence, endpoint, base_dir=None):
def invoke_risk_task(skill, context, evidence, endpoint, base_dir=None, system_prompt=None):
base_dir = base_dir or Path(__file__).resolve().parents[1]
available = {s["id"]:s for s in discover_skills(base_dir)}
requested = skill.get("native_skills", [])
@@ -30,7 +30,7 @@ def invoke_risk_task(skill, context, evidence, endpoint, base_dir=None):
message = json.dumps({"task":skill.get("instructions","综合风险研判"),"selected_native_skills":requested,"required_tools":["list_data_cards","read_data_card","read_checks_and_rules"],"instruction":"先读取以上工具;存在所选原生 Skill 时读取 read_selected_skill。"},ensure_ascii=False)
with httpx.Client(trust_env=False,follow_redirects=False,timeout=45) as client:
model = ChatOpenAI(model=os.getenv("XINGBANG_LOCAL_MODEL_NAME","local-model"),api_key=os.getenv("XINGBANG_LOCAL_MODEL_KEY","local"),base_url=endpoint.rstrip("/"),http_client=client,temperature=.1,max_tokens=1600,max_retries=0)
result = agent_manager.invoke_scoped(message, model=model, tools=tools, system_prompt=PROMPT)
result = agent_manager.invoke_scoped(message, model=model, tools=tools, system_prompt=system_prompt or PROMPT)
tool_messages=[m["data"] for m in result["messages"] if m["type"]=="tool"]
names={m.get("name") for m in tool_messages}
if not {"list_data_cards","read_checks_and_rules"}.issubset(names) or context.get("peer_datasets") and "read_data_card" not in names: