Skip to content

fix(agentstudio): multiagent, output file download feature support - #259

Merged
luk384090-cloud merged 1 commit into
mainfrom
dev/agent-issue-fix
Aug 25, 2026
Merged

fix(agentstudio): multiagent, output file download feature support#259
luk384090-cloud merged 1 commit into
mainfrom
dev/agent-issue-fix

Conversation

@foleydang

@foleydang foleydang commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator
  • agents.create/update accept multiagent (coordinator roster); Agent responses hydrate it into MultiAgentConfig / MultiAgentRosterEntry.
  • files.download() returns FileContent, a bytes subclass with write_to_file(); sync and async.
  • sessions.create accepts vault_ids (create-only per the protocol; the update path does not take it).
  • Message declares the top-level thread_id the server sends on every thread_* event, so subagent thread ids no longer fall into extra.

Verified against the pre-maas backend: roster create / update / clear, plus the four server-side rejections (two selfs, >20 entries, Anthropic's string shorthand, unknown entry type), and a live coordinator delegation run emitting 7 thread_* events with the subagent result returned to the coordinator.

Description

[Describe what this PR does and why]

Related Issue: Fixes #[issue_number] or Relates to #[issue_number]

Security Considerations: [Check if API keys or sensitive credentials are exposed in code/logs]

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation
  • Refactoring

Component(s) Affected

  • Model
  • Application
  • Common
  • Documentation
  • Tests
  • CI/CD

Checklist

  • Pre-commit hooks pass
  • Tests pass locally
  • Documentation updated (if needed)
  • Ready for review

Testing

[How to test these changes]

Additional Notes

[Optional: any other context]

… types

- Configs.MultiAgentConfig with a nested RosterEntry, wired into
  AgentCreateParam / AgentUpdateParam / Agent. Placed in the Configs
  container to match the existing tool/skill/mcp config classes, which
  are all @DaTa with setters (no @builder).
- Files.download() / downloadAsync() returning FileContent with
  writeToFile(); mirrors the raw OkHttp path used by upload.
- SessionCreateParam.vaultIds.
- Message.threadId for the top-level thread_id on thread_* events.
- SSEEventType: the 7 missing types (thread_created, thread_status,
  thread_message_sent/received, thread_context_compacted,
  model_request_start/end), bringing Java to the same 22 as Python.

Verified: google-java-format clean, mvn clean test 205 passed, and the
AgentStudio e2e suite exercised the roster create/update against a live
backend.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@foleydang
foleydang requested a review from kevinlin09 August 24, 2026 11:02
@luk384090-cloud
luk384090-cloud merged commit efd7f02 into main Aug 25, 2026
3 checks passed
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.

2 participants