Files
EmailBill/Service/AgentFramework/AgentResult.cs

142 lines
3.2 KiB
C#
Raw Normal View History

2026-01-12 14:34:03 +08:00
namespace Service.AgentFramework;
/// <summary>
/// Agent 执行结果的标准化输出模型
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
public record AgentResult<T>
{
/// <summary>
/// Agent 执行的主要数据结果
/// </summary>
public T Data { get; init; } = default!;
/// <summary>
/// 多轮提炼后的总结信息3-5 句,包含关键指标)
/// </summary>
public string Summary { get; init; } = string.Empty;
/// <summary>
/// Agent 执行的步骤链(用于可视化和调试)
/// </summary>
public List<ExecutionStep> Steps { get; init; } = new();
/// <summary>
/// 元数据(统计信息、性能指标等)
/// </summary>
public Dictionary<string, object?> Metadata { get; init; } = new();
/// <summary>
/// 执行是否成功
/// </summary>
public bool Success { get; init; } = true;
/// <summary>
/// 错误信息(如果有的话)
/// </summary>
public string? Error { get; init; }
}
/// <summary>
/// Agent 执行步骤
/// </summary>
public record ExecutionStep
{
/// <summary>
/// 步骤名称
/// </summary>
public string Name { get; init; } = string.Empty;
/// <summary>
/// 步骤描述
/// </summary>
public string Description { get; init; } = string.Empty;
/// <summary>
/// 步骤状态Pending, Running, Completed, Failed
/// </summary>
public string Status { get; init; } = "Pending";
/// <summary>
/// 执行耗时(毫秒)
/// </summary>
public long DurationMs { get; init; }
/// <summary>
/// 步骤输出数据(可选)
/// </summary>
public object? Output { get; init; }
/// <summary>
/// 错误信息(如果步骤失败)
/// </summary>
public string? Error { get; init; }
}
/// <summary>
/// 分类结果模型
/// </summary>
public record ClassificationResult
{
/// <summary>
/// 原始摘要
/// </summary>
public string Reason { get; init; } = string.Empty;
/// <summary>
/// 分类名称
/// </summary>
public string Classify { get; init; } = string.Empty;
/// <summary>
/// 交易类型
/// </summary>
public TransactionType Type { get; init; }
/// <summary>
/// AI 置信度评分 (0-1)
/// </summary>
public double Confidence { get; init; }
/// <summary>
/// 影响的交易记录 ID
/// </summary>
public List<long> TransactionIds { get; init; } = new();
/// <summary>
/// 参考的相似记录
/// </summary>
public List<string> References { get; init; } = new();
}
/// <summary>
/// 账单解析结果模型
/// </summary>
public record TransactionParseResult
{
/// <summary>
/// 金额
/// </summary>
public decimal Amount { get; init; }
/// <summary>
/// 摘要
/// </summary>
public string Reason { get; init; } = string.Empty;
/// <summary>
/// 日期
/// </summary>
public DateTime Date { get; init; }
/// <summary>
/// 交易类型
/// </summary>
public TransactionType Type { get; init; }
/// <summary>
/// 分类
/// </summary>
public string? Classify { get; init; }
}