Sirji is a framework to build & run custom AI agents for your everyday dev tasks. Built with ❤️ by True Sparrow
SirjiSirji is a framework for creating and running custom AI agents to help developers with their daily tasks. Implemented as a VS Code extension, Sirji offers an interactive chat interface within the IDE, utilizing features like the Editor, Terminal, and Project Explorer. Sirji is an open-source project. Check out the documentation. InstallationYou 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:
For LLM inference, you would need an API key from at least one of OpenAI, Anthropic or DeepSeek. Demo VideoHere'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 Note: Sirji is still rough on the edges. We are also working on better documentation (particularly for Sirji Studio). So we suggest if you want to try Sirji, please let us give you a walkthrough. You can book a call with us here. ArchitectureLet's go step by step in understanding the architecture. AgentAn 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 skill and pseudo code to follow for working on that skill in an agent.yml file. 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. Recipe (recipe.json)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. OrchestratorThe Orchestrator is the central component in the Sirji framework and is responsible for the following:
Agent SessionsAn 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. Messaging ProtocolThe 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. Project FolderThe 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. Agent Output FolderThe 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. Agent Output IndexThe 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. PyPI PackagesWe have published the following 3 PyPI packages, implementing different responsibilities. These packages are invoked by Python Adapter Scripts, which are spawned by the extension. sirji-agents
sirji-messages
sirji-tools
Architecture DiagramContributingWe 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! Reporting IssuesIf 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. Stay In TouchLicenseDistributed under the MIT License. See |