Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Expose turnComplete control for ADK Java live content sends

未关闭
#1,200 2 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

@hemasekhar-p 已经在做这个了。

开始于 2026年5月18日。

评估

这个 Issue 还没有评估数据。

描述

needs review

🔴 Required Information

Is your feature request related to a specific problem?

Yes. ADK Java live sessions currently expose LiveRequestQueue.content(Content), but there is no public way to control whether that content completes the current live turn.

For normal user input, completing the turn is correct. But some live applications need to append content to an already-open live session without immediately asking the model to
generate.

The lower-level GenAI Java live API supports turnComplete, but ADK Java does not currently surface it through LiveRequestQueue, LiveRequest, or BaseLlmConnection.

Describe the Solution You'd Like

Please expose an additive API for live content sends that allows callers to set turnComplete.

Example:

requestQueue.content(content, false);

Existing behavior should remain unchanged:

requestQueue.content(content); // defaults to current behavior

### Impact on your work

We are building long-running Gemini Live / ADK Java sessions where backend services may need to update live session context without treating the update as a normal user transcript turn.

Without this API, applications must work around the behavior by suppressing model output after certain content sends. That is less precise because the model may still be asked to
generate even when the caller only wanted to append content.

This is needed for current live-session work, but there is no hard public launch deadline.

### Willingness to contribute

Yes. I am willing to submit a PR if the maintainers agree with the API direction.

———

## 🟡 Recommended Information

### Describe Alternatives You've Considered

1. Application-level suppression

Track when special content is enqueued, suppress model output until the next turnComplete=true, and avoid transcript persistence for that output window.

This works as a workaround, but ADK still asks the model to generate.

2. Custom BaseLlmConnection

Implement a custom Gemini live connection that sends LiveSendClientContentParameters.turnComplete(false).

This would duplicate ADK internals and increase maintenance risk.

3. Reflection or private API access

Not recommended.

### Proposed API / Implementation

One possible additive API:

public final class LiveRequestQueue {
  public void content(Content content) {
    processor.onNext(LiveRequest.builder().content(content).build());
  }

  public void content(Content content, boolean turnComplete) {
    processor.onNext(
        LiveRequest.builder()
            .content(content)
            .turnComplete(turnComplete)
            .build());
  }
}

LiveRequest could carry:

public abstract Optional<Boolean> turnComplete();

The live send loop could dispatch:

connection.sendContent(
    request.content().get(),
    request.turnComplete().orElse(true));

BaseLlmConnection could preserve compatibility with a default method:

default Completable sendContent(Content content, boolean turnComplete) {
  return sendContent(content);
}

Then GeminiLlmConnection can pass the flag through:

LiveSendClientContentParameters.builder()
    .turns(ImmutableList.of(content))
    .turnComplete(turnComplete)
    .build();

### Additional Context

This should be backward compatible if LiveRequestQueue.content(Content) continues to behave exactly as it does today, and only callers using the new overload opt into explicit turn-
completion behavior.

The lower-level live API already supports the concept; this request is mainly about exposing that capability through ADK Java's live queue abstraction.
主要语言
Java
星标
1.7k
派生
421
平均合并
3 天 10 小时
30 天内合并 PR
34

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

google/adk-java 的其他 Issue

查看 google/adk-java 的全部 Issue

相似的 Issue

更多 Java Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。