RunExecutionContext
public class RunExecutionContext
io/agentscope/core/training/runner/RunExecutionContext.java:73–284运行执行上下文,对智能体行为进行评测、追踪与可观测性分析。位于 io.agentscope.core.training.runner 包。核心成员包括 create、addMsgId、getMsgIds、getMsgIdCount、getTaskId、getRunId。
Run Execution Context
Encapsulates the complete execution information for a single Run.
Core Concepts:
-
Task: Represents a user's original request (business-level unique identifier)
-
Run: A specific execution of the same Task (experiment/training level)
-
RunExecutionContext: Encapsulates the execution context for one Run
Relationship Example:
Task "task-001" (User asks: "What's the weather today?")
├─ Run "0" → RunExecutionContext (msgIds=[msg-1, msg-2], msgs=[...], reward=0.8)
├─ Run "1" → RunExecutionContext (msgIds=[msg-3, msg-4], msgs=[...], reward=0.9)
└─ Run "2" → RunExecutionContext (msgIds=[msg-5, msg-6], msgs=[...], reward=0.85)
Data Contents:
-
Task ID: Unique identifier for user request
-
Run ID: The Nth execution of this Task (incrementing from "0")
-
msg_ids: All message IDs from LLM interactions in this Run (returned from Trinity API)
-
msgs: All messages from Agent memory in this Run (raw data for reward calculation)
-
Timing info: Start time and duration of this Run
Lifecycle:
1. TrainingRouter creates RunExecutionContext (corresponds to one Run)
2. Passed to TrinityModelAdapter (automatically collects msg_ids)
3. Shadow Agent execution completes, all data collected
4. TrainingRouter calculates reward
5. TrainingRouter submits Feedback using (taskId, runId, msg_ids, reward)
6. Registered to TaskExecutionRegistry (optional, for later queries)
Thread Safety:
-
Uses
CopyOnWriteArrayListto store msg_ids -
Supports concurrent additions (although currently executed synchronously)
方法摘要Method Summary
| 方法Method | 说明Description |
|---|---|
public static RunExecutionContext create(String taskId, String runId)static | 创建新的运行执行上下文。 Create new Run execution context |
public void addMsgId(String msgId) | 添加消息标识。 Add Message ID |
public List<String> getMsgIds() | 获取所有消息 IDs。 Get all Message IDs |
public int getMsgIdCount() | 获取消息 IDs 数量。 Get Message IDs count |
public String getTaskId() | 获取任务标识。 Get Task ID |
public String getRunId() | 获取运行标识。 Get Run ID |
public long getStartTime() | 获取运行启动时间。 Get Run start time |
public long getDuration() | 获取运行执行时长。 Get Run execution duration |
public boolean hasMsgIds() | 判断是否具有 `hasMsgIds`。 Check if msg_ids have been collected |
public void addMsg(Msg msg) | 添加消息。 Add Message |
public void setMessages(List<Msg> messages) | 设置消息。 Batch set Messages (usually obtained from agent memory) |
public List<Msg> getMessages() | 获取所有消息。 Get all Messages |
public int getMessageCount() | 获取消息数量。 Get Messages count |
public boolean hasMessages() | 判断是否具有消息。 Check if messages have been collected |
public String toString() | 返回 `toString` 结果。 Returns the to string. |
public boolean equals(Object o) | 设置该参数。 Performs the equals operation. |
public int hashCode() | 返回 `hashCode` 结果。 Returns the hash code. |
方法详情Method Detail
create
public static RunExecutionContext create(String taskId, String runId)
创建新的运行执行上下文。
Create new Run execution context Usage scenario: Created by TrainingRouter after intercepting Agent call.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
taskId | String | 任务标识(类型 `String`)。Task ID |
runId | String | 运行标识(类型 `String`)。Run ID |
RunExecutionContextIllegalArgumentException可能抛出 `IllegalArgumentException`。if taskId or runId is null/empty
io/agentscope/core/training/runner/RunExecutionContext.java:121–123addMsgId
public void addMsgId(String msgId)
添加消息标识。
Add Message ID Message ID is extracted from Trinity Chat API response (response.getId()).
| 名称Name | 类型Type | 说明Description |
|---|---|---|
msgId | String | 消息标识(类型 `String`)。Message ID (ignored if null or empty) |
io/agentscope/core/training/runner/RunExecutionContext.java:134–138getMsgIds
public List<String> getMsgIds()
获取所有消息 IDs。
Get all Message IDs Return value: Returns a new List copy to prevent external modification.
List<String>io/agentscope/core/training/runner/RunExecutionContext.java:147–149getMsgIdCount
public int getMsgIdCount()
获取消息 IDs 数量。
Get Message IDs count
intio/agentscope/core/training/runner/RunExecutionContext.java:156–158getTaskId
public String getTaskId()
获取任务标识。
Get Task ID
Stringio/agentscope/core/training/runner/RunExecutionContext.java:165–167getRunId
public String getRunId()
获取运行标识。
Get Run ID
Stringio/agentscope/core/training/runner/RunExecutionContext.java:174–176getStartTime
public long getStartTime()
获取运行启动时间。
Get Run start time
longio/agentscope/core/training/runner/RunExecutionContext.java:183–185getDuration
public long getDuration()
获取运行执行时长。
Get Run execution duration
longio/agentscope/core/training/runner/RunExecutionContext.java:192–194hasMsgIds
public boolean hasMsgIds()
判断是否具有 hasMsgIds。
Check if msg_ids have been collected
booleanio/agentscope/core/training/runner/RunExecutionContext.java:201–203addMsg
public void addMsg(Msg msg)
添加消息。
Add Message Thread-safe: This method can be called concurrently.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
msg | Msg | 消息(类型 `Msg`)。Message (ignored if null) |
io/agentscope/core/training/runner/RunExecutionContext.java:212–216setMessages
public void setMessages(List<Msg> messages)
设置消息。
Batch set Messages (usually obtained from agent memory) Clears existing messages and adds new message list.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
messages | List<Msg> | 消息列表(类型 `List`)。Message list (clears existing messages if null or empty) |
io/agentscope/core/training/runner/RunExecutionContext.java:227–232getMessages
public List<Msg> getMessages()
获取所有消息。
Get all Messages Return value: Returns a new List copy to prevent external modification.
List<Msg>io/agentscope/core/training/runner/RunExecutionContext.java:241–243getMessageCount
public int getMessageCount()
获取消息数量。
Get Messages count
intio/agentscope/core/training/runner/RunExecutionContext.java:250–252hasMessages
public boolean hasMessages()
判断是否具有消息。
Check if messages have been collected
booleanio/agentscope/core/training/runner/RunExecutionContext.java:259–261toString
public String toString()
返回 toString 结果。
Returns the to string.
Stringio/agentscope/core/training/runner/RunExecutionContext.java:263–268equals
public boolean equals(Object o)
设置该参数。
Performs the equals operation.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
o | Object | o(类型 `Object`)。The o. |
booleanio/agentscope/core/training/runner/RunExecutionContext.java:270–276hashCode
public int hashCode()
返回 hashCode 结果。
Returns the hash code.
intio/agentscope/core/training/runner/RunExecutionContext.java:278–283