MujicaUI

Agent Ops & Motion · #283

CostBreakdown 浅色主题渲染快照
浅色 · 渲染快照
CostBreakdown 深色主题渲染快照
深色 · 渲染快照

283 CostBreakdown 费用分解

用途

按模型、工具或步骤汇总调用次数、token 与费用,表格可排序,底部显示合计。

最小示例

var state feedback.CostBreakdownState
items := []feedback.CostItem{
	{Model: "opus", Tool: "search", InputTokens: 1000, OutputTokens: 200, Cost: 0.30},
	{Model: "haiku", Tool: "search", InputTokens: 4000, OutputTokens: 500, Cost: 0.05},
}
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	feedback.CostBreakdown(c, &state, items, feedback.CostBreakdownOptions{GroupBy: feedback.CostByModel}).Element.Height(260)
}
ui.Render(view, 400, 300, 1)

签名:func CostBreakdown(c *ui.Context, s *CostBreakdownState, items []CostItem, opts CostBreakdownOptions) DataTableView

参数

CostItem

字段类型默认值含义
Model, Tool, Stepstring""分组依据;为空归入“(未命名)”。
InputTokens, OutputTokensint0token 数;为负 panic。
Costfloat640费用;为负或非有限值 panic。

CostBreakdownOptions

字段类型默认值含义
GroupByCostGroupCostByModelCostByModel、CostByTool、CostByStep。
Currencystring"$"金额前缀。
Decimalsint0(即 2)金额小数位;为负 panic。
Versionint0原地修改数据时递增;新切片或长度变化自动刷新。

CostBreakdownState.Table 保存排序与选择。汇总只在 items 或分组方式变化时计算。给返回的 Element 一个高度。

状态

  • 费用列含占比条与百分比,数字为等宽数字。
  • 合计行为衬线“合计”、token 总数与加粗金额,朗读完整合计。

事件

  • 同 DataTable:Changed()、SortChanged()。

键盘操作

  • 同 DataTable:↑/↓ 选择行,列标题可用键盘排序。

限制

  • 金额以浮点汇总并按小数位显示,不做货币舍入规则。