1
00:00:00,040 --> 00:00:02,200
我刚才是不是说过要停止这场哑剧了？

2
00:00:02,360 --> 00:00:03,400
好吧，我收回那句话。

3
00:00:03,400 --> 00:00:05,360
我们再演一次哑剧。

4
00:00:05,360 --> 00:00:09,840
我刚刚添加了来自 LM 代理的另一个回复。

5
00:00:09,840 --> 00:00:12,400
所以我会让 LM 特工，嗯，做出回应。

6
00:00:12,440 --> 00:00:13,040
你好呀。

7
00:00:13,080 --> 00:00:18,400
我会让那个令人讨厌的代理人不同意，然后我会把它放回，呃，GPT

8
00:00:18,400 --> 00:00:21,400
一分钟看看它如何处理分歧。

9
00:00:21,760 --> 00:00:23,680
让我们看看这个小对话是如何进行的。

10
00:00:23,840 --> 00:00:24,520
你好呀。

11
00:00:24,840 --> 00:00:26,040
呃，你好。

12
00:00:26,080 --> 00:00:27,320
今天我能为您提供什么帮助？

13
00:00:27,960 --> 00:00:29,840
呃，你说你好。

14
00:00:29,840 --> 00:00:31,960
今天我该如何帮助你，我不同意。

15
00:00:33,240 --> 00:00:37,600
然后给他 GPT，他说，我很感谢你的反馈。

16
00:00:37,800 --> 00:00:40,120
您希望我如何问候您或为您提供帮助？

17
00:00:41,480 --> 00:00:46,080
所以如果你想残忍，你可以继续这样下去，让它不断地不同意，然后看看

18
00:00:46,080 --> 00:00:48,760
嗯，GPT 4 和 mini 是如何处理这个问题的。

19
00:00:48,800 --> 00:00:54,840
一旦你玩得很开心，那么你应该这样做，这个，这个停止运行时然后关闭

20
00:00:54,840 --> 00:01:00,210
运行时，auto gen 核心人员坚持要求我们在开始另一个运行时之前执行此操作。

21
00:01:00,210 --> 00:01:03,490
所以我们会这么做，并且善待它。

22
00:01:03,530 --> 00:01:03,890
好的。

23
00:01:03,890 --> 00:01:08,010
但再举一个例子，恐怕这次我们不会有真正的商业广告

24
00:01:08,010 --> 00:01:13,770
例子，因为，呃，我认为这只是一个展示平台工作情况的例子，你可以拿这个

25
00:01:13,770 --> 00:01:15,770
离开并弄清楚你想用它做什么。

26
00:01:15,770 --> 00:01:20,890
但对于这个例子，呃，我们将在几个特工之间玩石头、剪刀、布来展示，

27
00:01:20,930 --> 00:01:25,530
因为我只是想说明这样一个事实：这种合作、这种互动就是这样的

28
00:01:25,530 --> 00:01:26,250
所有关于。

29
00:01:26,450 --> 00:01:33,450
非常简单，我们有一个玩家，一个代理，它是根代理的子类。

30
00:01:33,690 --> 00:01:41,730
它，呃，它有一个，嗯，嗯，开放式人工智能聊天完成客户端作为其下划线代表。

31
00:01:41,730 --> 00:01:50,570
它有一个助理代理，将其用作模型客户端，然后它处理我的消息

32
00:01:50,570 --> 00:01:54,500
接受消息并返回响应的类型。

33
00:01:54,500 --> 00:02:02,500
所以这是一种超级普通的 LM 路由，它只会简单地响应消息

34
00:02:02,500 --> 00:02:04,300
在消息对象中给出。

35
00:02:04,500 --> 00:02:05,020
好的。

36
00:02:05,060 --> 00:02:09,020
我们有一个球员二，这是完全相同的事情，但有一点细微的差别。

37
00:02:09,020 --> 00:02:09,900
你能发现它吗？

38
00:02:10,140 --> 00:02:11,860
你能看出这两者之间的区别吗？

39
00:02:12,860 --> 00:02:19,540
嗯，不同之处在于，它有一个 llama 赛道完成客户端，而不是 OpenAI 赛道提交

40
00:02:19,540 --> 00:02:19,780
客户。

41
00:02:19,780 --> 00:02:21,100
所以我们要使用美洲驼。

42
00:02:21,100 --> 00:02:22,780
我们将使用本地模型。

43
00:02:23,060 --> 00:02:27,940
我们将看看我们选择哪种模型。

