Go SDK for the AgentAPI HTTP API.
go get github.com/coder/agentapi-sdk-gopackage main
import (
"context"
"fmt"
"log"
agentapisdk "github.com/coder/agentapi-sdk-go"
)
func main() {
ctx := context.Background()
client, err := agentapisdk.NewClient("http://localhost:3284")
if err != nil {
log.Fatal(err)
}
// Send a message to the agent.
_, err = client.PostMessage(ctx, agentapisdk.PostMessageParams{
Content: "Hello, agent!",
Type: agentapisdk.MessageTypeUser,
})
if err != nil {
log.Fatal(err)
}
// Check the agent's status.
status, err := client.GetStatus(ctx)
if err != nil {
log.Fatal(err)
}
fmt.Println("Agent status:", status.Status)
// Subscribe to server-sent events.
events, errCh, err := client.SubscribeEvents(ctx)
if err != nil {
log.Fatal(err)
}
for {
select {
case ev, ok := <-events:
if !ok {
return
}
switch e := ev.(type) {
case agentapisdk.EventMessageUpdate:
fmt.Println("Message update:", e.Message)
case agentapisdk.EventStatusChange:
fmt.Println("Status change:", e.Status)
}
case err, ok := <-errCh:
if !ok {
return
}
if err != nil {
log.Fatal(err)
}
}
}
}The gen/ package is auto-generated from the OpenAPI spec using
oapi-codegen. See
gen/README.md for the exact command.
See the AgentAPI repository for the full API specification and server documentation.