AgentAPI

interface AgentAPI(source)

用于管理单个 agent 实例的 api。

大部分方法都重新返回自身(AgentAPI)以支持链式调用。

关于 agent 上下文的基本概念(如“轮次”)请参阅 AgentContextIndex

Properties

Link copied to clipboard
abstract val context: StateFlow<AgentContext>

agent 的实时上下文,完整的消息、工具调用请求均在此索引。

Link copied to clipboard
abstract val id: UUID

agent 的 id,永远由 UUID.randomUUID 生成。

Link copied to clipboard
abstract val model: ModelConfig

agent 的模型配置,每个 agent 可以拥有独立的模型配置。

Link copied to clipboard
abstract val name: KebabCase

agent 的名称,用于多 agent 场景下的显示区分。

Link copied to clipboard
abstract val output: SharedFlow<AgentOutput>

agent 的实时输出流,通常为无需持久化的流式数据块或错误信息。

Link copied to clipboard
abstract val status: StateFlow<AgentStatus>

agent 的实时状态,参见 AgentStatus

Link copied to clipboard
abstract val toolCalling: StateFlow<String?>

agent 正在调用工具的 callId,也就是 io.github.autotweaker.api.types.agent.AgentMessage.Tool.Call.callId

Link copied to clipboard
abstract val toolInfo: StateFlow<List<ToolInfo>>

实时的工具列表,列表中只有各值的 active 属性会变化,列表本身不会变化。

Functions

Link copied to clipboard
abstract suspend fun approve(approval: ToolApprove): AgentAPI

批准一个工具调用请求。

Link copied to clipboard
abstract suspend fun cancelCompact(): AgentAPI

取消正在进行的上下文压缩进程。

Link copied to clipboard
abstract suspend fun cancelTool(): AgentAPI

取消正在进行的工具调用。

Link copied to clipboard
abstract suspend fun compact(): AgentAPI

触发 agent 的上下文压缩,如果上下文压缩正在进行,不会重复触发,上下文压缩在后台进行,此方法不会挂起等待上下文压缩完毕。

Link copied to clipboard
abstract suspend fun inject(injection: ContextInjection): AgentAPI

在 agent 的上下文中注入 XML 标签,相同 id 的标签会去重。

Link copied to clipboard
abstract suspend fun pause(): AgentAPI

令 agent 在当前任务完成之后停下,并归档当前上下文。状态将变为 AgentStatus.FREE

Link copied to clipboard
abstract suspend fun removeInjection(id: UUID): AgentAPI

从 agent 的上下文中移除一条标签注入。

Link copied to clipboard
abstract fun send(content: MessageContent): Delivery

向 agent 发送消息,无论 agent 状态如何,消息将始终进入队列。 若 agent 空闲(AgentStatus.FREE),消息将被立即消费,触发 agent 的事件循环。

Link copied to clipboard
abstract suspend fun setModel(config: ModelConfig): AgentAPI

更新 agent 使用的大模型,下次请求立即生效。

Link copied to clipboard
abstract suspend fun stop(): AgentAPI

立即停止 agent 的工具调用或 LLM 请求,并归档当前上下文,等待状态变为 AgentStatus.FREE(Stop 完成)。