44
00:02:28,180 --> 00:02:33,660
对于这个，我们将选择 llama 3.2，即 llama 3.2 的 30 亿个变体。

45
00:02:33,860 --> 00:02:38,220
这些是几个代理。

46
00:02:38,620 --> 00:02:43,700
现在我们将有第三个特工。

47
00:02:43,940 --> 00:02:47,740
这将是呃石头剪刀布特工。

48
00:02:47,740 --> 00:02:52,150
所以这个将会有更多的内容，它将有一个说明。

49
00:02:52,390 --> 00:02:54,390
你在玩石头剪刀布。

50
00:02:55,030 --> 00:02:55,630
首先。

51
00:02:55,670 --> 00:02:57,590
所以首先它提出了这个指令。

52
00:02:57,590 --> 00:02:59,030
你在玩石头剪刀布。

53
00:02:59,030 --> 00:03:01,710
只回答以下一个词之一。

54
00:03:01,750 --> 00:03:03,350
石头、剪刀、布。

55
00:03:03,870 --> 00:03:05,830
它将这些内容组合成一条消息。

56
00:03:06,470 --> 00:03:13,630
它查找默认 ID，即玩家 1 的默认密钥。

57
00:03:13,630 --> 00:03:18,750
该类型，它会查找玩家二的默认值，即该类型。

58
00:03:19,030 --> 00:03:20,550
它正在寻找它们。

59
00:03:20,550 --> 00:03:27,350
然后，作为处理消息的一部分，它向这些其他代理发送消息。

60
00:03:27,470 --> 00:03:30,430
所以它只是选择而不是选择。

61
00:03:30,430 --> 00:03:31,430
就像在这里编码一样。

62
00:03:31,430 --> 00:03:34,030
但它正在发送这些信息。

63
00:03:34,470 --> 00:03:41,110
然后返回的结果是，它会将一小段文本组合在一起，称为

64
00:03:41,110 --> 00:03:43,870
判断，这表明你正在玩石头、剪子、布的游戏。

65
00:03:43,870 --> 00:03:44,000
剪刀。

66
00:03:44,000 --> 00:03:45,640
球员们已经做出了这些选择。

67
00:03:45,680 --> 00:03:45,920
对不起。

68
00:03:45,960 --> 00:03:46,800
你又来评判了。

69
00:03:46,840 --> 00:03:47,720
石头布，剪刀。

70
00:03:47,720 --> 00:03:49,240
玩家已经做出了这些选择。

71
00:03:49,560 --> 00:03:49,920
一。

72
00:03:49,920 --> 00:03:52,040
然后就结束了，呃。

73
00:03:52,520 --> 00:03:53,240
谁赢了？

74
00:03:53,280 --> 00:03:54,080
问号。

75
00:03:54,200 --> 00:03:57,760
滑入玩家一的选择和玩家二的选择后。

76
00:03:57,920 --> 00:04:03,120
然后它被发送到我的模型，即 GPT 4 mini。

77
00:04:03,440 --> 00:04:05,880
然后我们返回响应。

78
00:04:06,560 --> 00:04:11,680
总而言之，我们在这里定义了总共三个代理。

79
00:04:11,800 --> 00:04:16,840
其中三个就像代理经理和代理包装员，他们不是真正的代理。

80
00:04:16,840 --> 00:04:18,760
他们委托给真正的代理人。

81
00:04:19,000 --> 00:04:23,120
其中一个称为玩家一，它委托给 OpenAI 到 GPT 四。

82
00:04:23,320 --> 00:04:27,920
迷你一号称为玩家二号，它委托给 llama 3.2。

83
00:04:28,080 --> 00:04:29,520
然后他们就没有任何提示了。

84
00:04:29,520 --> 00:04:31,600
他们只是按照指示去做。

85
00:04:32,040 --> 00:04:34,240
还有一位叫做法官。

86
00:04:34,600 --> 00:04:41,360
法官非常清楚地向一号和二号玩家发出指令，说捡石头或纸

87
00:04:41,400 --> 00:04:42,000
或剪刀。

88
00:04:42,200 --> 00:04:47,240
然后根据返回的内容进行判断并返回结果。

89
00:04:47,520 --> 00:04:52,360
这样我们就有了一个石头剪刀布游戏的简单设置。

90
00:04:52,480 --> 00:04:55,200
当然，你可以让它变得更有趣。

91
00:04:55,200 --> 00:04:59,200
你可以让它变得有趣，也可以让它变得严肃。

