simple-agents-ffi 0.2.26

C-compatible FFI bindings for SimpleAgents
Documentation

simple-agents-ffi

C-compatible bindings for SimpleAgents.

Build

cargo build -p simple-agents-ffi --release

The header is at crates/simple-agents-ffi/include/simple_agents.h.

Usage

#include "simple_agents.h"
#include <stdio.h>

int main() {
    SAClient *client = sa_client_new_from_env("openai");
    if (!client) {
        char *err = sa_last_error_message();
        fprintf(stderr, "Error: %s\n", err ? err : "unknown");
        sa_string_free(err);
        return 1;
    }

    char *response = sa_complete(client, "gpt-4", "Hello!", 128, 0.7f);
    if (!response) {
        char *err = sa_last_error_message();
        fprintf(stderr, "Error: %s\n", err ? err : "unknown");
        sa_string_free(err);
        sa_client_free(client);
        return 1;
    }

    printf("%s\n", response);
    sa_string_free(response);
    sa_client_free(client);
    return 0;
}

Notes

  • sa_client_new_from_env expects provider env vars (e.g. OPENAI_API_KEY).
  • Pass max_tokens <= 0 to omit max tokens.
  • Pass temperature < 0.0 to omit temperature.
  • sa_complete_messages_json supports message arrays and returns structured JSON including tool calls, usage, and optional healing/coercion metadata (mode: standard|healed_json|schema).
  • sa_stream_messages streams message-based responses through a callback, emitting JSON events (chunk, error, done).