Giter Site home page Giter Site logo

deepu-89 / lemon-agent Goto Github PK

View Code? Open in Web Editor NEW

This project forked from felixbrock/lemon-agent

0.0 0.0 0.0 6.76 MB

Plan-Validate-Solve (PVS) Agent for accurate, reliable and reproducable workflow automation

License: MIT License

JavaScript 1.70% TypeScript 98.21% HTML 0.09%

lemon-agent's Introduction

πŸ‹ Lemon Agent

When life gives you lemons, automate it using Lemon Agent 😎

Discord Twitter MIT License
Run Notebook in LangChain Docs

lemon-agent-demo.mp4

Start talking to your tools like Airtable, Hubspot, Discord, Notion and GitHub in minutes and build powerful workflow automations by enabling your LLM to reliably perform read and write operations.

Lemon Agent is a standalone supervised Plan and Solve Agent (ACL 2023 Paper "Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models") that allows for

🀝 Separation of tasks and human-in-the-loop interactions

  • Lemon Agent is currently holding a Planner Agent and a Solver Agent to keep the agents focussed and increase accuracy. We are planning on adding additional agents real soon. In addition, Lemon Agent will ask for approval at relevant workflow steps to make sure the intended actions are executed.

🌌 Unlimited configuration options

  • Lemon Agent gives you unlimited configuration options (see example here) when defining your workflow. For instance, you can tell Lemon Agent to ask for permission before executing a workflow step or to drop a πŸ§”β€β™€οΈ dad joke every time the model executes a workflow step.

πŸ‘€ UI flexibility

  • Build any UI on top or engage with Lemon Agent via the built-in CLI.

🎨 [Soon] Model & framework agnostic operations

  • Lemon Agent is a standalone agent, but can easily be integrated into frameworks like LangChain and be used with any model.

Bonus: By using the analytics visualization you can easily gain a better understanding of how frequently and in which order tools are used. As a result, you can identify weak spots in your agent’s decision-making capabilities and move to a more deterministic behavior by further configuring your Lemon Agent workflows. (.html file that can be run without any additional installation)

Demo

πŸ—οΈ Architecture

A Lemon Agent session is initiated by the user. Via the UI the user then directly chats with the planner agent to define how to solve a given task. Once a solution was defined, the planner agent then starts communicating with the solver agent, which, finally, executes a given workflow step by making use of the multiple tools that are available to the Lemon Agent.

Agent Architecture

⚑️ Getting Started

1. Prerequisites

2. Installing

  1. To run the Lemon Agent locally git clone this repo.
  2. Open the local clone with your favourite IDE and run pnpm i at the root of the project.

3. Start the Lemon Agent

  1. At the root of the project run cp .env.example .env.development to create a new env file.
  2. Store your OpenAI (as AUTH_TOKEN_OPENAI) and GitHub (as AUTH_TOKEN_GITHUB) auth token in .env.development.

For Unix and Unix-like systems: 3. At the root of the project run pnpm exec turbo dev to start the Lemon Agent. In case this doesn't work for you run pnpm exec turbo build at the root, run cd apps/cli to navigate to the project's cli client, and finally, run pnpm run dev.

For Windows:

  1. At the root of the project run pnpm exec turbo dev-win to start the Lemon Agent. In case this doesn't work for you run pnpm exec turbo build at the root, run cd apps/cli to navigate to the project's cli client, and finally, run pnpm run dev-win.

By now your Lemon Agent should be running and waiting for a task to solve.

4. A simple example

Similar to OpenAI functions, the Lemon Agent provides the option to define workflows as reusable functions. Feel free to define and configure any workflow you want in data/workflow.json. Include different tools and add additional fields to further configure the workflow. For instance, the userPermissionRequired field is interpreted by the model as a pre-execution condition to ask the user whether to execute a workflow step.

Example Workflow

{
  "steps": [
    {
      "toolId": "github-repo-get",
      "userPermissionRequired": false
    }
  ]
}

To run the workflow above all you have to do is to tell the Lemon Agent to 'get information about a repository' and finally approve 'yes, do this for the repository lemon-agent and the owner felixbrock'.

🧩 Supported Tools

We already allow agents to interact with over 120 tools across the following services:

  • HackerNews
  • Airtable
  • Slack
  • HubSpot
  • Github
  • Notion
  • Discord
  • Medium
  • Monday.com

🩻 Next Up

  • Github
  • Notion
  • Discord
  • Medium
  • Monday.com
  • Gmail
  • Google Calendar
  • Kafka
  • Pipedrive
  • Stripe
  • Google Cloud Realtime Database
  • Salesforce

🦸 Contributing

Great to see you here! We are extremely open to contributions! You can find more information in our CONTRIBUTING.md. If you have any more questions feel free to drop us a message on Discord.

❀️‍πŸ”₯ Contributors

Those are the team members and people who actively help out improving the codebase by making PRs and reviewing code. We are beyond grateful for your help!

lemon-agent's People

Contributors

abdus2609 avatar clemensschr avatar felixbrock avatar trancethehuman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.