Skip to content

Commit

Permalink
⚙️ fix: minor issues related to agents (#4297)
Browse files Browse the repository at this point in the history
* chore: deprecate `web-browser` tool

* fix: edit agent permission
  • Loading branch information
danny-avila authored Oct 1, 2024
1 parent 2ce8647 commit 2ca257d
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 24 deletions.
19 changes: 0 additions & 19 deletions api/app/clients/tools/util/handleTools.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
const { Tools } = require('librechat-data-provider');
const { ZapierToolKit } = require('langchain/agents');
const { Calculator } = require('langchain/tools/calculator');
const { WebBrowser } = require('langchain/tools/webbrowser');
const { SerpAPI, ZapierNLAWrapper } = require('langchain/tools');
const { OpenAIEmbeddings } = require('langchain/embeddings/openai');
const { createCodeExecutionTool, EnvVar } = require('@librechat/agents');
const { getUserPluginAuthValue } = require('~/server/services/PluginService');
const {
Expand Down Expand Up @@ -31,12 +29,6 @@ const { loadToolSuite } = require('./loadToolSuite');
const { loadSpecs } = require('./loadSpecs');
const { logger } = require('~/config');

const getOpenAIKey = async (options, user) => {
let openAIApiKey = options.openAIApiKey ?? process.env.OPENAI_API_KEY;
openAIApiKey = openAIApiKey === 'user_provided' ? null : openAIApiKey;
return openAIApiKey || (await getUserPluginAuthValue(user, 'OPENAI_API_KEY'));
};

/**
* Validates the availability and authentication of tools for a user based on environment variables or user-specific plugin authentication values.
* Tools without required authentication or with valid authentication are considered valid.
Expand Down Expand Up @@ -177,8 +169,6 @@ const loadTools = async ({
traversaal_search: TraversaalSearch,
};

const openAIApiKey = await getOpenAIKey(options, user);

const customConstructors = {
e2b_code_interpreter: async () => {
if (!functions) {
Expand All @@ -191,7 +181,6 @@ const loadTools = async ({
user,
options: {
model,
openAIApiKey,
...options,
},
});
Expand All @@ -208,14 +197,6 @@ const loadTools = async ({
options,
});
},
'web-browser': async () => {
// let openAIApiKey = options.openAIApiKey ?? process.env.OPENAI_API_KEY;
// openAIApiKey = openAIApiKey === 'user_provided' ? null : openAIApiKey;
// openAIApiKey = openAIApiKey || (await getUserPluginAuthValue(user, 'OPENAI_API_KEY'));
const browser = new WebBrowser({ model, embeddings: new OpenAIEmbeddings({ openAIApiKey }) });
browser.description_for_model = browser.description;
return browser;
},
serpapi: async () => {
let apiKey = process.env.SERPAPI_API_KEY;
if (!apiKey) {
Expand Down
20 changes: 15 additions & 5 deletions client/src/components/SidePanel/Agents/AgentPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -174,15 +174,25 @@ export default function AgentPanel({
}
}, [agent_id, onSelectAgent]);

const canEditAgent = useMemo(() => {
const canEdit =
agentQuery.data?.isCollaborative ?? false
? true
: agentQuery.data?.author === user?.id || user?.role === SystemRoles.ADMIN;

return agentQuery.data?.id != null && agentQuery.data.id ? canEdit : true;
}, [
agentQuery.data?.isCollaborative,
agentQuery.data?.author,
agentQuery.data?.id,
user?.id,
user?.role,
]);

if (agentQuery.isInitialLoading) {
return <AgentPanelSkeleton />;
}

const canEditAgent =
agentQuery.data?.isCollaborative ?? false
? true
: agentQuery.data?.author === user?.id || user?.role === SystemRoles.ADMIN;

return (
<FormProvider {...methods}>
<form
Expand Down

0 comments on commit 2ca257d

Please # to comment.