报告与自动化
list_alt 任务队列
@if (deleteError()) { } @if (activeQueue().length === 0) { } @for (session of activeQueue(); track trackSession($index, session)) { }
description 笔记与计划
@if (noteKeys().length > 1) {
@for (key of noteKeys(); track trackNoteKey($index, key)) { }
} @if (noteKeys().length === 0) { } @if (noteKeys().length > 0) { }
@if (consolidatedBlocks().length > 0 || showPlanningLoader() || agentService.currentSession()) {
@if (agentService.viewedModel(); as model) { }
}
@if (agentService.isSessionContentLoading()) {
progress_activity 正在加载执行历史…
} @if (!agentService.isSessionContentLoading() && phases().length === 0 && !showPlanningLoader() && !hasModelRequest() && startupWorkItems().length === 0) {
sensors

尚未选择执行记录

请从右侧任务列表选择会话,查看实时执行记录。

} @if (!agentService.isSessionContentLoading() && (phases().length > 0 || showPlanningLoader() || startupWorkItems().length > 0)) {
@if (startupWorkItems().length > 0) {
准备耗时 {{ startupPreparationDuration() }} 秒
@for (item of startupWorkItems(); track item) {
{{ item.message }} · {{ item.isActive ? 'Waiting ' : 'Waited ' }}{{ item.elapsed }}
}
} @for (phase of phases(); track trackPhase($index, phase); let first = $first) { @if(phase.demonstration; as demo) {
人工示范 · {{demo.source === 'android' ? '安卓' : demo.source === 'computer' ? '电脑' : '安卓 + 电脑'}} · {{demoLabel(demo.status)}} @if(demo.analysis){
} @if(demo.error){

{{demo.error}}

} @for(track of demo.media; track $index){@for(segment of track.segments; track segment.file){
{{track.kind === 'android' ? '安卓' : '电脑'}}示范录像 · 片段 {{$index + 1}}下载录像
}}
} @else if(phase.conversation; as message) {
{{message.role === 'user' ? 'person' : message.role === 'assistant' ? 'auto_awesome' : 'info'}}{{message.role === 'user' ? '你的指导' : message.role === 'assistant' ? '探索助手' : '探索记录'}} · {{message.created_at * 1000 | date:'HH:mm:ss'}} @if(pendingQuestion() === message.id){等待你回答}
@if(message.recommendation){
建议回复:{{message.recommendation}} @if(pendingQuestion() === message.id){}
}
} @else {
@if (hasVisibleBlocks(phase) && phase.blocks[0]?.data?.phase !== 'outcome') {
{{ isCheckerPhase(phase) ? 'Checked' : 'Worked' }} for {{ phase.durationSeconds }}s @if (phase.tokens) { · {{ formatTokenCount(phase.tokens) }} }
} @if (hasVisibleBlocks(phase)) {
@for (block of phase.blocks; track trackBlock($index, block)) { @if (hasVisibleContent(block)) {
@if (block.data?.extra_metadata?.injected_instruction; as guidance) {
forum用户指导 · 已进入第 {{block.data.step_number}} 步

{{ guidance }}

{{ hasRecordedDeviceAction(block.data.action_taken) ? '本步设备动作见下方;是否完成目标需以实际屏幕为准。' : '本步没有记录设备动作。' }}
} @if (isCheckerBlock(block)) { @if (block.data.phase === 'outcome' && block.data.test_result) { } @else {
{{ getCheckerPhaseLabel(block) }} @if (block.data.phase !== 'outcome' && block.data.subgoal_text) { {{ block.data.subgoal_text }} } {{ getCheckerStatusLabel(block) }}
@if (!isCheckerMuted(block) && getCheckerItems(block).length > 0) {
    @for (item of getCheckerItems(block); track $index) {
  1. {{ $index + 1 }} {{ item.text }} {{ getCheckMethodLabel(item, block) }}
  2. }
}
} } @if (getSortedStepEvents(block.data).length > 0) {
@for (item of getSortedStepEvents(block.data); track trackStepEvent(itemIdx, item); let itemIdx = $index) { @if (isCheckerBlock(block) && item.type === 'thinking') {
{{ isCheckerSegmentResetNotice(item) ? getCheckerSegmentResetMessage(item) : '思考过程' }}
@if (item.data.text && item.data.text.trim()) {
}
} @if (isCheckerBlock(block) && item.type === 'text' && isCheckerTextVisible(item)) { @if (item.data.isReset) {
{{ formatResetMessage(getCheckerSegmentResetMessage(item), isCheckerSegmentRunning(block, itemIdx)) }}
} @if (item.data.text && item.data.text.trim()) {
执行过程
} } @if (!isCheckerBlock(block) && item.type === 'thinking') { @if (getBlockResets(block, true).length > 0) {
@for (reset of getBlockResets(block, true); track reset.id || $index) {
{{ formatResetMessage(reset.message, reset.isWaiting) }}
}
} @if (getStreamDisplayText(block.id + '-native', item.data.text) || (isBlockRunning(block) && !isStreamRewinding(block.id + '-native') && !hasWaitingReset(block, true))) {
思考过程
@if (getStreamDisplayText(block.id + '-native', item.data.text)) {
}
} } @if (!isCheckerBlock(block) && item.type === 'text') { @if (getBlockResets(block, false).length > 0) {
@for (reset of getBlockResets(block, false); track reset.id || $index) {
{{ formatResetMessage(reset.message, reset.isWaiting) }}
}
} @if (getStreamDisplayText(block.id, item.data.text) || (isBlockRunning(block) && !isStreamRewinding(block.id) && !hasWaitingReset(block, false))) {
执行过程
@if (getStreamDisplayText(block.id, item.data.text)) {
}
} } @if (isReportStatusAction(item.data)) {
{{ getReportStatusValue(item.data) === 'failed' ? 'cancel' : 'task_alt' }} {{ getReportStatusValue(item.data) === 'failed' ? '任务执行失败' : '任务已完成' }} {{ getReportStatusValue(item.data) === 'failed' ? 'error' : 'check_circle' }} {{ getReportStatusValue(item.data) === 'failed' ? '失败' : '已完成' }} {{ isActionExpanded('action-' + block.id + '-' + itemIdx) ? 'expand_less' : 'expand_more' }}
@if (!isActionExpanded('action-' + block.id + '-' + itemIdx) && getReportStatusExplanation(item.data)) {
} @if (isActionExpanded('action-' + block.id + '-' + itemIdx)) {
@if (getReportStatusExplanation(item.data); as expText) {
报告与发现
}
@if (getStepPreImageUrl(block.data, item.data) || getStepPostImageUrl(block.data, item.data)) {
@if (getStepPreImageUrl(block.data, item.data)) {
最终验证状态
最终屏幕截图
} @if (getStepPostImageUrl(block.data, item.data)) {
操作后验证
操作后截图
}
}
}
} @if (item.type === 'action' && !isReportStatusAction(item.data) && (isAndroidAction(item.data) || item.data?.type === 'action')) {
{{ getActionIcon(item.data) }} {{ getActionTitle(item.data) }} @if (isActionFailed(item.data, block.data)) { error 失败 } {{ isActionExpanded('action-' + block.id + '-' + itemIdx) ? 'expand_less' : 'expand_more' }}
@if (!isActionExpanded('action-' + block.id + '-' + itemIdx) && (getActionTargetText(item.data) || getActionInputText(item.data) || getActionCoords(item.data))) {
@if (getActionTargetText(item.data)) {
目标: "{{ getActionTargetText(item.data) }}"
} @if (getActionInputText(item.data)) {
{{ getActionInputLabel(item.data) }}: "{{ getActionInputText(item.data) }}"
} @if (getActionCoords(item.data)) {
坐标: {{ getActionCoords(item.data) }}
}
} @if (isActionExpanded('action-' + block.id + '-' + itemIdx)) {
@if (getActionTargetText(item.data)) {
目标 "{{ getActionTargetText(item.data) }}"
} @if (getActionInputText(item.data)) {
{{ getActionInputLabel(item.data) }} "{{ getActionInputText(item.data) }}"
} @if (getActionCoords(item.data)) {
坐标 {{ getActionCoords(item.data) }}
} @if (getActionBounds(item.data)) {
目标边界 [{{ getActionBounds(item.data) }}]
} @if (getActionClass(item.data)) {
目标类型 {{ getActionClass(item.data) }}
} @for (param of getActionExtraParams(item.data); track trackParam($index, param)) {
{{ param.key }} {{ param.value }}
} @if (!getActionTargetText(item.data) && !getActionInputText(item.data) && !getActionCoords(item.data) && !getActionBounds(item.data) && !getActionClass(item.data) && getActionExtraParams(item.data).length === 0) {
操作 {{ getActionTitle(item.data) }}
}
@if (getStepPreImageUrl(block.data, item.data) || getStepPostImageUrl(block.data, item.data)) {
@if (getStepPreImageUrl(block.data, item.data)) {
操作前
操作前截图
} @if (getStepPostImageUrl(block.data, item.data)) {
操作后
操作后截图
}
} @if (isActionFailed(item.data, block.data)) {
error {{ getActionErrorMessage(item.data, block.data) }}
}
}
} @if (item.type === 'tool') { @if (isBackendSwitchNote(item.data)) {
{{ getBackendSwitchMessage(item.data) }}
} @if (isLLMRetry(item.data)) {
@for (retry of getLLMRetryEntries(item.data); track retry; let retryIndex = $index) {
@if (isLLMRetryEntryWaiting(retry)) { 模型暂时不可用 @if (getLLMRetryEntryDelay(retry); as retryDelay) { · Retrying in {{ retryDelay }}… } 频繁重试可能是接口限流导致,可提高调用额度或降低并发数。 } @if (!isLLMRetryEntryWaiting(retry)) { Retrying LLM request · Waited {{ getLLMRetryEntryWaited(retry) }} }
}
} @if (isDisplayableLLMFailure(item.data)) {
error 模型请求失败 @if (isTerminalLLMFailure(item.data)) { pause_circle 已暂停 } @else { warning 失败 } @if (hasLLMFailureRetryEntries(item.data)) { {{ isActionExpanded('llm-failure-' + block.id + '-' + itemIdx) ? 'expand_less' : 'expand_more' }} }
发生了什么: 自动重试后仍无法完成模型请求。
失败原因: {{ getLLMErrorText(item.data) }}
@if (getLLMFailureWaited(item.data); as waited) {
已等待: {{ waited }}
} @if (isActionExpanded('llm-failure-' + block.id + '-' + itemIdx)) {
重试详情
@for (retry of getLLMFailureRetryEntries(item.data); track retry; let retryIndex = $index) {
Retry {{ retryIndex + 1 }} Planned {{ getLLMRetryEntryDelay(retry) || '0s' }} · Waited {{ getLLMRetryEntryWaited(retry) }}
}
}
@if (isTerminalLLMFailure(item.data)) {
任务已暂停 · 当前没有执行中的步骤
}
} @if (shouldShowTool(item.data, block.data) && !isEvidenceTool(item.data)) {
{{ isVideoTool(item.data) ? getVideoAnalysisLabel(item.data) : getToolDisplayLabel(item.data) }}{{ ((isNoteTool(item.data) && getToolKey(item.data)) || isVideoTool(item.data)) ? ':' : '' }} @if (isNoteTool(item.data) && getToolKey(item.data); as key) { draft {{ key }} } @if (isVideoTool(item.data)) { videocam {{ getVideoAnalysisRangeLabel(item.data) }} @if (getVideoAnalysisDetail(item.data); as detail) { · {{ detail }} } }
} @if (shouldShowTool(item.data, block.data) && isEvidenceTool(item.data)) {
{{ getToolIcon(item.data) }} {{ getToolTitle(item.data) }} @if (getPluginToolView(item.data); as plugin) { {{ plugin.kind }} · {{ plugin.status }} } @if (isToolFailed(item.data)) { error 失败 } {{ isActionExpanded('tool-' + block.id + '-' + itemIdx) ? 'expand_less' : 'expand_more' }}
@if (!getPluginToolView(item.data) && !isActionExpanded('tool-' + block.id + '-' + itemIdx) && (isAdbCommandTool(item.data) ? getAdbCommandLine(item.data) : (getToolTargetText(item.data) || getToolInputText(item.data) || getToolCoords(item.data) || getToolAnalysisText(item.data) || getToolGenericDetails(item.data)))) {
@if (isAdbCommandTool(item.data)) { @if (getAdbCommandLine(item.data)) {
命令: {{ getAdbCommandLine(item.data) }}
} @if (getAdbCwd(item.data)) {
工作目录: "{{ getAdbCwd(item.data) }}"
} @if (getAdbTerminalId(item.data)) {
终端 ID: "{{ getAdbTerminalId(item.data) }}"
} } @if (!isAdbCommandTool(item.data)) { @if (getToolTargetText(item.data)) {
目标: "{{ getToolTargetText(item.data) }}"
} @if (getToolInputText(item.data)) {
{{ getToolInputLabel(item.data) }}: "{{ getToolInputText(item.data) }}"
} @if (getToolCoords(item.data)) {
坐标: {{ getToolCoords(item.data) }}
} @if (getToolAnalysisText(item.data)) {
分析: "{{ getToolAnalysisText(item.data) }}"
} @if (getToolGenericDetails(item.data)) {
详情: "{{ getToolGenericDetails(item.data) }}"
} }
} @if (isActionExpanded('tool-' + block.id + '-' + itemIdx)) {
@if (isAdbCommandTool(item.data)) { @if (getAdbCommandLine(item.data)) {
命令 {{ getAdbCommandLine(item.data) }}
} @if (getAdbCwd(item.data)) {
工作目录 "{{ getAdbCwd(item.data) }}"
} @if (getAdbTerminalId(item.data)) {
终端 ID {{ getAdbTerminalId(item.data) }}
} } @if (getPluginToolView(item.data); as plugin) { @for (param of plugin.args; track param.key) {
{{ param.key }} {{ param.value }}
} @if (plugin.result) {
实际结果 {{ plugin.result }}
} } @if (!isAdbCommandTool(item.data) && !getPluginToolView(item.data)) { @if (getToolTargetText(item.data)) {
目标 "{{ getToolTargetText(item.data) }}"
} @if (getToolInputText(item.data)) {
{{ getToolInputLabel(item.data) }} "{{ getToolInputText(item.data) }}"
} @if (getToolCoords(item.data)) {
坐标 {{ getToolCoords(item.data) }}
} @if (getToolAnalysisText(item.data)) {
分析 "{{ getToolAnalysisText(item.data) }}"
} @if (getToolGenericDetails(item.data)) {
详情 "{{ getToolGenericDetails(item.data) }}"
} @for (param of getToolExtraParams(item.data); track trackParam($index, param)) {
{{ param.key }} {{ param.value }}
} }
@if (getStepPreImageUrl(block.data, item.data) || getStepPostImageUrl(block.data, item.data)) {
@if (getStepPreImageUrl(block.data, item.data)) {
操作前
操作前截图
} @if (getStepPostImageUrl(block.data, item.data)) {
{{ getPluginToolView(item.data)?.auxiliary ? '观察截图' : '操作后' }}
操作后截图
}
} @if (isToolFailed(item.data)) {
error {{ getToolErrorMessage(item.data) }}
}
}
} } }
} @if (hasCheckerResult(block) && !(block.data.phase === 'outcome' && block.data.test_result)) {
@for (verdict of getCheckerVerdicts(block); track $index) {
{{ getVerdictItemNumber(block, verdict, $index) }} {{ getVerdictIcon(verdict.status) }} {{ verdict.evidence || getVerdictStatusText(verdict.status) }} @if (verdict.suggestion) { {{ verdict.suggestion }} }
} @for (note of getCheckerNotes(block); track note) {
{{ note }}
}
}
} }
}
} } @if (!conversationMessages().length && awaitingGuidance().length) {
@for (item of awaitingGuidance(); track item.id) {
用户指导 · {{ guidanceStatusLabel(item) }}

{{ item.instruction }}

}
} @if (terminalFailureReason(); as reason) {
任务执行失败 · 原因

{{ reason }}

} @if (outputterReport(); as outReport) {
assignment_turned_in 任务报告
} @if (showPlanningLoader() && (startupWorkItems().length === 0 || startupPreparationIsComplete() || consolidatedBlocks().length > 0)) {
progress_activity {{ currentPlanningText() }}
}
}
@if (selectedZoomImage()) {
放大截图
}