Skip to content

feat(clients): Agent Studio initial version#5860

Merged
Fluf22 merged 27 commits intofix/generatorsfrom
feat/agent-studio-client
May 1, 2026
Merged

feat(clients): Agent Studio initial version#5860
Fluf22 merged 27 commits intofix/generatorsfrom
feat/agent-studio-client

Conversation

@Fluf22
Copy link
Copy Markdown
Collaborator

@Fluf22 Fluf22 commented Jan 23, 2026

🧭 What and Why

Add the Agent Studio API client — a new Algolia service for building generative AI experiences with Retrieval Augmented Generation (RAG). This PR introduces the full OpenAPI specification, registers the client across all 11 languages, and adds CTS coverage and playgrounds.

Note: Generator fixes, template fixes, test helpers, and client code fixes have been extracted into stacked PRs:


Changes included

1. OpenAPI Specification (specs/agent-studio/)

New agent-studio API spec from scratch:

  • spec.yml — Main OpenAPI 3.0.2 definition. Server: https://agent-studio.{region}.algolia.com (EU/US). Custom timeouts (30s read/write/connect). Tags: Agents, Completions, Configurations, Conversations, Providers, User Data.
  • 15 path files defining endpoints:
    • Agents: CRUD (/1/agents, /1/agents/{agentId}), publish/unpublish, cache invalidation
    • Completions: POST /1/agents/{agentId}/completions with AI SDK v4/v5 compatibility modes, streaming, caching, memory options
    • Conversations: list, get, delete, export (/1/agents/{agentId}/conversations/...)
    • Providers: CRUD (/1/providers), list models per provider
    • Configuration: get/patch application config (/1/configuration)
    • User Data: get/delete by user token (/1/user-data/{userToken})
  • 143 schema files — Models for agents, providers, conversations, messages (v4/v5 formats), tool configs (Algolia Search, Algolia Recommend, MCP Server, Client-side, Unknown), search parameters, memory, episodes, pagination, validation errors, etc.
  • common/parameters.yml — Shared path/query parameters (agentId, conversationId, providerId, userToken, page, hitsPerPage, stream)

2. Config & Infra

  • config/clients.config.json — Added agent-studio to all 11 language client lists. JS gets a standalone client entry outputting to packages/agent-studio.
  • config/clients.schema.json — Added agent-studio to allowed client enums.
  • redocly.yaml — Added agent-studio API reference.
  • renovate.json — Added **/client-agent-studio/** to ignore paths.
  • specs/major-breaking-changes-rename.json — Added empty agent-studio entry.
  • Bug report templates — Added "Agent Studio" to client dropdown.

3. JavaScript Packaging

  • Added @algolia/agent-studio to lerna build scope and yarn workspaces.
  • Pass region to standalone client constructors in e2e test template.

4. CTS (Common Test Suite)

  • Client tests: timeout verification, region routing (EU/US/invalid).
  • Request tests for all 20 operations: createAgent, createAgentCompletion, createProvider, deleteAgent, deleteAgentConversations, deleteConversation, deleteProvider, deleteUserData, exportConversations, getAgent, getApplicationConfiguration, getConversation, getProvider, getUserData, invalidateAgentCache, listAgentConversations, listAgents, listModels, listProviderModels, listProviders, publishAgent, unpublishAgent, updateAgent, updateConfiguration, updateProvider.
  • Includes e2e test cases with response assertions for: getAgent, getProvider, getApplicationConfiguration, listAgents, listProviders, listModels, listAgentConversations.

5. Playgrounds (all languages)

New AgentStudio playground files for C#, Go, Java, JavaScript/Node, Kotlin, PHP, Python, Ruby, Scala, Swift. Each initializes the client with appId, apiKey, region "us", and calls listAgents().

@Fluf22 Fluf22 self-assigned this Jan 23, 2026
@algolia-bot
Copy link
Copy Markdown
Collaborator

algolia-bot commented Jan 23, 2026

✔️ Code generated!

Name Link
🪓 Triggered by f6da183e65914f139bae8c543d6a0585408e60d4
🍃 Generated commit 4e3299732ff4f7398429ebab7b4ee792e56ef320
🌲 Generated branch generated/feat/agent-studio-client
📊 Benchmark results

Benchmarks performed on the method using a mock server, the results might not reflect the real-world performance.

Language Req/s
javascript 2317
go 2185
php 1809
csharp 1458
python 1314
java 1117
ruby 924
swift 795
scala 23

@Fluf22 Fluf22 changed the title feat(agent-studio): initial version feat(clients): Agent Studio initial version Jan 23, 2026
@PLNech
Copy link
Copy Markdown
Member

PLNech commented Jan 23, 2026

excited

@Fluf22 Fluf22 force-pushed the feat/agent-studio-client branch 2 times, most recently from a78360b to 448521d Compare February 25, 2026 22:21
@Fluf22 Fluf22 force-pushed the feat/agent-studio-client branch 2 times, most recently from c4b7384 to a0fd7d8 Compare March 4, 2026 09:40
@Fluf22 Fluf22 force-pushed the feat/agent-studio-client branch 2 times, most recently from 7dc84db to 722b512 Compare March 12, 2026 13:14
@Fluf22 Fluf22 changed the base branch from main to fix/client-fixes March 12, 2026 13:15
@Fluf22 Fluf22 marked this pull request as ready for review March 13, 2026 09:44
@Fluf22 Fluf22 requested a review from a team as a code owner March 13, 2026 09:44
@Fluf22 Fluf22 requested review from eric-zaharia and morganleroi and removed request for a team March 13, 2026 09:44
@Fluf22 Fluf22 force-pushed the fix/client-fixes branch from f0f6d84 to a861bf2 Compare May 1, 2026 06:15
@Fluf22 Fluf22 force-pushed the feat/agent-studio-client branch from 722b512 to 802f74f Compare May 1, 2026 06:15
@codacy-production
Copy link
Copy Markdown

codacy-production Bot commented May 1, 2026

Not up to standards ⛔

🔴 Issues 3 critical · 27 high · 10 medium

Alerts:

⚠ 30 issues (≤ 0 issues of at least high severity)

Results:
40 new issues

Category Results
Security 27 high
3 critical
10 medium

View in Codacy

🟢 Metrics 4 complexity

Metric Results
Complexity 4

View in Codacy

TIP This summary will be updated as you push new changes.

Fluf22 added 18 commits May 1, 2026 09:04
Replace direct JSONAssert/Quibble calls with custom lenient JSON assertion helpers
that keep only the expected structure from the actual response (union-based comparison).
Also marks test helper files as hand-written in generation.config.mjs.
Python: handle non-string input for list types, add dict type deserialization in api_response.py
Scala: add withHeader(key, Option[Any]) overload that skips None values in HttpRequest.scala
@Fluf22 Fluf22 force-pushed the feat/agent-studio-client branch from 802f74f to adea416 Compare May 1, 2026 07:05
@Fluf22 Fluf22 force-pushed the fix/client-fixes branch from a861bf2 to 89d7f7d Compare May 1, 2026 07:05
Base automatically changed from fix/client-fixes to fix/generators May 1, 2026 12:29
@Fluf22 Fluf22 merged commit 33a6e0d into fix/generators May 1, 2026
36 of 37 checks passed
@Fluf22 Fluf22 deleted the feat/agent-studio-client branch May 1, 2026 12:30
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.

3 participants