The Frontegg AI Agents SDK provides AI Agent developers with tools and utilities to easily empower AI agents within their applications. This SDK seamlessly integrates with the Frontegg platform, enabling advanced tool authentication, authorization, and identity management capabilities for AI Agents.
- Secure integration with Frontegg authentication
- Easy integration with Frontegg built-in and 3rd party application tools
- User identity context for agent throught Frontegg's identity platform
- Seamless integration with Langchain AI applications and agents
Ensure that your environment meets the following requirements:
- Node.js: Version 18.16.0 or later
- TypeScript: Version 5.7.2 or later
- A working LangChain project with agent implementation
- Access to a Frontegg tenant and registered application credentials
npm install @frontegg/ai-sdk
# or
yarn add @frontegg/ai-sdk
Initialize the Frontegg AI client to connect with your tenant environment:
// frontegg.config.ts
import { Environment, FronteggAiClient } from '@frontegg/ai-sdk';
export const fronteggAiClient = await FronteggAiClient.getInstance({
agentId: process.env.FRONTEGG_AGENT_ID!,
clientId: process.env.FRONTEGG_CLIENT_ID!,
clientSecret: process.env.FRONTEGG_CLIENT_SECRET!,
environment: Environment.EU,
});
Fetch user-specific tools from Frontegg and dynamically construct a LangChain agent:
public async processRequest(request: string, userJwt: string): Promise<any> {
if (!this.fronteggAiClient) {
throw new Error('Frontegg client not initialized');
}
await this.fronteggAiClient.setUserContextByJWT(userJwt);
const tools = await this.fronteggAiClient.getToolsAsLangchainTools();
const messages = [
{
role: 'system',
content: this.fronteggAiClient.addUserContextToSystemPrompt(this.systemMessage),
},
...this.conversationHistory,
new MessagesPlaceholder('agent_scratchpad'),
];
const prompt = ChatPromptTemplate.fromMessages(messages);
const openAIFunctionsAgent = await createOpenAIFunctionsAgent({
llm: this.model as any,
tools: tools as any,
prompt: prompt as any,
});
this.agent = new AgentExecutor({
agent: openAIFunctionsAgent as any,
tools: tools as any,
verbose: true,
});
const result = await this.agent.invoke({ input: request });
return result;
}
For detailed documentation, please visit our official documentation.
Check out our example project for sample implementations and use cases.
We welcome contributions! Please see our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.
Frontegg is a powerful user management platform that provides everything modern apps need beyond authentication.