MCPcopy Create free account
hub / github.com/astercloud/aster / main

Function main

examples/subagent/main.go:14–169  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

12)
13
14func main() {
15 fmt.Println("=== SubAgent Middleware 示例 ===")
16
17 // 1. 创建 Backend
18 backend := backends.NewStateBackend()
19 fmt.Println("✓ 创建 StateBackend")
20
21 // 2. 定义子代理规格
22 specs := []middleware.SubAgentSpec{
23 {
24 Name: "researcher",
25 Description: "深度研究和分析专家",
26 Prompt: "你是一个专注于深度研究的 AI。仔细分析问题,提供详细的研究报告。",
27 },
28 {
29 Name: "coder",
30 Description: "代码编写和重构专家",
31 Prompt: "你是一个专业的程序员。编写高质量、可维护的代码。",
32 },
33 {
34 Name: "reviewer",
35 Description: "代码审查和质量检查专家",
36 Prompt: "你是一个严格的代码审查员。识别潜在问题,提出改进建议。",
37 },
38 }
39 fmt.Printf("✓ 定义了 %d 个子代理规格\n", len(specs))
40
41 // 3. 创建子代理工厂
42 factory := func(ctx context.Context, spec middleware.SubAgentSpec) (middleware.SubAgent, error) {
43 // 这里使用 SimpleSubAgent 作为演示
44 // 实际应用中应该创建真正的 Agent 实例
45 execFn := func(ctx context.Context, description string, parentContext map[string]any) (string, error) {
46 return fmt.Sprintf("[%s] 已执行任务: %s\n系统提示: %s\n上下文: %v",
47 spec.Name, description, spec.Prompt, parentContext), nil
48 }
49 return middleware.NewSimpleSubAgent(spec.Name, spec.Prompt, execFn), nil
50 }
51 fmt.Println("✓ 创建子代理工厂")
52
53 // 4. 创建 SubAgentMiddleware
54 subagentMiddleware, err := middleware.NewSubAgentMiddleware(&middleware.SubAgentMiddlewareConfig{
55 Specs: specs,
56 Factory: factory,
57 EnableParallel: true,
58 })
59 if err != nil {
60 log.Fatalf("创建 SubAgentMiddleware 失败: %v", err)
61 }
62 fmt.Println("✓ 创建 SubAgentMiddleware")
63
64 // 5. 创建 FilesystemMiddleware
65 fsMiddleware := middleware.NewFilesystemMiddleware(&middleware.FilesystemMiddlewareConfig{
66 Backend: backend,
67 EnableEviction: true,
68 })
69 fmt.Println("✓ 创建 FilesystemMiddleware")
70
71 // 6. 创建 Middleware Stack

Callers

nothing calls this directly

Calls 15

MiddlewaresMethod · 0.95
ToolsMethod · 0.95
ListSubAgentsMethod · 0.95
ExecuteMethod · 0.95
WriteMethod · 0.95
ListInfoMethod · 0.95
GlobInfoMethod · 0.95
OnAgentStopMethod · 0.95
NewStateBackendFunction · 0.92
NewSimpleSubAgentFunction · 0.92
NewSubAgentMiddlewareFunction · 0.92
NewFilesystemMiddlewareFunction · 0.92

Tested by

no test coverage detected