Merge pull request #667 from pikasTech/fix/v02-hwlab663-trace-render-final
fix: 折叠 AgentRun 完成态 trace 噪音
This commit is contained in:
@@ -121,6 +121,30 @@ test("trace display rows suppress low-value AgentRun backend noise", () => {
|
|||||||
assert.match(text, /当前可见 1 个 device-pod/u);
|
assert.match(text, /当前可见 1 个 device-pod/u);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("trace display rows collapse successful assistant-only AgentRun turns", () => {
|
||||||
|
const events = [
|
||||||
|
event(1, "agentrun:request:accepted", { message: "accepted" }),
|
||||||
|
event(2, "agentrun:run:reused"),
|
||||||
|
event(3, "agentrun:command:created"),
|
||||||
|
event(4, "agentrun:runner-job:reused"),
|
||||||
|
event(5, "agentrun:backend:codex-app-server:reused"),
|
||||||
|
event(6, "agentrun:backend:turn/start:completed"),
|
||||||
|
event(7, "agentrun:assistant:message", {
|
||||||
|
type: "assistant",
|
||||||
|
status: "completed",
|
||||||
|
terminal: true,
|
||||||
|
message: "HWLAB663_FINAL_T2_OK"
|
||||||
|
}),
|
||||||
|
event(8, "agentrun:terminal:completed", { type: "result", terminal: true, status: "completed" })
|
||||||
|
];
|
||||||
|
|
||||||
|
const rows = traceDisplayRows({ traceId: "trc_agentrun_assistant_only", events }, events);
|
||||||
|
assert.equal(rows.length, 1);
|
||||||
|
assert.equal(rows[0].tone, "ok");
|
||||||
|
assert.match(rows[0].header, /助手最后一条消息/u);
|
||||||
|
assert.match(rows[0].body ?? "", /HWLAB663_FINAL_T2_OK/u);
|
||||||
|
});
|
||||||
|
|
||||||
function traceEvents() {
|
function traceEvents() {
|
||||||
return [
|
return [
|
||||||
event(1, "request:accepted", { promptSummary: "请检查 trace" }),
|
event(1, "request:accepted", { promptSummary: "请检查 trace" }),
|
||||||
|
|||||||
@@ -289,6 +289,7 @@ export function traceDisplayRows(trace, events) {
|
|||||||
const commandGroups = traceCommandExecutionGroups(events);
|
const commandGroups = traceCommandExecutionGroups(events);
|
||||||
const requestEvent = tracePrimaryRequestEvent(events);
|
const requestEvent = tracePrimaryRequestEvent(events);
|
||||||
const hasTerminalAssistant = events.some((event) => isTerminalAssistantTraceEvent(event));
|
const hasTerminalAssistant = events.some((event) => isTerminalAssistantTraceEvent(event));
|
||||||
|
const terminalAssistantOnly = hasTerminalAssistant && !events.some((event) => isCommandExecutionTraceEvent(event));
|
||||||
const renderedCommands = new Set();
|
const renderedCommands = new Set();
|
||||||
let requestRendered = false;
|
let requestRendered = false;
|
||||||
let setupRendered = false;
|
let setupRendered = false;
|
||||||
@@ -315,6 +316,7 @@ export function traceDisplayRows(trace, events) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (isRequestTraceEvent(event)) {
|
if (isRequestTraceEvent(event)) {
|
||||||
|
if (terminalAssistantOnly) continue;
|
||||||
if (!requestRendered) {
|
if (!requestRendered) {
|
||||||
const row = traceRequestSummaryRow(trace, event, requestEvent ?? event);
|
const row = traceRequestSummaryRow(trace, event, requestEvent ?? event);
|
||||||
if (row) rows.push(row);
|
if (row) rows.push(row);
|
||||||
@@ -323,6 +325,7 @@ export function traceDisplayRows(trace, events) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (isSetupTraceEvent(event)) {
|
if (isSetupTraceEvent(event)) {
|
||||||
|
if (terminalAssistantOnly) continue;
|
||||||
if (!setupRendered) {
|
if (!setupRendered) {
|
||||||
const row = traceSetupSummaryRow(trace, events, event);
|
const row = traceSetupSummaryRow(trace, events, event);
|
||||||
if (row) rows.push(row);
|
if (row) rows.push(row);
|
||||||
@@ -638,7 +641,7 @@ function traceAssistantSummaryRow(trace, event, index = 0) {
|
|||||||
return {
|
return {
|
||||||
rowId: `event:${event.seq ?? `${event.label ?? event.type ?? "assistant"}:${event.createdAt ?? "unknown"}`}`,
|
rowId: `event:${event.seq ?? `${event.label ?? event.type ?? "assistant"}:${event.createdAt ?? "unknown"}`}`,
|
||||||
seq: event.seq ?? null,
|
seq: event.seq ?? null,
|
||||||
tone: traceEventTone(event),
|
tone: terminal ? "ok" : traceEventTone(event),
|
||||||
header: terminal
|
header: terminal
|
||||||
? `${traceClock(event.createdAt)} 🤖 助手最后一条消息,轮次完成(总耗时 ${elapsed})`
|
? `${traceClock(event.createdAt)} 🤖 助手最后一条消息,轮次完成(总耗时 ${elapsed})`
|
||||||
: `${traceClock(event.createdAt)} 🤖 助手消息${index === 0 ? "(第一条)" : ""}`,
|
: `${traceClock(event.createdAt)} 🤖 助手消息${index === 0 ? "(第一条)" : ""}`,
|
||||||
|
|||||||
Reference in New Issue
Block a user