92
00:04:59,200 --> 00:05:00,080
这是商业性的。

93
00:05:00,240 --> 00:05:06,360
就像我们在第六周下次思考时一样，我们将像金融交易一样进行构建

94
00:05:06,360 --> 00:05:07,000
设置。

95
00:05:07,000 --> 00:05:12,960
你可以想象这可能是不同的代理可以交互并可以争论某事的东西

96
00:05:12,960 --> 00:05:17,200
比如某项股票是一项好的投资还是一项糟糕的投资。

97
00:05:17,200 --> 00:05:20,280
你可以想象这就是可能发生的互动。

98
00:05:20,280 --> 00:05:25,120
所以这个，这个，虽然我们在这里用它来做一个肤浅的练习，但有很多方法你可以

99
00:05:25,120 --> 00:05:31,280
可以想象任何时候您想要某种自治权以及不同代理之间进行交互的能力。

100
00:05:31,280 --> 00:05:35,520
你可以将这种商业逻辑构建到这种框架中。

101
00:05:35,560 --> 00:05:37,450
这就是 Autogen 核心的用途。

102
00:05:37,890 --> 00:05:39,730
不适合玩石头、剪刀、布。

103
00:05:39,730 --> 00:05:45,410
但无论如何，石头剪刀布就是你拿到的牌，所以你不妨玩一下。

104
00:05:45,450 --> 00:05:46,570
让我们试一试吧。

105
00:05:46,610 --> 00:05:53,250
很简单，我们在单线程代理运行时创建一个线程代理，这就是简单的

106
00:05:53,290 --> 00:05:55,250
一种本地运行时。

107
00:05:55,410 --> 00:06:02,010
我们注册玩家一，注册玩家二，并赋予其实例化玩家一的能力，

108
00:06:02,010 --> 00:06:02,370
二。

109
00:06:02,890 --> 00:06:08,970
然后我们登记法官、石头、剪刀、布，一切准备就绪。

110
00:06:08,970 --> 00:06:10,610
然后我们开始运行。

111
00:06:10,650 --> 00:06:13,490
我们已经注册了所有内容，这就是我们进行注册的地方。

112
00:06:13,530 --> 00:06:17,450
我们要去寻找我们石头剪刀布的默认代理。

113
00:06:17,930 --> 00:06:23,130
我们会说，开始吧，让我们看看会发生什么。

114
00:06:23,130 --> 00:06:23,930
关掉它就跑了。

115
00:06:23,970 --> 00:06:28,530
特工们在说话，事情正在发生，我们就这样吧。

116
00:06:29,010 --> 00:06:30,250
一号玩家说摇滚。

117
00:06:30,290 --> 00:06:31,650
玩家二号说剪刀。

118
00:06:31,780 --> 00:06:34,060
一号玩家获胜，因为石头打败了剪刀。

119
00:06:34,300 --> 00:06:34,780
完毕。

120
00:06:35,420 --> 00:06:36,620
现在你就得到了它。

121
00:06:36,620 --> 00:06:42,460
在那里，代理正在组织和交互，并且代理正在被发现。

122
00:06:42,460 --> 00:06:48,860
石头、剪子、布特工通过识别这两个特工的名字发现了他们

123
00:06:48,860 --> 00:06:54,300
发送消息，呃，通过，呃，通过运行时。

124
00:06:54,540 --> 00:07:02,460
嗯，而且，呃，我们看到特工在石头、剪刀、布的游戏中进行互动，并被判定为受管理

125
00:07:02,460 --> 00:07:03,740
由 Autogen 核心提供。

126
00:07:03,780 --> 00:07:06,820
同样，有独立式和分布式两种类型。

127
00:07:06,820 --> 00:07:08,100
今天我们独立进行。

128
00:07:08,100 --> 00:07:09,700
明天我们将进行分布式。

129
00:07:09,700 --> 00:07:12,500
我只是想再次强调，这是为了给你一个味道。

130
00:07:12,660 --> 00:07:17,780
对于我们在本课程中主要做的代理的构建来说，这不一定是必要的，

131
00:07:17,780 --> 00:07:22,620
但获得这种洞察力并看到它并将其与其他产品进行比较对您来说是有好处的

132
00:07:22,620 --> 00:07:23,020
那里。

133
00:07:23,460 --> 00:07:25,540
就这样，第三天就结束了。

134
00:07:25,540 --> 00:07:27,500
正如我所说，明天我们就开始分发了。

135
00:07:27,500 --> 00:07:28,340
到时候见。