Files
EmailBill/Service/AgentFramework/AgentResult.cs
2026-01-12 14:34:03 +08:00

142 lines
3.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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; }
}