openmanus.cpp/include/flow/planning_flow.h

64 lines
1.4 KiB
C
Raw Normal View History

2025-03-10 02:38:39 +08:00
#ifndef OPENMANUS_FLOW_PLANNING_FLOW_H
#define OPENMANUS_FLOW_PLANNING_FLOW_H
#include <string>
#include <memory>
#include <unordered_map>
#include "base_flow.h"
namespace openmanus {
/**
* @class PlanningFlow
* @brief 使
*/
class PlanningFlow : public BaseFlow {
public:
/**
* @brief
* @param agent
*/
PlanningFlow(std::shared_ptr<AgentBase> agent);
/**
* @brief
* @param agents
*/
PlanningFlow(const std::vector<std::shared_ptr<AgentBase>>& agents);
/**
* @brief
* @param input_text
* @return
*/
virtual std::string execute(const std::string& input_text) override;
private:
/**
* @brief
* @return
*/
std::string getPlanStatus();
/**
* @brief
* @param step_id ID
* @param status
* @return
*/
bool updateStepStatus(const std::string& step_id, const std::string& status);
/**
* @brief
* @return
*/
int getCurrentStepIndex();
private:
std::string active_plan_id_;
std::unordered_map<std::string, std::unordered_map<std::string, std::string>> step_execution_tracker_;
};
} // namespace openmanus
#endif // OPENMANUS_FLOW_PLANNING_FLOW_H