yunfengzhou-hub commented on code in PR #1268:
URL: https://github.com/apache/flink-agents/pull/1268#discussion_r4300857903


##########
docs/content/docs/development/multi-agent/subagents.md:
##########
@@ -24,30 +24,170 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-A sub-agent handles a task delegated by a parent agent. An internal sub-agent 
runs
-an agent workflow in the same job. An external sub-agent calls an agent service
-through a `SubagentSetup` implementation.
+## Overview
 
-## Declare an internal sub-agent
+A sub-agent is an agent that another agent delegates a task to. The parent 
hands it
+input, the sub-agent does the work, and the parent receives the outcome as a
+`SubagentResult`. Use one when the delegated work is multi-step or 
long-running and
+should run isolated from the parent.
 
-Use `InternalSubagentResourceDescriptorBuilder` to attach a description and 
input
-schema to a child agent. The builder returns a normal resource descriptor for 
`addResource`
-or `add_resource`.
+The work runs either inside the job or outside it. An *internal* sub-agent is a
+child `Agent`, including a `ReActAgent`, compiled into the parent's plan. The
+child's own actions and events run in the same job. An *external* sub-agent 
has no
+plan of its own. The work happens in your own code or in a remote agent 
service,
+outside the parent's event loop. It takes one of two forms, *deferred* or 
*async
+(pub/sub)*.
 
+Either way, the call is initiated by the model or by you. In *model-driven
+delegation* you list the sub-agent on a chat model setup and the model chooses 
when
+to delegate. In *caller-driven delegation* one of your actions submits the task
+itself.
+
+Every sub-agent call runs through
+[durable execution]({{< ref 
"docs/development/create-agent/actions#durable-execution" >}}).
+There is no durability toggle and no sub-agent timeout option.
+
+## Declare a sub-agent
+
+A sub-agent enters the parent's plan as a resource registered under
+`ResourceType.AGENT`. The name you register it under is the name that 
invocations and
+metrics use. What you register depends on the form. An internal sub-agent 
registers
+a child `Agent`. An external sub-agent registers a descriptor that names your 
setup
+class, and a YAML file can declare it.
+
+### Internal: compile a child agent
+
+Nothing in a child's own code marks it as a sub-agent. The child is an ordinary
+agent with its own resources, actions, and event loop, and it runs standalone
+exactly as written. A parent registers it as an `AGENT` resource, and that
+registration is the whole of the difference. It gives the child a name in the
+parent's plan. It can also give the child an input schema, so a chat model can 
call
+it. And it supplies the caller that submits input and awaits the child's 
outputs.
+
+Any `Agent` can serve as the child. The two common kinds are a workflow agent 
and a
+`ReActAgent`. Either way, the child's plan is compiled into the parent's when 
the
+parent's plan is built.
+
+#### A workflow agent as the child
+
+The example child owns a chat model and answers each review request with its

Review Comment:
   Fixed in the rebase. The restriction is gone, the Declare section links to 
Declaring sub-agents, and the internal section states the agent field. Loaded 
all three YAML forms against the new loaders to confirm.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to