Skip to content

feat(agentstudio): add conversations commands via official SDK - #5

Closed
cmarguta-alg wants to merge 1 commit into
lw-oct-agent-studio-1from
lw-oct-agent-studio-2
Closed

cmarguta-alg wants to merge 1 commit into
lw-oct-agent-studio-1from
lw-oct-agent-studio-2

Conversation

@cmarguta-alg

Copy link
Copy Markdown
Owner

🤔 What

Adds algolia agentstudio conversations so you can list, get, export, delete, and purge Agent Studio conversations through the official Go SDK.

🤷 Why

#286 shipped the Agents resource. Conversations is the next sibling module under agentstudio (not nested under agents), using the same SDK client.

🔍 How

Section Group Change
Commands Register algolia agentstudio conversations with list/get/export/delete/purge calling the matching SDK methods.
Safety delete and purge require --confirm off TTY. purge also requires --start-date and/or --end-date so the delete is bounded.

list/get/export print JSON. Dates are YYYY-MM-DD. IDs in examples are UUID-shaped. No file reads or writes.

🧪 Testing

Stacked on #286. Merge that first, or check out this branch which includes it.

Reads and deletes need an API key with logs (admin keys skip the CLI ACL check). Replace <APP_ID> and <agent-id> with an Agent Studio app that already has conversations. Agent and conversation IDs are UUIDs. Pass --application-id if the selected profile app does not resolve.

Quick checks

task build
go test ./pkg/cmd/conversations/... ./pkg/cmd/agentstudio ./pkg/cmd/root -count=1
./algolia agentstudio conversations --help
./algolia agentstudio conversations list --help
./algolia agentstudio conversations purge --help

Expect tests green, conversations beside agents under agentstudio, and subcommands list, get, export, delete, purge. purge --help states a date bound is required.

Scenario 1 — list, get, export

Action: list conversations, get one, export a date range.

./algolia agentstudio conversations list <agent-id> --application-id <APP_ID> --page 1 --limit 20
./algolia agentstudio conversations get <agent-id> <conversation-id> --application-id <APP_ID>
./algolia agentstudio conversations export <agent-id> --application-id <APP_ID> --start-date 2020-01-01

Expectation: list returns data[] and pagination. get returns that conversation with a messages array. export prints a JSON array of full conversations.

Scenario 2 — delete confirmation (failure mode)

Action: delete without --confirm in a non-TTY, then with --confirm.

./algolia agentstudio conversations delete <agent-id> <conversation-id> --application-id <APP_ID>
./algolia agentstudio conversations delete <agent-id> <conversation-id> --application-id <APP_ID> --confirm
./algolia agentstudio conversations get <agent-id> <conversation-id> --application-id <APP_ID>

Expectation: the first command errors with --confirm required when non-interactive shell is detected and the conversation still exists. The second exits 0. get then fails because the conversation is gone.

Scenario 3 — purge requires a date bound (failure mode)

Action: purge without a date, then with --end-date and --confirm.

./algolia agentstudio conversations purge <agent-id> --application-id <APP_ID> --confirm
./algolia agentstudio conversations purge <agent-id> --application-id <APP_ID> --end-date 1970-01-01 --confirm

Expectation: the first command errors with `--start-date` or `--end-date` is required and does not call the API. The second exits 0 (may delete nothing if no conversations match).

⚠️ Dependencies

  • Stacked on #286 (lw-oct-agent-studio-1).
  • Target application must have Agent Studio. Conversation commands need the logs ACL.
  • No new environment variables.

Made with Cursor

…fficial SDK

Sibling module under agentstudio: list, get, export, delete, and a date-bounded purge.

Co-authored-by: Cursor <cursoragent@cursor.com>
@cmarguta-alg

Copy link
Copy Markdown
Owner Author

Opened against algolia/cli instead: algolia#287 (stacked on algolia#286).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant