feat: 新增追问模式和iOS本地化,重构后端输出模型

This commit is contained in:
qzl
2026-04-29 14:26:15 +08:00
parent f497afbff2
commit 16cb47e75a
39 changed files with 1346 additions and 600 deletions
+6 -12
View File
@@ -55,7 +55,7 @@ from core.agentscope.runtime.protocols import PipelineLike
@dataclass(frozen=True)
class StageExecutionResult:
message: Msg
payload: dict[str, Any]
validated_output: WorkerAgentOutputLite | FollowUpOutput
response_metadata: dict[str, Any]
@@ -242,7 +242,7 @@ class AgentScopeRunner:
derived_divination=derived_divination,
language=language,
)
worker_output = worker_output_model.model_validate(worker_result.payload)
worker_output = worker_result.validated_output
await self._emit_step_event(
pipeline=pipeline,
run_input=run_input,
@@ -284,9 +284,10 @@ class AgentScopeRunner:
llm_config=stage_config.llm_config,
tools=None,
now_utc=datetime.now(timezone.utc),
runtime_mode=runtime_mode.value,
)
_, worker_payload_raw = await finalize_json_response(
_, worker_payload = await finalize_json_response(
model=tracking_model,
formatter=formatter,
base_messages=[Msg("system", system_prompt, "system"), *input_messages],
@@ -294,7 +295,6 @@ class AgentScopeRunner:
retries=2,
language=language,
)
worker_payload = worker_output_model.model_validate(worker_payload_raw)
response_metadata = self._llm_pricing_service.build_usage_metadata(
model=stage_config.model_code,
usage_summary=tracking_model.usage_summary(),
@@ -312,9 +312,8 @@ class AgentScopeRunner:
name=stage_config.agent_type.value,
role="assistant",
content=worker_payload.answer,
metadata=worker_payload.model_dump(mode="json", exclude_none=True),
),
payload=worker_payload.model_dump(mode="json", exclude_none=True),
validated_output=worker_payload,
response_metadata=response_metadata,
)
@@ -336,7 +335,7 @@ class AgentScopeRunner:
question=raw_user_text, language=language
)
if derived_divination is not None and context_messages:
if context_messages:
last = context_messages[-1]
if last.role == "user":
context_messages[-1] = Msg(
@@ -346,11 +345,6 @@ class AgentScopeRunner:
)
return context_messages
if context_messages:
last = context_messages[-1]
if last.role == "user":
return context_messages
user_msg = Msg(name="user", role="user", content=user_text)
return [*context_messages, user_msg]