人工确认¶
工具审批、选择题与信息收集表单。
工具审批¶
允许用户批准、拒绝、说明理由或编辑参数。

| API | ToolCall(part, onApproval) |
| AI Elements | Confirmation |
| 依赖模块 | ai-elements-ui |
| API 文档 | ToolCall |
遵循 approvalAnswers,只提供后端能接收的理由或参数编辑功能。审批应恢复等待中的工具,而不是发送一条新用户消息。
import androidx.compose.runtime.Composable
import dev.ai.elements.core.chat.ChatController
import dev.ai.elements.core.model.ToolPart
import dev.ai.elements.core.model.ToolState
import dev.ai.elements.ui.chat.ToolCall
@Composable
fun ConfirmationExample(part: ToolPart, controller: ChatController) {
ToolCall(part.copy(state = ToolState.APPROVAL_REQUESTED), onDecision = { controller.respondToApproval(part.id, it) })
}
选择题¶
让 Agent 向用户提出单选或多选问题。

| API | Question(prompt, options, multiple, onSubmit) |
| 依赖模块 | ai-elements-ui |
| API 文档 | Question |
保存返回的选项 id 和文字,再传给 Agent。answered 表示已经作答,可防止重复提交。
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import dev.ai.elements.ui.chat.Question
import dev.ai.elements.ui.chat.QuestionAnswer
import dev.ai.elements.ui.chat.QuestionOption
@Composable
fun QuestionExample() {
var answer by remember { mutableStateOf<QuestionAnswer?>(null) }
Question("Choose a platform", listOf(QuestionOption("android", "Android")), answered = answer, onSubmit = { answer = it })
}
信息收集表单¶
根据 JSON Schema 展示 Agent 请求填写的表单或确认。

| API | InputRequestCard(request, onRespond) |
| 依赖模块 | ai-elements-ui |
| API 文档 | InputRequestCard |
回答时必须使用原请求 id。表单验证支持的 schema 字段;URL 请求需要用户完成外部流程。
import androidx.compose.runtime.Composable
import dev.ai.elements.core.chat.ChatController
import dev.ai.elements.core.chat.InputRequest
import dev.ai.elements.ui.chat.InputRequestCard