forked from ChaiHao/BPOS-MVP
度量八指标全部接真:DMN 覆盖率与单位成本不再恒为 0
两处度量是空的,查下来都是「没人记」而不是「算错了」: ① **DMN 覆盖率恒 0**:判据只认标题里的「求值:」,把跑得最多的**纯工具步**整个漏掉。 DMN 决策表与机检正是落在纯工具/工具步上。改为按步类型分: 确定性求值(pure-tool / tool)÷ 判断总数(再加 LLM 步)——「临场搬进确定」的进度表。 顺带把**步类型显式写进留痕**:判据该由引擎给出,不靠解析标题后缀。 现读数 66%。 ② **单位成本恒 0**:任务消耗只记步数,token / 活跃时长 / 调人次数**从来没人累加** —— 于是八指标里的单位成本永远是 0,预算熔断与打扰上限也形同虚设。 · tick 计这一拍真正花掉的时间(挂起等人的不算活跃,那是世界等待); · flow 的 LLM 步与 loop 的每一回合都把 token 计入; · 每发一张卡计一次调人。 现读数:A2 单轮 12k token、A3 3.4k;单位成本 73 token 每放行单。 另修:执行卡的 ask 优先取 `card.ask`(此前只认 `reason`,新卡面格式下会退化成标题)。 第四轮端到端复跑:整条链闭环,消耗数据真实。 gates: tsc / eslint / depcruise(336 模块)/ api-report / 429 测试 全绿 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
@@ -51,6 +51,8 @@ export type AgentRunnerDeps = {
|
||||
readonly gateway: ModelGateway;
|
||||
/** 活动声明的自定义模型名 */
|
||||
readonly modelOf: (taskId: TaskId) => Promise<string>;
|
||||
/** token 回报:计入任务预算 —— 不计,预算熔断就永远不会响 */
|
||||
readonly onUsage: (taskId: TaskId, tokens: number) => Promise<void>;
|
||||
};
|
||||
|
||||
export function createAgentRunner(deps: AgentRunnerDeps): {
|
||||
@@ -95,6 +97,7 @@ export function createAgentRunner(deps: AgentRunnerDeps): {
|
||||
taskId,
|
||||
label: 'loop-turn',
|
||||
});
|
||||
await deps.onUsage(taskId, result.usage.inputTokens + result.usage.outputTokens);
|
||||
return normalize(result.object, enabled);
|
||||
} catch (error) {
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user