You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
2.2 KiB
C#

1 month ago
using System;
using System.Collections.Generic;
namespace AI.Workflow
{
/// <summary>
/// 规划结果
/// </summary>
public class Plan
{
/// <summary>
/// 规划唯一标识符
/// </summary>
public string Id { get; set; } = Guid.NewGuid().ToString();
/// <summary>
/// 规划目标
/// </summary>
public string Goal { get; set; } = string.Empty;
/// <summary>
/// 规划步骤列表
/// </summary>
public List<PlanStep> Steps { get; } = new List<PlanStep>();
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedAt { get; set; } = DateTime.Now;
}
/// <summary>
/// 规划步骤
/// </summary>
public class PlanStep
{
/// <summary>
/// 步骤唯一标识符
/// </summary>
public string Id { get; set; } = Guid.NewGuid().ToString();
/// <summary>
/// 步骤序号
/// </summary>
public int Order { get; set; }
/// <summary>
/// 步骤描述
/// </summary>
public string Description { get; set; } = string.Empty;
/// <summary>
/// 步骤状态
/// </summary>
public PlanStepStatus Status { get; set; } = PlanStepStatus.Pending;
/// <summary>
/// 执行结果
/// </summary>
public string? Result { get; set; }
/// <summary>
/// 错误信息
/// </summary>
public string? ErrorMessage { get; set; }
/// <summary>
/// 开始执行时间
/// </summary>
public DateTime? StartedAt { get; set; }
/// <summary>
/// 完成时间
/// </summary>
public DateTime? CompletedAt { get; set; }
}
/// <summary>
/// 规划步骤状态
/// </summary>
public enum PlanStepStatus
{
/// <summary>
/// 待执行
/// </summary>
Pending,
/// <summary>
/// 执行中
/// </summary>
Running,
/// <summary>
/// 已完成
/// </summary>
Completed,
/// <summary>
/// 执行失败
/// </summary>
Failed
}
}