Sirji is a framework to build & run custom AI agents for your everyday dev tasks.
Sirji is a framework to build & run custom AI agents for your everyday dev tasks.
Built with ❤️ by True Sparrow
Sirji is a framework designed to build and run custom AI agents for your everyday development tasks.
Sirji has two main product components: Sirji Studio and Sirji VS Code Extension.
We have built the framework that allows the developer community to build custom agents simply by writing pseudocode in plain English.
Custom agents help capture and convey the developer's code writing style and domain knowledge to Sirji. They performs a specific task based on a custom pseudocode. The community can create a custom agent either by modifying an existing agent or by writing an entirely new agent with a different pseudocode.
We have build and released the VS Code Extension on the Visual Studio Marketplace.
This extension has the following features implemented:
You can start using Sirji by installing this extension from the Visual Studio Marketplace.
Make sure you have installed all of the following prerequisites on your machine:
python --version
runs without error.which tee
runs without error.Also, you will need an OpenAI API key to access the GPT-4o model.
Here's a three-minute demo. We tasked Sirji with creating a new API and its test cases in an existing Node.js repository. Sirji uses these custom agents we developed:
Watch on YouTube: https://www.youtube.com/watch?v=NA7uPIvcvmg
Let's go step by step in understanding the architecture.
An Agent in the Sirji framework is a modular AI component that performs a specific task based on a custom pseudo code.
An agent defines its skills in an agent.yml file. This file lists the skills of the agent and the pseudo code to follow for each skill. It also specifies the LLM provider and model to be used for inference. Additionally, it lists the sub-agents that can be invoked from within the agent to complete certain parts of the task.
A Recipe is a file that lists prescribed tasks and tips for solving a particular problem. It also indicates which agent should perform each task. The tips provide guidance for addressing issues that arise when tasks are performed out of the prescribed order. Each tip specifies the task and the agent responsible for it.
The Orchestrator is the central component in the Sirji framework, responsible for following:
An agent can be invoked in either a fresh session or asked to continue an existing session. When invoked in a new session, it starts with a new system prompt and does not retain the context from the previous session. Sessions help keep the context focused on specific tasks.
The messaging protocol defines how the response from an LLM inference for an agent should appear. It specifies the recipient-specific allowed Response Templates. These Response Templates also adhere to an interface that mandates the presence of keys: FROM, TO, BODY, SUMMARY, and ACTION. The BODY may contain an ACTION-specific information schema.
The Project Folder is the primary directory for accessing all user-specific project files, including code files, documentation, and other relevant resources. When initializing Sirji, the user selects this folder as the primary workspace for the project.
The Agent Output Folder is designated for storing the results and data outputs generated by the agents. This folder is different from the project folder and this ensures that operational data is kept separate from project files.
The Agent Output Index is an index file for the Agent Output Folder that keeps track of all files written by agents in that folder along with the a brief description of the file contents.
We have published following 3 PyPI packages, implementing different responsibilities. These packages are invoked by Python Adapter Scripts, which are spawned by the extension.
sirji-agents
(located in the agents
folder of this monorepo) is a PyPI package that implements the following components of the Sirji AI agentic framework:
sirji-messages
(located in the messages
folder of this monorepo) is a PyPI package that implements the Sirji messaging protocol with the following highlights:
sirji-tools
(located in the tools
folder of this monorepo) implements these tools:
We are calling our next release the ‘Core’ Release (ONGOING).
Here is the link to the ‘Core’ release’s roadmap: https://github.com/orgs/sirji-ai/projects/5
This is a significant release focused on the following key areas:
We welcome contributions to Sirji! If you're interested in helping improve this VS Code extension, please take a look at our Contributing Guidelines for more information on how to get started.
Thank you for considering contributing to Sirji. We look forward to your contributions!
If you run into any issues or have suggestions, please report them by following our issue reporting guidelines. Your reports help us make Sirji better for everyone.
Distributed under the MIT License. See LICENSE
for more information.