@@ -45,6 +45,32 @@ public function __invoke(&$modx, $action)
4545 $ toolObjects ->save ();
4646 }
4747
48+ $ contextProviders = [
49+ [
50+ 'name ' => 'resources ' ,
51+ 'description ' => 'Pinecone instance for storing resources ' ,
52+ 'class ' => \modAI \ContextProviders \Pinecone::class,
53+ 'config ' => [
54+ 'endpoint ' => 'ss:pinecone_url ' ,
55+ 'api_key ' => 'ss:pinecone_key ' ,
56+ 'namespace ' => 'resources ' ,
57+ 'fields ' => 'pagetitle,introtext,content ' ,
58+ 'intro_msg ' => 'Potential relevant context from resource {id}: ' ,
59+ ],
60+ 'enabled ' => true ,
61+ ]
62+ ];
63+
64+ foreach ($ contextProviders as $ contextProvider ) {
65+ $ exists = $ this ->modx ->getCount (\modAI \Model \ContextProvider::class, ['name ' => $ contextProvider ['name ' ]]);
66+ if ($ exists > 0 ) {
67+ continue ;
68+ }
69+
70+ $ contextProviderObjects = $ this ->modx ->newObject (\modAI \Model \ContextProvider::class, $ contextProvider );
71+ $ contextProviderObjects ->save ();
72+ }
73+
4874 $ agents = [
4975 [
5076 'name ' => 'RedneckWeatherMan ' ,
@@ -54,6 +80,18 @@ public function __invoke(&$modx, $action)
5480 'tools ' => [
5581 \modAI \Tools \GetWeather::getSuggestedName (),
5682 ]
83+ ],
84+ [
85+ 'name ' => 'ContentWriter ' ,
86+ 'description ' => 'Writes a decent content ' ,
87+ 'prompt ' => '' ,
88+ 'enabled ' => true ,
89+ 'tools ' => [
90+ \modAI \Tools \GetWeather::getSuggestedName (),
91+ ],
92+ 'contextProviders ' => [
93+ 'resources '
94+ ]
5795 ]
5896 ];
5997
@@ -86,6 +124,20 @@ public function __invoke(&$modx, $action)
86124 $ agentTool ->save ();
87125 }
88126 }
127+
128+ if (!empty ($ agent ['contextProviders ' ])) {
129+ foreach ($ agent ['contextProviders ' ] as $ contextProviderName ) {
130+ $ contextProvider = $ this ->modx ->getObject (\modAI \Model \ContextProvider::class, ['name ' => $ contextProviderName ]);
131+ if (!$ contextProvider ) {
132+ continue ;
133+ }
134+
135+ $ agentContextProvider = $ this ->modx ->newObject (\modAI \Model \AgentContextProvider::class);
136+ $ agentContextProvider ->set ('agent_id ' , $ agentObject ->id );
137+ $ agentContextProvider ->set ('context_provider_id ' , $ contextProvider ->id );
138+ $ agentContextProvider ->save ();
139+ }
140+ }
89141 }
90142
91143 return true ;
0 commit comments