๐Ÿค– Agenite

๐Ÿค– Agenite

๐Ÿค– Build powerful AI agents with TypeScript. Agenite makes it easy to create, compose, and control AI agents with first-class support for tools, streaming, and multi-agent architectures. Switch seamlessly between providers like OpenAI, Anthropic, AWS Bedrock, and Ollama.

subeshb1

Developer Tools
Visit Server

README

๐Ÿค– Agenite

<div align="center"> <img src="./apps/docs/images/hero-dark.png" alt="Agenite Logo" height="200"/> <p><strong>A modern, modular, and type-safe framework for building AI agents using typescript</strong></p> </div>

<div align="center">

GitHub license npm version TypeScript PRs Welcome

</div>

What is Agenite?

Agenite is a powerful TypeScript framework designed for building sophisticated AI agents. It provides a modular, type-safe, and flexible architecture that makes it easy to create, compose, and control AI agents with advanced capabilities.

โœจ Key features

  • Type safety and developer experience

    • Built from the ground up with TypeScript
    • Robust type checking for tools and agent configurations
    • Excellent IDE support and autocompletion
  • Tool integration

    • First-class support for function calling
    • Built-in JSON Schema validation
    • Structured error handling
    • Easy API integration
  • Provider agnostic

    • Support for OpenAI, Anthropic, AWS Bedrock, and Ollama
    • Consistent interface across providers
    • Easy extension for new providers
  • Advanced architecture

    • Bidirectional flow using JavaScript generators
    • Step-based execution model
    • Built-in state management with reducers
    • Flexible middleware system
  • Model context protocol (MCP)

    • Standardized protocol for connecting LLMs to data sources
    • Client implementation for interacting with MCP servers
    • Access to web content, filesystem, databases, and more

๐Ÿ“ฆ Available packages

Package Description Installation
Core packages
@agenite/agent Core agent orchestration framework for managing LLM interactions, tool execution, and state management npm install @agenite/agent
@agenite/tool Tool definition framework with type safety, schema validation, and error handling npm install @agenite/tool
@agenite/llm Base provider interface layer that enables abstraction across different LLM providers npm install @agenite/llm
Provider packages
@agenite/openai Integration with OpenAI's API for GPT models with function calling support npm install @agenite/openai
@agenite/anthropic Integration with Anthropic's API for Claude models npm install @agenite/anthropic
@agenite/bedrock AWS Bedrock integration supporting Claude and other models npm install @agenite/bedrock
@agenite/ollama Integration with Ollama for running models locally npm install @agenite/ollama
MCP package
@agenite/mcp Model Context Protocol client for connecting to standardized data sources and tools npm install @agenite/mcp
Middleware packages
@agenite/pretty-logger Colorful console logging middleware for debugging agent execution npm install @agenite/pretty-logger

For a typical setup, you'll need the core packages and at least one provider:

# Install core packages
npm install @agenite/agent @agenite/tool @agenite/llm

# Install your preferred provider
npm install @agenite/openai
# OR
npm install @agenite/bedrock

๐Ÿš€ Quick start

import { Agent } from '@agenite/agent';
import { Tool } from '@agenite/tool';
import { BedrockProvider } from '@agenite/bedrock';
import { prettyLogger } from '@agenite/pretty-logger';

// Create a calculator tool
const calculatorTool = new Tool<{ expression: string }>({
  name: 'calculator',
  description: 'Perform basic math operations',
  inputSchema: {
    type: 'object',
    properties: {
      expression: { type: 'string' },
    },
    required: ['expression'],
  },
  execute: async ({ input }) => {
    try {
      const result = new Function('return ' + input.expression)();
      return { isError: false, data: result.toString() };
    } catch (error) {
      if (error instanceof Error) {
        return { isError: true, data: error.message };
      }
      return { isError: true, data: 'Unknown error' };
    }
  },
});

// Create an agent
const agent = new Agent({
  name: 'math-buddy',
  provider: new BedrockProvider({
    model: 'anthropic.claude-3-5-sonnet-20240620-v1:0',
  }),
  tools: [calculatorTool],
  instructions: 'You are a helpful math assistant.',
  middlewares: [prettyLogger()],
});

// Example usage
const result = await agent.execute({
  messages: [
    {
      role: 'user',
      content: [{ type: 'text', text: 'What is 1234 * 5678?' }],
    },
  ],
});

๐Ÿ—๏ธ Core concepts

Agents

Agents are the central building blocks in Agenite. An agent:

  • Orchestrates interactions between LLMs and tools
  • Manages conversation state and context
  • Handles tool execution and results
  • Supports nested execution for complex workflows
  • Provides streaming capabilities for real-time interactions

Tools

Tools extend agent capabilities by providing specific functionalities:

  • Strong type safety with TypeScript
  • JSON Schema validation for inputs
  • Flexible error handling
  • Easy API integration

Providers

Currently supported LLM providers:

  • OpenAI API (GPT models)
  • Anthropic API (Claude models)
  • AWS Bedrock (Claude, Titan models)
  • Local models via Ollama

Model Context Protocol (MCP)

MCP is a standardized protocol for connecting LLMs to data sources:

  • Client implementation for interacting with MCP servers
  • Access to web content, filesystem, databases, and more
  • Similar to how USB-C provides universal hardware connections

๐Ÿ”„ Advanced features

Multi-agent systems

// Create specialist agents
const calculatorAgent = new Agent({
  name: 'calculator-specialist',
  provider,
  tools: [calculatorTool],
  description: 'Specializes in mathematical calculations',
});

const weatherAgent = new Agent({
  name: 'weather-specialist',
  provider,
  tools: [weatherTool],
  description: 'Provides weather information',
});

// Create a coordinator agent
const coordinatorAgent = new Agent({
  name: 'coordinator',
  provider,
  agents: [calculatorAgent, weatherAgent],
  instructions: 'Coordinate between specialist agents to solve complex problems.',
});

Step-based execution

// Create an iterator for fine-grained control
const iterator = agent.iterate({
  messages: [{ role: 'user', content: [{ type: 'text', text: 'Calculate 25 divided by 5, then multiply by 3' }] }],
  stream: true,
});

// Process the stream with custom handling
for await (const chunk of iterator) {
  switch (chunk.type) {
    case 'agenite.llm-call.streaming':
      console.log(chunk.content);
      break;
    case 'agenite.tool-call.params':
      console.log('Using tool:', chunk.toolUseBlocks);
      break;
    case 'agenite.tool-result':
      console.log('Tool result:', chunk.result);
      break;
  }
}

๐Ÿ“š Documentation

For comprehensive documentation, visit docs.agenite.com:

๐Ÿค Community

๐Ÿ› ๏ธ Development

git clone https://github.com/subeshb1/agenite.git
cd agenite
pnpm install
pnpm build

๐Ÿ“„ License

MIT

๐ŸŒŸ Star history

Star History Chart


Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
MCP Package Docs Server

MCP Package Docs Server

Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.

Featured
Local
TypeScript
Claude Code MCP

Claude Code MCP

An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.

Featured
Local
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.

Featured
Local
JavaScript
Linear MCP Server

Linear MCP Server

Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.

Featured
JavaScript
mermaid-mcp-server

mermaid-mcp-server

A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.

Featured
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP server to provide Jira Tickets information to AI coding agents like Cursor

Featured
TypeScript
Linear MCP Server

Linear MCP Server

A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Featured
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.

Featured
Python