<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Agent 定义方法——模具行业从业者必备知识手册]]></title><description><![CDATA[<p dir="auto">&lt;h2&gt;Agent 定义方法&lt;/h2&gt;</p>
<p dir="auto">&lt;h3&gt;导入方法&lt;/h3&gt;</p>
<p dir="auto">&lt;ul&gt;<br />
&lt;li&gt;LLM Agent: &lt;code&gt;import veagent "<a href="http://github.com/volcengine/veadk-go/agent/llmagent" rel="nofollow ugc">github.com/volcengine/veadk-go/agent/llmagent</a>"&lt;/code&gt;&lt;/li&gt;<br />
&lt;li&gt;Sequential Agent: &lt;code&gt;import "<a href="http://github.com/volcengine/veadk-go/agent/workflowagents/sequentialagent" rel="nofollow ugc">github.com/volcengine/veadk-go/agent/workflowagents/sequentialagent</a>"&lt;/code&gt;&lt;/li&gt;<br />
&lt;li&gt;Loop Agent: &lt;code&gt;import "<a href="http://github.com/volcengine/veadk-go/agent/workflowagents/loopagent" rel="nofollow ugc">github.com/volcengine/veadk-go/agent/workflowagents/loopagent</a>"&lt;/code&gt;&lt;/li&gt;<br />
&lt;li&gt;Parallel Agent: &lt;code&gt;import "<a href="http://github.com/volcengine/veadk-go/agent/workflowagents/parallelagent" rel="nofollow ugc">github.com/volcengine/veadk-go/agent/workflowagents/parallelagent</a>"&lt;/code&gt;&lt;/li&gt;<br />
&lt;/ul&gt;</p>
<p dir="auto">&lt;p&gt;其中，LLM Agent 是最基础的智能体（由 LLM 启动进行自主决策），Sequential Agent 是按顺序执行的智能体，Loop Agent 是循环执行的智能体，Parallel Agent 是并行执行的智能体。&lt;/p&gt;</p>
<p dir="auto">&lt;h3&gt;代码规范&lt;/h3&gt;</p>
<p dir="auto">&lt;h4&gt;1、你可以通过如下方式定义智能体：&lt;/h4&gt;</p>
<p dir="auto">&lt;pre&gt;&lt;code&gt;<br />
import (<br />
"context"<br />
"fmt"</p>
<pre><code>veagent "github.com/volcengine/veadk-go/agent/llmagent"
"github.com/volcengine/veadk-go/apps"
"github.com/volcengine/veadk-go/apps/agentkit_server_app"
vetool "github.com/volcengine/veadk-go/tool"
"google.golang.org/adk/agent"
"google.golang.org/adk/agent/llmagent"
"google.golang.org/adk/tool"
</code></pre>
<p dir="auto">)</p>
<p dir="auto">func main() {<br />
ctx := context.Background()</p>
<pre><code>subAgent, err := veagent.New(&amp;veagent.Config{
	Config: llmagent.Config{
		Name:        "...",
		Description: "...",
		Instruction: `...`,
	},
	ModelName: "...",
})
if err != nil {
	fmt.Printf("NewLLMAgent subAgent failed: %v", err)
	return
}

rootAgent, err := veagent.New(&amp;veagent.Config{
	Config: llmagent.Config{
		Name:        "...",
		Description: "...",
		Instruction: `...`,
		SubAgents: []agent.Agent{subAgent},
	},
	ModelName: "...",
})
if err != nil {
	fmt.Printf("NewLLMAgent rootAgent failed: %v", err)
	return
}

app := agentkit_server_app.NewAgentkitServerApp(apps.DefaultApiConfig())

err = app.Run(ctx, &amp;apps.RunConfig{
	AgentLoader: agent.NewSingleLoader(rootAgent),
})
if err != nil {
	fmt.Printf("Run failed: %v", err)
}
</code></pre>
<p dir="auto">}</p>
<p dir="auto">&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;h4&gt;2、可以生成一个强制按顺序执行的智能体：&lt;/h4&gt;</p>
<p dir="auto">&lt;pre&gt;&lt;code&gt;<br />
import (<br />
"context"<br />
"fmt"</p>
<pre><code>veagent "github.com/volcengine/veadk-go/agent/llmagent"
"github.com/volcengine/veadk-go/agent/workflowagents/sequentialagent"
"github.com/volcengine/veadk-go/apps"
"github.com/volcengine/veadk-go/apps/agentkit_server_app"
"google.golang.org/adk/agent"
"google.golang.org/adk/agent/llmagent"
</code></pre>
<p dir="auto">)</p>
<p dir="auto">func main() {<br />
ctx := context.Background()</p>
<pre><code>agent1, err := veagent.New(&amp;veagent.Config{
	Config: llmagent.Config{
		Name:        "...",
		Description: "...",
		Instruction: "...",
	},
})
if err != nil {
	fmt.Printf("NewLLMAgent agent1 failed: %v", err)
	return
}

agent2, err := veagent.New(&amp;veagent.Config{
	Config: llmagent.Config{
		Name:        "...",
		Description: "...",
		Instruction: "...",
	},
})
if err != nil {
	fmt.Printf("NewLLMAgent agent failed: %v", err)
	return
}

rootAgent, err := sequentialagent.New(sequentialagent.Config{
	AgentConfig: agent.Config{
		Name:        "...",
		SubAgents:   []agent.Agent{agent1, agent2},
		Description: "...",
	},
})

if err != nil {
	fmt.Printf("NewSequentialAgent failed: %v", err)
	return
}

app := agentkit_server_app.NewAgentkitServerApp(apps.DefaultApiConfig())

err = app.Run(ctx, &amp;apps.RunConfig{
	AgentLoader: agent.NewSingleLoader(rootAgent),
})
if err != nil {
	fmt.Printf("Run failed: %v", err)
}
</code></pre>
<p dir="auto">}<br />
&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;p&gt;&lt;code&gt;agent1&lt;/code&gt; 与 &lt;code&gt;agent2&lt;/code&gt; 将会严格按顺序执行&lt;/p&gt;</p>
<p dir="auto">&lt;p&gt;注意，根智能体的命名必须为 &lt;code&gt;rootAgent&lt;/code&gt;。&lt;/p&gt;</p>
<p dir="auto">&lt;h3&gt;让 Agent 结构化输出&lt;/h3&gt;</p>
<p dir="auto">&lt;p&gt;为保证更高的准确率和 Agent 执行时的可控性，使用结构化输出是一种有效的手段。&lt;/p&gt;</p>
<p dir="auto">&lt;p&gt;在定义 Agent 时，通过 &lt;code&gt;model_extra_config={"response_format": ...}&lt;/code&gt; 可以让 Agent 结构化输出。其中，&lt;code&gt;...&lt;/code&gt; 是你定义的 Pydantic 模型，用于描述 Agent 的输出格式。&lt;/p&gt;</p>
<p dir="auto">&lt;pre&gt;&lt;code&gt;<br />
from pydantic import BaseModel<br />
from veadk import Agent, Runner</p>
<h1>定义分步解析模型（对应业务场景的结构化响应）</h1>
<p dir="auto">class Step(BaseModel):<br />
explanation: str  # 步骤说明<br />
output: str  # 步骤计算结果</p>
<h1>定义最终响应模型（包含分步过</h1>
<hr />
<p dir="auto">各位师傅觉得这个方案怎么样？有更好的做法吗？<br />
&lt;/code&gt;&lt;/pre&gt;</p>
]]></description><link>https://forum.mj7.cn/topic/7115/agent-定义方法-模具行业从业者必备知识手册</link><generator>RSS for Node</generator><lastBuildDate>Fri, 02 Oct 2026 14:41:49 GMT</lastBuildDate><atom:link href="https://forum.mj7.cn/topic/7115.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 19 Apr 2026 21:34:57 GMT</pubDate><ttl>60</ttl></channel></rss>