feat: release 2.4.0 with original cases and automatic human review
This commit is contained in:
1 parent
baf069854b
commit
4dc2057d43
66 files changed
+1390
-206
No files matched your search
@@ -781,7 +781,7 @@ class FlashRunner:
|
||||
action_dict["normalized_start_coordinates"] = norm_start
|
||||
action_dict["normalized_end_coordinates"] = norm_end
|
||||
action_dict.update(metadata.get("target_semantics") or {})
|
||||
for key in ("input_verification", "execution", "side_effect"):
|
||||
for key in ("input_verification", "execution", "side_effect", "source"):
|
||||
if key in metadata:
|
||||
action_dict[key] = metadata[key]
|
||||
if metadata.get("plugin_id"):
|
||||
|
||||
@@ -412,6 +412,7 @@ class VisualStepSummarizer(StepMemoryService):
|
||||
engine,
|
||||
response,
|
||||
source=f"lens:visual_transition:{self._model_name}",
|
||||
model=self._model_name,
|
||||
update_last_prompt=False,
|
||||
)
|
||||
|
||||
|
||||
@@ -303,8 +303,19 @@ class PlannerNode:
|
||||
screen = await UnifiedMobileController(self.ctx).get_screen_data()
|
||||
human_message_content.append({"type": "text", "text": screen.observation_text})
|
||||
plugins = getattr(self.ctx, "plugins", None)
|
||||
if plugins:
|
||||
human_message_content.append({"type": "text", "text": plugins.prompt()})
|
||||
plugin_catalog = plugins.prompt() if plugins else ""
|
||||
if plugin_catalog:
|
||||
human_message_content.append(
|
||||
{
|
||||
"type": "text",
|
||||
"text": "规划与执行的工具分工:规划器只使用本阶段绑定的笔记工具制定计划;"
|
||||
"下列插件清单描述执行器获授权的能力。执行器可以调用 plugin_load 加载插件。"
|
||||
"规划器当前工具列表里没有 plugin_load 或设备动作,不表示执行器缺少这些能力。"
|
||||
"将需要的插件、待观察的目标和验收条件写入计划,由执行器根据实际加载与操作回执"
|
||||
"确认可用性;未取得回执时保留待确认,不预先记录为插件不可用或要求用户补授权。",
|
||||
}
|
||||
)
|
||||
human_message_content.append({"type": "text", "text": plugin_catalog})
|
||||
if screenshot_b64:
|
||||
human_message_content.append(
|
||||
{
|
||||
|
||||
@@ -92,6 +92,11 @@ async def exec_action(
|
||||
return False, str(e)
|
||||
|
||||
try:
|
||||
from artemis.data_engine.evidence_sources import android_action_source
|
||||
|
||||
source = android_action_source(getattr(getattr(ctx, "device", None), "device_id", None))
|
||||
if source:
|
||||
action_item["source"] = source
|
||||
res = await session.call(tool_name, wire_args)
|
||||
except Exception as e:
|
||||
action_item.update(execution="unknown", side_effect="possible")
|
||||
|
||||
Reference in new issue
Block a user