Devika is an advanced AI software project aimed at understanding high-level human instructions, decomposing them into actionable steps, conducting research, and writing code to fulfill specified objectives. It integrates various large language models and supports functionalities like AI planning, reasoning, web browsing for information gathering, and multi-language code writing. The project is licensed under the MIT License and has gained significant traction with 16,593 stars on GitHub.
The project currently faces several critical issues that impact its functionality and user experience:
Security and Exposure Concerns: Issue #510 highlights the need for enhanced security measures to prevent accidental exposure of sensitive API keys.
Stability and Error Handling: Issues like #511 and #507 point to problems with stability due to thread management errors and the lack of a retry mechanism for failed tasks.
Functionality Enhancements: The integration of new tools like Claude 3 (Issue #506) and improvements in agent planning capabilities (Issue #503) are suggested to enhance Devika's operational effectiveness.
Core Functional Issues: Problems with core functionalities such as search engine integration (Issue #500) and server connectivity (Issue #499) severely affect the user experience.
There are several open pull requests that address both minor fixes and major enhancements:
PR #491 involves significant discussions about feature necessity and model capabilities, indicating a need for clear communication and understanding before merging.
PR #469 proposes regex parsing for LLM responses, which could streamline response handling significantly.
Recent closures of PRs like #508 without merging suggest possible miscommunications or premature submissions.
The team is actively engaged in enhancing the project’s stability through better error handling mechanisms and UI updates. There is also a focus on expanding support for various language models. Collaboration among team members is evident, suggesting a cooperative development environment. However, there are areas like documentation and error logging that need improvement for better maintainability.
src/agents/runner/runner.py
src/config.py
ui/src/lib/components/ControlPanel.svelte
src/llm/llm.py
src/browser/search.py
While the codebase demonstrates good software design principles, there are several areas where improvements are necessary to enhance readability, error handling, and overall code quality.
Prioritize Critical Issues: Focus on resolving issues affecting core functionalities like search engine integration (#500) and server connectivity (#499).
Enhance Security Measures: Implement features to hide API keys (#510) to improve security.
Improve Documentation and Logging: Enhance documentation to help new contributors understand the codebase better and replace print statements with a robust logging framework.
Review Pull Requests Thoroughly: Ensure that all concerns in discussions like those in PR #491 are addressed before merging to avoid introducing more issues.
Streamline Development Processes: Avoid duplicate PRs and ensure all team members are aligned on project goals to prevent unnecessary work.
By addressing these recommendations, the Devika project can improve its functionality, user experience, and development efficiency.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Nalaso | 1 | 2/2/0 | 2 | 46 | 1334 | |
ayush rajgor | 1 | 1/1/0 | 15 | 37 | 893 | |
Ahmet0691 | 1 | 0/1/0 | 1 | 2 | 19 | |
Wickes Wong | 1 | 1/1/0 | 1 | 4 | 17 | |
Younes DARRASSI | 1 | 2/1/0 | 1 | 1 | 12 | |
FroDK | 1 | 1/1/0 | 1 | 1 | 3 | |
Henri Jamet (hjamet) | 0 | 1/0/0 | 0 | 0 | 0 | |
Ihab P (ITP2023) | 0 | 1/0/0 | 0 | 0 | 0 | |
Dobromir Popov (d-popov) | 0 | 0/0/1 | 0 | 0 | 0 | |
Cheifsam (hassamc) | 0 | 1/0/0 | 0 | 0 | 0 | |
Ikko Eltociear Ashimine (eltociear) | 0 | 1/0/0 | 0 | 0 | 0 | |
Suvodeep Chowdhury (ImSuvodeep) | 0 | 0/0/2 | 0 | 0 | 0 | |
Rawknee.69 (Rawknee-69) | 0 | 4/0/3 | 0 | 0 | 0 | |
ViscousGuy (ViscousGuy) | 0 | 0/0/1 | 0 | 0 | 0 | |
AMJID DADER (amjiddader) | 0 | 1/0/0 | 0 | 0 | 0 | |
Jerome Sonnet (letzdoo) (letzdoo-js) | 0 | 1/0/1 | 0 | 0 | 0 | |
Dmitry Vasilev (scythargon) | 0 | 1/0/1 | 0 | 0 | 0 | |
Kesavan (Nallandavar) | 0 | 1/0/1 | 0 | 0 | 0 | |
Robert Paulson (PlanetMacro) | 0 | 0/0/1 | 0 | 0 | 0 | |
None (prathyushnallamothu) | 0 | 0/0/1 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
Devika is a cutting-edge Agentic AI Software Engineer designed to automate complex software engineering tasks by understanding high-level human instructions, conducting research, and writing code. This project, hosted by stitionai on GitHub, is in the experimental phase but has shown significant potential through its integration with advanced language models and AI capabilities. The project's open-source nature under the MIT License has attracted considerable attention, evidenced by its 16,593 stars on GitHub.
The development team behind Devika is actively addressing both foundational and innovative aspects of the project. Recent activities suggest a strong focus on enhancing the user interface, improving error handling, and expanding the software’s capabilities with new features like advanced AI planning and reasoning. The team shows healthy collaboration patterns, with multiple members contributing to key areas of the project, indicating a robust development environment.
Devika competes directly with similar tools like Devin by Cognition AI but differentiates itself through its open-source model and the potential for customization and integration with various large language models. This flexibility makes Devika particularly attractive in markets that value adaptability and community-driven development. The ongoing enhancements in AI capabilities could position Devika as a leader in automated software engineering solutions, appealing to both corporate users and independent developers.
Investing in resolving current issues, particularly those affecting core functionalities like API management and server connectivity, will be crucial for maintaining user trust and functional integrity. The benefits of such investments include increased reliability and user satisfaction, which can translate into broader adoption and potentially, commercial partnerships or premium support services.
The current team size appears to be adequate for the project’s scope; however, as Devika grows and attracts more users, scaling the team to include more specialists in areas like UI/UX design, security, and large language model integration might be necessary to sustain development pace and innovation.
Prioritize Core Functionality Fixes: Immediate attention should be given to resolving issues that impact basic operations such as search functionality (#500) and server connectivity (#499). These are critical for user retention and trust.
Enhance Security Features: Implementing features like hiding API keys (#510) should be accelerated to enhance security posture and protect user data.
Expand Documentation and Developer Support: As seen in issue #501, there is a demand for better learning resources. Expanding official documentation and support materials can facilitate easier onboarding of new contributors and users.
Explore Advanced AI Features: Given the interest in more sophisticated AI features (#506, #503), exploring these could provide Devika with a significant competitive edge in technology foresight.
Monitor Team Collaboration and Workflow Efficiency: Continue fostering a collaborative environment but also introduce regular reviews to ensure that team efforts are well-coordinated and aligned with strategic goals.
Devika stands at a promising juncture with potential market leadership in the AI-driven software engineering domain. Strategic investments in core functionality, security enhancements, documentation, and advanced AI capabilities will be pivotal in realizing this potential. The project's open-source nature should continue to be leveraged to foster innovation and community engagement, driving forward its development and adoption.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Nalaso | 1 | 2/2/0 | 2 | 46 | 1334 | |
ayush rajgor | 1 | 1/1/0 | 15 | 37 | 893 | |
Ahmet0691 | 1 | 0/1/0 | 1 | 2 | 19 | |
Wickes Wong | 1 | 1/1/0 | 1 | 4 | 17 | |
Younes DARRASSI | 1 | 2/1/0 | 1 | 1 | 12 | |
FroDK | 1 | 1/1/0 | 1 | 1 | 3 | |
Henri Jamet (hjamet) | 0 | 1/0/0 | 0 | 0 | 0 | |
Ihab P (ITP2023) | 0 | 1/0/0 | 0 | 0 | 0 | |
Dobromir Popov (d-popov) | 0 | 0/0/1 | 0 | 0 | 0 | |
Cheifsam (hassamc) | 0 | 1/0/0 | 0 | 0 | 0 | |
Ikko Eltociear Ashimine (eltociear) | 0 | 1/0/0 | 0 | 0 | 0 | |
Suvodeep Chowdhury (ImSuvodeep) | 0 | 0/0/2 | 0 | 0 | 0 | |
Rawknee.69 (Rawknee-69) | 0 | 4/0/3 | 0 | 0 | 0 | |
ViscousGuy (ViscousGuy) | 0 | 0/0/1 | 0 | 0 | 0 | |
AMJID DADER (amjiddader) | 0 | 1/0/0 | 0 | 0 | 0 | |
Jerome Sonnet (letzdoo) (letzdoo-js) | 0 | 1/0/1 | 0 | 0 | 0 | |
Dmitry Vasilev (scythargon) | 0 | 1/0/1 | 0 | 0 | 0 | |
Kesavan (Nallandavar) | 0 | 1/0/1 | 0 | 0 | 0 | |
Robert Paulson (PlanetMacro) | 0 | 0/0/1 | 0 | 0 | 0 | |
None (prathyushnallamothu) | 0 | 0/0/1 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Nalaso | 1 | 2/2/0 | 2 | 46 | 1334 | |
ayush rajgor | 1 | 1/1/0 | 15 | 37 | 893 | |
Ahmet0691 | 1 | 0/1/0 | 1 | 2 | 19 | |
Wickes Wong | 1 | 1/1/0 | 1 | 4 | 17 | |
Younes DARRASSI | 1 | 2/1/0 | 1 | 1 | 12 | |
FroDK | 1 | 1/1/0 | 1 | 1 | 3 | |
Henri Jamet (hjamet) | 0 | 1/0/0 | 0 | 0 | 0 | |
Ihab P (ITP2023) | 0 | 1/0/0 | 0 | 0 | 0 | |
Dobromir Popov (d-popov) | 0 | 0/0/1 | 0 | 0 | 0 | |
Cheifsam (hassamc) | 0 | 1/0/0 | 0 | 0 | 0 | |
Ikko Eltociear Ashimine (eltociear) | 0 | 1/0/0 | 0 | 0 | 0 | |
Suvodeep Chowdhury (ImSuvodeep) | 0 | 0/0/2 | 0 | 0 | 0 | |
Rawknee.69 (Rawknee-69) | 0 | 4/0/3 | 0 | 0 | 0 | |
ViscousGuy (ViscousGuy) | 0 | 0/0/1 | 0 | 0 | 0 | |
AMJID DADER (amjiddader) | 0 | 1/0/0 | 0 | 0 | 0 | |
Jerome Sonnet (letzdoo) (letzdoo-js) | 0 | 1/0/1 | 0 | 0 | 0 | |
Dmitry Vasilev (scythargon) | 0 | 1/0/1 | 0 | 0 | 0 | |
Kesavan (Nallandavar) | 0 | 1/0/1 | 0 | 0 | 0 | |
Robert Paulson (PlanetMacro) | 0 | 0/0/1 | 0 | 0 | 0 | |
None (prathyushnallamothu) | 0 | 0/0/1 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
Thread-30
causes Devika to stop functioning.The closed issues provide context on recent trends and fixes. Notably, issues related to Docker (#492), API key input (#498), and CORS blocking requests (#423) have been resolved. These resolutions indicate active maintenance and responsiveness to community feedback. However, they do not directly impact the current state of open issues.
The open issues highlight several areas requiring attention:
The project maintainers should prioritize resolving these issues, particularly those affecting core functionalities like search engine integration and server connectivity, as they directly impact user experience. Additionally, implementing security features like hiding API keys and enhancing agent reliability will contribute positively to user trust and overall project robustness.
PR #491: This PR seems to have a significant amount of discussion and edits, indicating a complex change. There are concerns about the necessity of certain features, the understanding of how offline models work, and the diversity settings. The conversation indicates that there might be some misunderstandings about the capabilities of GPT-4 and other models. It's important to resolve these issues before considering merging.
PR #485: This PR is related to updating the knowledge base using SentenceTransformer and FAISS. It appears to be an enhancement to improve search capabilities within the knowledge base.
PR #480: This PR addresses a typo in the Netlify deployment script. Although it seems like a simple fix, it's notable that this PR was mentioned in a comment on another PR (#483), indicating that it might have been closed without being merged due to an oversight.
PR #475: The changes in this PR aim to improve error handling and JSON parsing in devika.py
and runner.py
. These improvements could be significant for the robustness of the software.
PR #469: This PR introduces regex parsing for LLM responses and a new parent class for agents, which could significantly simplify code and improve response handling from LLMs.
PR #508: Closed without being merged. It was a new addition with GitHub Actions configuration, but it seems like it was closed immediately after creation, possibly due to being created by mistake or not being ready for review.
PR #490 & PR #483: Both were closed without being merged. They appear to be duplicates or related to PR #491, which is still open and under discussion.
PR #457: Merged recently. It addressed a Python version requirement issue, which is important for ensuring compatibility with the codebase.
PR #452: Merged recently. It addressed security concerns by removing API keys from logs and fixed an issue with link handling in the UI.
PR #442: Merged recently. It added support for custom OpenAI API endpoints, which can be significant for users who need to configure custom endpoints for their OpenAI services.
There are several PRs that address minor fixes or enhancements, such as documentation updates (e.g., PR #505) and typo corrections (e.g., PR #465).
Some PRs seem to have been closed without being merged due to duplication or being superseded by other PRs (e.g., PR #437).
There is active discussion and review on many PRs, indicating a healthy collaborative environment among contributors.
For PRs with extensive discussions like PR #491, it's crucial to ensure that all concerns are addressed before merging. A thorough review by maintainers or domain experts is recommended.
For simple fixes that have been closed without merging (like PR #480), verify if the changes were indeed incorporated into the codebase through other means or if they need to be reopened and reviewed again.
Closed PRs that have been merged should be checked for any follow-up actions required post-merge, such as updating documentation or notifying users about new features or fixes.
Open PRs with enhancements like PR #469 should be prioritized for review as they can bring significant improvements to the project's functionality.
Monitor for duplicate or redundant PRs and encourage contributors to check existing PRs before opening new ones to avoid confusion and streamline the review process.
Ensure that all merged changes are properly documented and communicated to users, especially when they involve changes in requirements or introduce new features.
Devika is an Agentic AI Software Engineer designed to understand high-level human instructions, decompose them into actionable steps, conduct relevant research, and write code to fulfill specified objectives. It is an open-source project maintained by the organization stitionai and serves as a competitive alternative to Devin by Cognition AI. The project is in its early experimental stages with many features yet to be implemented or currently broken. Devika supports various large language models and offers advanced AI planning, reasoning capabilities, web browsing for information gathering, and code writing in multiple languages. It is licensed under the MIT License and has garnered significant interest with 16,593 stars on GitHub.
devika.py
, src/agents/*.py
, src/llm/llm.py
, src/state.py
, ui/*
, among others.ui/src/lib/components/*.svelte
), ui/package.json
, ui/bun.lockb
, among others.ui/src/lib/components/MessageContainer.svelte
.src/config.py
.src/agents/feature/feature.py
and src/agents/patcher/patcher.py
).README.md
, sample.config.toml
, src/config.py
, and src/llm/openai_client.py
.The development team's recent activities show a concerted effort towards enhancing Devika's stability, user interface, and configurability. There is a strong emphasis on improving error handling mechanisms and refining the user experience through UI updates. The team is also focused on expanding support for various language models and ensuring compatibility across different versions of dependencies. Collaboration among team members is evident from co-authored commits, suggesting a cooperative development environment.
Note: The above analysis is based on the provided repository information up to April 2024. It does not include any activities that may have occurred outside of the GitHub repository or after the knowledge cutoff date.
src/agents/runner/runner.py
Runner
is well-structured with methods for rendering templates, validating responses, running commands, and handling retries. It uses Jinja2 for templating which is a good choice for dynamic content generation.validate_response
and validate_rerunner_response
could be refactored to reduce duplication. The use of print statements for debugging should be replaced with a logging framework for better production-level diagnostics.src/config.py
_instance
variable, which is a classic approach in configuration management.ui/src/lib/components/ControlPanel.svelte
src/llm/llm.py
LLM
encapsulates model interactions and token management effectively, providing a centralized point for model management.inference
is quite long and could benefit from being split into smaller sub-methods.src/browser/search.py
The codebase demonstrates a good understanding of object-oriented principles and software design patterns. However, there are areas where error handling and logging could be improved for better maintainability and reliability. Additionally, some parts of the codebase show signs of potential refactorings to improve modularity and readability.