Skip to content

Commit d7db24e

Browse files
authored
docs: adjust adk agent_collaboration table and image display (#1490)
1 parent e27b704 commit d7db24e

File tree

2 files changed

+27
-27
lines changed

2 files changed

+27
-27
lines changed

content/en/docs/eino/core_modules/eino_adk/agent_collaboration.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,31 +15,31 @@ ADK defines collaboration and composition primitives to build multi‑agent syst
1515

1616
- Collaboration mode
1717

18-
<table>
18+
<table class="bd-browser-bugs table table-bordered table-hover">
1919
<tr><td>Mode</td><td>Description</td></tr>
2020
<tr><td>Transfer</td><td>Hand off the task to another agent. The current agent exits and does not wait for the child agent’s completion.</td></tr>
2121
<tr><td>ToolCall (AgentAsTool)</td><td>Treat an agent as a tool, wait for its response, and use the output for subsequent processing.</td></tr>
2222
</table>
2323

2424
- Input context strategy
2525

26-
<table>
26+
<table class="bd-browser-bugs table table-bordered table-hover">
2727
<tr><td>Strategy</td><td>Description</td></tr>
2828
<tr><td>Upstream full dialogue</td><td>Receive complete conversation history from upstream agents.</td></tr>
2929
<tr><td>New task description</td><td>Ignore upstream dialogue and generate a fresh summary as input for the child agent.</td></tr>
3030
</table>
3131

3232
- Decision autonomy
3333

34-
<table>
34+
<table class="bd-browser-bugs table table-bordered table-hover">
3535
<tr><td>Autonomy</td><td>Description</td></tr>
3636
<tr><td>Autonomous</td><td>Agent internally selects downstream agents (often via LLM) when needed. Even preset logic is considered autonomous from the outside.</td></tr>
3737
<tr><td>Preset</td><td>Agent execution order is predetermined and predictable.</td></tr>
3838
</table>
3939

4040
## Composition Types
4141

42-
<table>
42+
<table class="bd-browser-bugs table table-bordered table-hover">
4343
<tr><td>Type</td><td>Description</td><td>Diagram</td><td>Collab</td><td>Context</td><td>Decision</td></tr>
4444
<tr><td><strong>SubAgents</strong></td><td>Build a parent agent with a list of named subagents, forming a tree. Agent names must be unique within the tree.</td><td><a href="/img/eino/eino_adk_self_driving.png" target="_blank"><img src="/img/eino/eino_adk_self_driving.png" width="100%" /></a></td><td>Transfer</td><td>Upstream full dialogue</td><td>Autonomous</td></tr>
4545
<tr><td><strong>Sequential</strong></td><td>Run subagents in order once, then finish.</td><td><a href="/img/eino/eino_adk_sequential_controller.png" target="_blank"><img src="/img/eino/eino_adk_sequential_controller.png" width="100%" /></a></td><td>Transfer</td><td>Upstream full dialogue</td><td>Preset</td></tr>
@@ -61,7 +61,7 @@ Concept
6161

6262
By default, assistant/tool messages from other agents are converted into user messages. This tells the current LLM: “Agent_A called some_tool with some_result. Now it’s your turn to decide.” It treats other agents’ behavior as external information rather than the current agent’s own actions, avoiding role confusion.
6363

64-
<a href="/img/eino/eino_adk_message_event.png" target="_blank"><img src="/img/eino/eino_adk_message_event.png" width="100%" /></a>
64+
<a href="/img/eino/eino_adk_message_event.png" target="_blank"><img src="/img/eino/eino_adk_message_event.png" width="60%" /></a>
6565

6666
Filtering by RunPath
6767

@@ -71,12 +71,12 @@ Definition: RunPathA “belongs to” RunPathB when RunPathA equals RunPathB or
7171

7272
Examples of RunPath in different orchestrations:
7373

74-
<table>
74+
<table class="bd-browser-bugs table table-bordered table-hover">
7575
<tr><td>Example</td><td>RunPath</td></tr>
76-
<tr><td><a href="/img/eino/eino_adk_run_path_sub_agent.png" target="_blank"><img src="/img/eino/eino_adk_run_path_sub_agent.png" width="100%" /></a></td><td><li>Agent: [Agent]</li><li>SubAgent: [Agent, SubAgent]</li></td></tr>
77-
<tr><td><a href="/img/eino/eino_adk_run_path.png" target="_blank"><img src="/img/eino/eino_adk_run_path.png" width="100%" /></a></td><td><li>Agent: [Agent]</li><li>Agent (after function call): [Agent]</li></td></tr>
76+
<tr><td><a href="/img/eino/eino_adk_run_path_sub_agent.png" target="_blank"><img src="/img/eino/eino_adk_run_path_sub_agent.png" width="20%" /></a></td><td><li>Agent: [Agent]</li><li>SubAgent: [Agent, SubAgent]</li></td></tr>
77+
<tr><td><a href="/img/eino/eino_adk_run_path.png" target="_blank"><img src="/img/eino/eino_adk_run_path.png" width="30%" /></a></td><td><li>Agent: [Agent]</li><li>Agent (after function call): [Agent]</li></td></tr>
7878
<tr><td><a href="/img/eino/eino_adk_collaboration_run_path_sequential.png" target="_blank"><img src="/img/eino/eino_adk_collaboration_run_path_sequential.png" width="100%" /></a></td><td><li>Agent1: [SequentialAgent, LoopAgent, Agent1]</li><li>Agent2: [SequentialAgent, LoopAgent, Agent1, Agent2]</li><li>Agent1: [SequentialAgent, LoopAgent, Agent1, Agent2, Agent1]</li><li>Agent2: [SequentialAgent, LoopAgent, Agent1, Agent2, Agent1, Agent2]</li><li>Agent3: [SequentialAgent, LoopAgent, Agent3]</li><li>Agent4: [SequentialAgent, LoopAgent, Agent3, ParallelAgent, Agent4]</li><li>Agent5: [SequentialAgent, LoopAgent, Agent3, ParallelAgent, Agent5]</li><li>Agent6: [SequentialAgent, LoopAgent, Agent3, ParallelAgent, Agent6]</li></td></tr>
79-
<tr><td><a href="/img/eino/eino_adk_run_path_deterministic.png" target="_blank"><img src="/img/eino/eino_adk_run_path_deterministic.png" width="100%" /></a></td><td><li>Agent: [Agent]</li><li>SubAgent: [Agent, SubAgent]</li><li>Agent: [Agent, SubAgent, Agent]</li></td></tr>
79+
<tr><td><a href="/img/eino/eino_adk_run_path_deterministic.png" target="_blank"><img src="/img/eino/eino_adk_run_path_deterministic.png" width="50%" /></a></td><td><li>Agent: [Agent]</li><li>SubAgent: [Agent, SubAgent]</li><li>Agent: [Agent, SubAgent, Agent]</li></td></tr>
8080
</table>
8181

8282
Customize via `WithHistoryRewriter`:
@@ -366,7 +366,7 @@ func AgentWithDeterministicTransferTo(_ context.Context, config *DeterministicTr
366366

367367
Used by Supervisor to ensure subagents return control deterministically:
368368

369-
<a href="/img/eino/eino_adk_deterministic_transfer.png" target="_blank"><img src="/img/eino/eino_adk_deterministic_transfer.png" width="100%" /></a>
369+
<a href="/img/eino/eino_adk_deterministic_transfer.png" target="_blank"><img src="/img/eino/eino_adk_deterministic_transfer.png" width="50%" /></a>
370370

371371
```go
372372
// github.com/cloudwego/eino/adk/prebuilt/supervisor.go
@@ -404,7 +404,7 @@ See details and examples: `/docs/eino/core_modules/eino_adk/agent_implementation
404404

405405
Run a series of agents in the provided order:
406406

407-
<a href="/img/eino/eino_adk_sequential_agent.png" target="_blank"><img src="/img/eino/eino_adk_sequential_agent.png" width="100%" /></a>
407+
<a href="/img/eino/eino_adk_sequential_agent.png" target="_blank"><img src="/img/eino/eino_adk_sequential_agent.png" width="70%" /></a>
408408

409409
```go
410410
type SequentialAgentConfig struct {
@@ -420,7 +420,7 @@ func NewSequentialAgent(ctx context.Context, config *SequentialAgentConfig) (Age
420420

421421
Based on SequentialAgent; after completing one run, it starts from the beginning again:
422422

423-
<a href="/img/eino/eino_adk_loop_definition.png" target="_blank"><img src="/img/eino/eino_adk_loop_definition.png" width="100%" /></a>
423+
<a href="/img/eino/eino_adk_loop_definition.png" target="_blank"><img src="/img/eino/eino_adk_loop_definition.png" width="80%" /></a>
424424

425425
```go
426426
type LoopAgentConfig struct {
@@ -438,7 +438,7 @@ func NewLoopAgent(ctx context.Context, config *LoopAgentConfig) (Agent, error)
438438

439439
Run agents concurrently:
440440

441-
<a href="/img/eino/eino_adk_parallel_agent.png" target="_blank"><img src="/img/eino/eino_adk_parallel_agent.png" width="100%" /></a>
441+
<a href="/img/eino/eino_adk_parallel_agent.png" target="_blank"><img src="/img/eino/eino_adk_parallel_agent.png" width="80%" /></a>
442442

443443
```go
444444
type ParallelAgentConfig struct {

content/zh/docs/eino/core_modules/eino_adk/agent_collaboration.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,30 @@ weight: 4
1515

1616
- Agent 间协作方式
1717

18-
<table>
18+
<table class="bd-browser-bugs table table-bordered table-hover">
1919
<tr><td>协作方式</td><td>描述</td></tr>
2020
<tr><td> Transfer</td><td>直接将任务转让给另外一个 Agent,本 Agent 则执行结束后退出,不关心转让 Agent 的任务执行状态</td></tr>
2121
<tr><td>ToolCall(AgentAsTool)</td><td>将 Agent 当成 ToolCall 调用,等待 Agent 的响应,并可获取被调用Agent 的输出结果,进行下一轮处理</td></tr>
2222
</table>
2323

2424
- AgentInput 的上下文策略
2525

26-
<table>
26+
<table class="bd-browser-bugs table table-bordered table-hover">
2727
<tr><td>上下文策略</td><td>描述</td></tr>
2828
<tr><td>上游 Agent 全对话</td><td>获取本 Agent 的上游 Agent 的完整对话记录</td></tr>
2929
<tr><td>全新任务描述</td><td>忽略掉上游 Agent 的完整对话记录,给出一个全新的任务总结,作为子 Agent 的 AgentInput 输入</td></tr>
3030
</table>
3131

3232
- 决策自主性
3333

34-
<table>
34+
<table class="bd-browser-bugs table table-bordered table-hover">
3535
<tr><td>决策自主性</td><td>描述</td></tr>
3636
<tr><td>自主决策</td><td>在 Agent 内部,基于其可选的下游 Agent, 如需协助时,自主选择下游 Agent 进行协助。 一般来说,Agent 内部是基于 LLM 进行决策,不过即使是基于预设逻辑进行选择,从 Agent 外部看依然视为自主决策</td></tr>
3737
<tr><td>预设决策</td><td>事先预设好一个Agent 执行任务后的下一个 Agent。 Agent 的执行顺序是事先确定、可预测的</td></tr>
3838
</table>
3939
- 组合原语
4040

41-
<table>
41+
<table class="bd-browser-bugs table table-bordered table-hover">
4242
<tr><td>类型</td><td>描述</td><td>运行模式</td><td>协作方式</td><td>上下文策略</td><td>决策自主性</td></tr>
4343
<tr><td><strong>SubAgents</strong></td><td>将用户提供的 agent 作为 父Agent,用户提供的 subAgents 列表作为 子Agents,组合而成可自主决策的 Agent,其中的 Name 和 Description 作为该 Agent 的名称标识和描述。<li>当前限定一个 Agent 只能有一个 父 Agent</li><li>可采用 SetSubAgents 函数,构建 「多叉树」 形式的 Multi-Agent</li><li>在这个「多叉树」中,AgentName 需要保持唯一</li></td><td><a href="/img/eino/eino_adk_self_driving.png" target="_blank"><img src="/img/eino/eino_adk_self_driving.png" width="100%" /></a></td><td>Transfer</td><td>上游 Agent 全对话</td><td>自主决策</td></tr>
4444
<tr><td><strong>Sequential</strong></td><td>将用户提供的 SubAgents 列表,组合成按照顺序依次执行的 Sequential Agent,其中的 Name 和 Description 作为 Sequential Agent 的名称标识和描述。Sequential Agent 执行时,将 SubAgents 列表,按照顺序依次执行,直至将所有 Agent 执行一遍后结束。</td><td><a href="/img/eino/eino_adk_sequential_controller.png" target="_blank"><img src="/img/eino/eino_adk_sequential_controller.png" width="100%" /></a></td><td>Transfer</td><td>上游 Agent 全对话</td><td>预设决策</td></tr>
@@ -61,7 +61,7 @@ History 对应【上游 Agent 全对话上下文策略】,多 Agent 系统中
6161

6262
通过这种方式,其他 Agent 的行为被当作了提供给当前 Agent 的“外部信息”或“事实陈述”,而不是它自己的行为,从而避免了 LLM 的上下文混乱。
6363

64-
<a href="/img/eino/eino_adk_message_event.png" target="_blank"><img src="/img/eino/eino_adk_message_event.png" width="100%" /></a>
64+
<a href="/img/eino/eino_adk_message_event.png" target="_blank"><img src="/img/eino/eino_adk_message_event.png" width="60%" /></a>
6565

6666
在 Eino ADK 中,当为一个 Agent 构建 AgentInput 时,它能看到的 History 是“所有在我之前产生的 AgentEvent”。
6767

@@ -73,12 +73,12 @@ History 中每个 AgentEvent 都是由“特定 Agent 在特定的执行序列
7373

7474
下面表格中给出各种编排模式下,Agent 执行时的具体 RunPath:
7575

76-
<table>
76+
<table class="bd-browser-bugs table table-bordered table-hover">
7777
<tr><td>Example</td><td>RunPath</td></tr>
78-
<tr><td><a href="/img/eino/eino_adk_run_path_sub_agent.png" target="_blank"><img src="/img/eino/eino_adk_run_path_sub_agent.png" width="100%" /></a></td><td><li>Agent: [Agent]</li><li>SubAgent: [Agent, SubAgent]</li></td></tr>
79-
<tr><td><a href="/img/eino/eino_adk_run_path.png" target="_blank"><img src="/img/eino/eino_adk_run_path.png" width="100%" /></a></td><td><li>Agent: [Agent]</li><li>Agent(after function call): [Agent]</li></td></tr>
78+
<tr><td><a href="/img/eino/eino_adk_run_path_sub_agent.png" target="_blank"><img src="/img/eino/eino_adk_run_path_sub_agent.png" width="20%" /></a></td><td><li>Agent: [Agent]</li><li>SubAgent: [Agent, SubAgent]</li></td></tr>
79+
<tr><td><a href="/img/eino/eino_adk_run_path.png" target="_blank"><img src="/img/eino/eino_adk_run_path.png" width="30%" /></a></td><td><li>Agent: [Agent]</li><li>Agent(after function call): [Agent]</li></td></tr>
8080
<tr><td><a href="/img/eino/eino_adk_collaboration_run_path_sequential.png" target="_blank"><img src="/img/eino/eino_adk_collaboration_run_path_sequential.png" width="100%" /></a></td><td><li>Agent1: [SequentialAgent, LoopAgent, Agent1]</li><li>Agent2: [SequentialAgent, LoopAgent, Agent1, Agent2]</li><li>Agent1: [SequentialAgent, LoopAgent, Agent1, Agent2, Agent1]</li><li>Agent2: [SequentialAgent, LoopAgent, Agent1, Agent2, Agent1, Agent2]</li><li>Agent3: [SequentialAgent, LoopAgent, Agent3]</li><li>Agent4: [SequentialAgent, LoopAgent, Agent3, ParallelAgent, Agent4]</li><li>Agent5: [SequentialAgent, LoopAgent, Agent3, ParallelAgent, Agent5]</li><li>Agent6: [SequentialAgent, LoopAgent, Agent3, ParallelAgent, Agent6]</li></td></tr>
81-
<tr><td><a href="/img/eino/eino_adk_run_path_deterministic.png" target="_blank"><img src="/img/eino/eino_adk_run_path_deterministic.png" width="100%" /></a></td><td><li>Agent: [Agent]</li><li>SubAgent: [Agent, SubAgent]</li><li>Agent: [Agent, SubAgent, Agent]</li></td></tr>
81+
<tr><td><a href="/img/eino/eino_adk_run_path_deterministic.png" target="_blank"><img src="/img/eino/eino_adk_run_path_deterministic.png" width="50%" /></a></td><td><li>Agent: [Agent]</li><li>SubAgent: [Agent, SubAgent]</li><li>Agent: [Agent, SubAgent, Agent]</li></td></tr>
8282
</table>
8383

8484
#### 自定义
@@ -177,7 +177,7 @@ type OnSubAgents interface {
177177

178178
接下来以一个多功能对话 Agent 演示 Transfer 能力,目标是搭建一个可以查询天气或者与用户对话的 Agent,Agent 结构如下:
179179

180-
<a href="/img/eino/eino_adk_collaboration_example.png" target="_blank"><img src="/img/eino/eino_adk_collaboration_example.png" width="100%" /></a>
180+
<a href="/img/eino/eino_adk_collaboration_example.png" target="_blank"><img src="/img/eino/eino_adk_collaboration_example.png" width="50%" /></a>
181181

182182
三个 Agent 均使用 ChatModelAgent 实现:
183183

@@ -405,7 +405,7 @@ func AgentWithDeterministicTransferTo(_ context.Context, config *DeterministicTr
405405

406406
在 Supervisor 模式中,子 Agent 执行完毕后固定回到 Supervisor,由 Supervisor 生成下一步任务目标。此时可以使用 AgentWithDeterministicTransferTo:
407407

408-
<a href="/img/eino/eino_adk_deterministic_transfer.png" target="_blank"><img src="/img/eino/eino_adk_deterministic_transfer.png" width="100%" /></a>
408+
<a href="/img/eino/eino_adk_deterministic_transfer.png" target="_blank"><img src="/img/eino/eino_adk_deterministic_transfer.png" width="70%" /></a>
409409

410410
```go
411411
// github.com/cloudwego/eino/adk/prebuilt/supervisor.go
@@ -443,7 +443,7 @@ WorkflowAgent 支持以代码中预设好的流程运行 Agents。Eino ADK 提
443443

444444
SequentialAgent 会按照你提供的顺序,依次执行一系列 Agent:
445445

446-
<a href="/img/eino/eino_adk_sequential_agent.png" target="_blank"><img src="/img/eino/eino_adk_sequential_agent.png" width="100%" /></a>
446+
<a href="/img/eino/eino_adk_sequential_agent.png" target="_blank"><img src="/img/eino/eino_adk_sequential_agent.png" width="80%" /></a>
447447

448448
```go
449449
type SequentialAgentConfig struct {
@@ -459,7 +459,7 @@ func NewSequentialAgent(ctx context.Context, config *SequentialAgentConfig) (Age
459459

460460
LoopAgent 基于 SequentialAgent 实现,在 SequentialAgent 运行完成后,再次从头运行:
461461

462-
<a href="/img/eino/eino_adk_loop_definition.png" target="_blank"><img src="/img/eino/eino_adk_loop_definition.png" width="100%" /></a>
462+
<a href="/img/eino/eino_adk_loop_definition.png" target="_blank"><img src="/img/eino/eino_adk_loop_definition.png" width="80%" /></a>
463463

464464
```go
465465
type LoopAgentConfig struct {
@@ -477,7 +477,7 @@ func NewLoopAgent(ctx context.Context, config *LoopAgentConfig) (Agent, error)
477477

478478
ParallelAgent 会并发运行若干 Agent:
479479

480-
<a href="/img/eino/eino_adk_parallel_agent.png" target="_blank"><img src="/img/eino/eino_adk_parallel_agent.png" width="100%" /></a>
480+
<a href="/img/eino/eino_adk_parallel_agent.png" target="_blank"><img src="/img/eino/eino_adk_parallel_agent.png" width="80%" /></a>
481481

482482
```go
483483
type ParallelAgentConfig struct {

0 commit comments

Comments
 (0)