Agents 0.0.2
Edge AI Agents SDK
Loading...
Searching...
No Matches
agents::AutonomousAgent Class Reference

An agent that operates autonomously to complete a task. More...

#include <autonomous_agent.h>

Inheritance diagram for agents::AutonomousAgent:
agents::Agent

Classes

struct  Step
 Step in the agent's execution. More...
 

Public Types

enum class  PlanningStrategy {
  ZERO_SHOT ,
  TREE_OF_THOUGHT ,
  PLAN_AND_EXECUTE ,
  REFLEXION ,
  REACT
}
 Planning strategy for the agent. More...
 
enum class  State {
  READY ,
  RUNNING ,
  WAITING ,
  COMPLETED ,
  FAILED ,
  STOPPED
}
 Agent execution state. More...
 

Public Member Functions

 AutonomousAgent (std::shared_ptr< AgentContext > context)
 Constructor.
 
 ~AutonomousAgent () override=default
 Destructor.
 
void init () override
 Initialize the agent.
 
Task< JsonObjectrun (const String &task) override
 Run the agent with a task using coroutines.
 
void stop () override
 Stop the agent.
 
void provideFeedback (const String &feedback) override
 Provide human feedback.
 
void setSystemPrompt (const String &system_prompt)
 Set the system prompt.
 
void setPlanningStrategy (PlanningStrategy strategy)
 Set the planning strategy.
 
std::vector< StepgetSteps () const
 Get the steps executed so far.
 
void setStepCallback (std::function< void(const Step &)> callback)
 Set a callback for when a step is completed.
 
Task< StringwaitForFeedback (const String &message, const JsonObject &context) override
 Wait for feedback using coroutines.
 
void runAsync (const String &task, std::function< void(const JsonObject &)> callback)
 Run the agent with a callback.
 
std::shared_ptr< AgentContextgetContext () const
 Get the agent's context.
 
State getState () const
 Get the agent's current state.
 
void setOptions (const Options &options)
 Set execution options.
 
const OptionsgetOptions () const
 Get execution options.
 
void setStatusCallback (std::function< void(const String &)> callback)
 Set a callback for status updates.
 

Detailed Description

An agent that operates autonomously to complete a task.

Autonomous agents start with a task, plan steps to accomplish it, and use tools to execute those steps. They can be configured with various strategies and human-in-the-loop options.

Examples
autonomous_agent_example.cpp, coroutine_example.cpp, and simple_agent.cpp.

Member Enumeration Documentation

◆ PlanningStrategy

Planning strategy for the agent.

Enumerator
ZERO_SHOT 

Generate actions without explicit planning.

TREE_OF_THOUGHT 

Generate multiple reasoning paths.

PLAN_AND_EXECUTE 

Generate a plan then execute it.

REFLEXION 

Reflect on past steps for improvement.

REACT 

Reasoning and acting.

◆ State

enum class agents::Agent::State
stronginherited

Agent execution state.

Enumerator
READY 

Ready to start execution.

RUNNING 

Currently executing.

WAITING 

Waiting for human input.

COMPLETED 

Execution completed successfully.

FAILED 

Execution failed.

STOPPED 

Execution stopped by user.

Constructor & Destructor Documentation

◆ AutonomousAgent()

agents::AutonomousAgent::AutonomousAgent ( std::shared_ptr< AgentContext > context)

Constructor.

Parameters
contextThe agent context

Member Function Documentation

◆ getContext()

std::shared_ptr< AgentContext > agents::Agent::getContext ( ) const
inherited

Get the agent's context.

Returns
The agent context

◆ getOptions()

const Options & agents::Agent::getOptions ( ) const
inherited

Get execution options.

Returns
The execution options

◆ getState()

State agents::Agent::getState ( ) const
inherited

Get the agent's current state.

Returns
The agent state

◆ getSteps()

std::vector< Step > agents::AutonomousAgent::getSteps ( ) const

Get the steps executed so far.

Returns
The steps executed so far

◆ init()

void agents::AutonomousAgent::init ( )
overridevirtual

Initialize the agent.

Implements agents::Agent.

◆ provideFeedback()

void agents::AutonomousAgent::provideFeedback ( const String & feedback)
overridevirtual

Provide human feedback.

Parameters
feedbackThe feedback

Reimplemented from agents::Agent.

◆ run()

Task< JsonObject > agents::AutonomousAgent::run ( const String & task)
overridevirtual

Run the agent with a task using coroutines.

Parameters
taskThe task to run
Returns
The result of the task

Implements agents::Agent.

◆ runAsync()

void agents::Agent::runAsync ( const String & task,
std::function< void(const JsonObject &)> callback )
inherited

Run the agent with a callback.

Parameters
taskThe task to run
callbackThe callback to run

◆ setOptions()

void agents::Agent::setOptions ( const Options & options)
inherited

Set execution options.

Parameters
optionsThe execution options

◆ setPlanningStrategy()

void agents::AutonomousAgent::setPlanningStrategy ( PlanningStrategy strategy)

Set the planning strategy.

Parameters
strategyThe planning strategy

◆ setStatusCallback()

void agents::Agent::setStatusCallback ( std::function< void(const String &)> callback)
inherited

Set a callback for status updates.

Parameters
callbackThe callback to set

◆ setStepCallback()

void agents::AutonomousAgent::setStepCallback ( std::function< void(const Step &)> callback)

Set a callback for when a step is completed.

Parameters
callbackThe callback

◆ setSystemPrompt()

void agents::AutonomousAgent::setSystemPrompt ( const String & system_prompt)

Set the system prompt.

Parameters
system_promptThe system prompt

◆ stop()

void agents::AutonomousAgent::stop ( )
overridevirtual

Stop the agent.

Reimplemented from agents::Agent.

◆ waitForFeedback()

Task< String > agents::AutonomousAgent::waitForFeedback ( const String & message,
const JsonObject & context )
overridevirtual

Wait for feedback using coroutines.

Parameters
messageThe message to wait for feedback
contextThe context
Returns
The feedback

Reimplemented from agents::Agent.