机长就是个被标记的 Session,技术接口上并不特殊。它是协调者,有点像领导或者前台。大多数情况下它不关心具体实现,它主要是去组织、协调各个 Session 做事还有接收其他地方推来的通知。安排和委派的操作是往异步方向设计的,按道理你可以随时跟他说话、布置任务、问问题,而不会被它当前手上的活阻塞。不过虽然设计时我就明确不让它淹没在各种执行细节里面,但实际使用中这还是很难,因为 Agent 似乎有一种总喜欢自己做事的思维定式。
机长可以直接对本机组进行各种操作,比如迁移、改名、移动自身的层级等等。我设想中它还应该可以自己滚动、定位消息,用快速的模型做即时的 UI,以及界面中元素的自由布局等等。这也是从我设计应用的一个基本想法出发——应用设置应该让 Agent 来,GUI 的机械开关和固定入口用于快速操作以及重要决策。其实这方面我还想做挺多的,但是因为想着抓大放小,这在目前阶段属于是放掉的部分,就很遗憾很多想法没有完整地实现。
机长还可以决策和处理各个 Session 卡住的地方(当然是在明确不需要人决策的情况下去处理)因为有时候 Session 要求确认一些事情的时候,并不是真的因为决策有多重要或者需要进一步确认,而是信息没传递到位或者理解有误。这时候机长就可以直接填补。
机长还充当与外界联络的角色。它不仅仅协调自己机组内部的各个 Session 之间的工作,还会思考应该怎样和其它机组协作、可以怎样协作。如同企业或各种组织中的小领导,向外交涉是很重要的一部分。这能让组织整体更好地完成一个任务。