openmanus.cpp/include/tool_base.h

54 lines
1.2 KiB
C
Raw Permalink Normal View History

2025-03-10 02:38:39 +08:00
#ifndef OPENMANUS_TOOL_BASE_H
#define OPENMANUS_TOOL_BASE_H
#include <string>
#include <vector>
#include <functional>
#include "mcp/include/mcp_message.h"
#include "mcp/include/mcp_tool.h"
namespace openmanus {
/**
* @class ToolBase
* @brief
*/
class ToolBase {
public:
ToolBase(const std::string& name, const std::string& description);
virtual ~ToolBase() = default;
/**
* @brief
* @param params
* @return
*/
virtual mcp::json execute(const mcp::json& params) = 0;
/**
* @brief
* @return
*/
std::string getName() const { return name_; }
/**
* @brief
* @return
*/
std::string getDescription() const { return description_; }
/**
* @brief
* @return
*/
mcp::json getParameters() const { return parameters_; }
protected:
std::string name_;
std::string description_;
mcp::json parameters_; // 参数定义使用JSON Schema格式
};
} // namespace openmanus
#endif // OPENMANUS_TOOL_BASE_H