Skip to content

docs: add deployment field documentation for agent dispatch#1176

Open
xianshijing-lk wants to merge 1 commit into
mainfrom
shijing/agent-deployment
Open

docs: add deployment field documentation for agent dispatch#1176
xianshijing-lk wants to merge 1 commit into
mainfrom
shijing/agent-deployment

Conversation

@xianshijing-lk

@xianshijing-lk xianshijing-lk commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Update docstrings to document the deployment field in create_dispatch
  • Update agent_dispatch example to support the --deployment argument
  • Add changeset

The deployment field allows targeting a specific agent deployment (e.g., "staging"). Leave empty to target the production deployment.

Related PRs:

Test plan

Unit Tests

cd /path/to/rust-sdks
cargo test -p livekit-api

Manual Verification

1. Run example with deployment flag:

cd examples/agent_dispatch
cargo run -- \
  --url $LIVEKIT_URL \
  --key $LIVEKIT_API_KEY \
  --secret $LIVEKIT_API_SECRET \
  --room-name test-room \
  --agent-name my-agent \
  --deployment staging

2. Verify response contains deployment:

let dispatch = client.create_dispatch(CreateAgentDispatchRequest {
    agent_name: "my-agent".into(),
    room: "test-room".into(),
    deployment: "staging".into(),
    ..Default::default()
}).await?;

println!("Dispatch ID: {}", dispatch.id);
println!("Deployment: {}", dispatch.deployment);  // Should print "staging"

3. Verify via list_dispatch:

let dispatches = client.list_dispatch("test-room").await?;
for d in dispatches {
    println!("Dispatch {}: deployment={}", d.id, d.deployment);
}

End-to-End Verification

  1. Register an agent worker with deployment="staging"
  2. Create a dispatch targeting deployment="staging" using the example
  3. Verify only the staging agent receives the job

🤖 Generated with Claude Code

Update docstrings and examples to document the deployment field
for agent dispatch. The deployment field allows targeting a specific
agent deployment (e.g., "staging"). Leave empty to target the
production deployment.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@xianshijing-lk xianshijing-lk requested a review from ladvoc as a code owner June 17, 2026 03:17
@github-actions

Copy link
Copy Markdown
Contributor

Changeset

The following package versions will be affected by this PR:

Package Bump
"livekit-api" patch

xianshijing-lk added a commit to livekit/client-sdk-swift that referenced this pull request Jun 17, 2026
## Summary
- Add `deployment` field to `RoomAgentDispatch` for targeting specific
agent deployments
- Add `agentDeployment` to `TokenRequestOptions` to pass deployment
through token requests

The `deployment` field allows targeting a specific agent deployment
(e.g., "staging"). Leave empty to target the production deployment.

Related PRs:
- node-sdks: livekit/node-sdks#675
- python-sdks: livekit/python-sdks#722
- rust-sdks: livekit/rust-sdks#1176
- client-sdk-js: livekit/client-sdk-js#1971

## Usage
```swift
let options = TokenRequestOptions(
    roomName: "my-room",
    agentName: "my-agent",
    agentDeployment: "staging"  // Optional: target specific deployment
)
```

Or directly via `RoomAgentDispatch`:
```swift
let dispatch = RoomAgentDispatch(
    agentName: "my-agent",
    metadata: "my-metadata",
    deployment: "staging"
)
```

## Test plan

### Unit Tests
```bash
swift test
# Or via Xcode
xcodebuild test -scheme LiveKit -destination "platform=iOS Simulator,name=iPhone 15"
```

### Manual Verification

**1. Verify JSON serialization includes deployment:**
```swift
let dispatch = RoomAgentDispatch(
    agentName: "my-agent",
    deployment: "staging"
)
let encoder = JSONEncoder()
let data = try encoder.encode(dispatch)
let json = String(data: data, encoding: .utf8)!
print(json)  // Should include "deployment": "staging"
```

**2. Verify TokenRequestOptions converts to request correctly:**
```swift
let options = TokenRequestOptions(
    roomName: "test-room",
    agentName: "my-agent",
    agentDeployment: "staging"
)
let request = options.toRequest()
print(request.roomConfiguration?.agents?.first?.deployment)  // Should print "staging"
```

**3. Verify token contains deployment (with TokenSource):**
```swift
let response = try await tokenSource.fetch(TokenRequestOptions(
    roomName: "test-room",
    agentName: "my-agent",
    agentDeployment: "staging"
))
if let jwt = response.jwt(),
   let agents = jwt.roomConfiguration?.agents {
    print("Deployment: \(agents.first?.deployment ?? "nil")")
}
```

### End-to-End Verification
1. Use TokenSource to get credentials with deployment
2. Connect to room - agent with matching deployment should join
3. Verify only staging agent receives the dispatch

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Błażej Pankowski <86720177+pblazej@users.noreply.github.com>
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