Agent Module Documentation

This document provides an overview of the public functions available in the agent module, based on the header include/agent.h and implementation in src/agent.c.


Public Function Signatures and Descriptions

agent_handle agent_create(const char *goal, messages_handle messages)

  • Purpose: Creates a new agent instance with a specified goal and message history.
  • Details: Initializes the agent's state, loads message history, and sets up necessary resources.

void agent_destroy(agent_handle agent)

  • Purpose: Cleans up and frees resources associated with an agent.
  • Details: Destroys HTTP client, message history, and frees memory.

void agent_set_max_iterations(agent_handle agent, int max)

  • Purpose: Sets the maximum number of iterations for the agent's run loop.
  • Details: Limits the number of recursive or iterative steps.

void agent_set_verbose(agent_handle agent, bool verbose)

  • Purpose: Enables or disables verbose logging.
  • Details: Controls detailed output during agent execution.

void agent_set_is_subagent(agent_handle agent, bool is_subagent)

  • Purpose: Marks the agent as a sub-agent.
  • Details: Influences behavior such as output verbosity.

void agent_set_tool_registry(agent_handle agent, tool_registry_t *registry)

  • Purpose: Assigns a specific tool registry to the agent.
  • Details: Customizes available tools for the agent.

agent_state_t agent_get_state(agent_handle agent)

  • Purpose: Retrieves the current state of the agent.
  • Details: States include idle, running, error, completed, etc.

const char *agent_get_error(agent_handle agent)

  • Purpose: Gets the last error message.
  • Details: Useful for debugging and error handling.

int agent_get_iteration_count(agent_handle agent)

  • Purpose: Returns the number of iterations performed.
  • Details: Useful for monitoring progress.

char *agent_chat(const char *user_message, messages_handle messages)

  • Purpose: Runs the agent with a user message and returns the response.
  • Details: Executes the main loop, handling response processing, tool calls, and recursion.

char *agent_chat_with_limit(const char *user_message, int max_iterations, messages_handle messages)

  • Purpose: Runs the agent with a user message, limiting iterations.
  • Details: Useful for bounded execution.

This documentation summarizes the core public API of the agent module, facilitating integration and understanding of its capabilities.