Releases: emrgnt-cmplxty/automata
v0.0.5
Here's the summary of the release notes written with appropriate Markdown:
Release Notes Summary for 'automata' v0.0.5
-
Code Cleanups: Attempts were made to clean up the config by @emrgnt-cmplxty.
-
Test Updates: Additional tests for the CLI were introduced by @NolanTrem, and more tests were added by @emrgnt-cmplxty.
-
Configuration Updates: Pydantic was rolled back, configuration was refactored, and a CLI configure command was added.
-
Feature Additions: New features include token meters, a py_reader, read/write tools, an onboard evaluation system, and extensions to evaluations by @emrgnt-cmplxty.
-
Code Fixes: Fixes include a small change for OPENAI_API_KEY in setup, a logging reconfigure, and an adjustment for the nightly eval to use poetry.
-
Code Update: The Click package was updated to 8.1.6 and mypy was allowed to check CLI types by @NolanTrem.
-
Evaluation Updates: Evaluations were made more modular and extensive, and a database was integrated into evaluations.
-
Documentation: Instructions for installing poetry were added to the readme, and tips for Windows users were included by @NolanTrem.
-
Database Changes: Several updates related to database coverage, including a conversation db test and a task w/ db test.
-
Node Management: @NolanTrem added a new node management feature.
-
New Contributor: A warm welcome to @voynow who made their first contribution to the project.
For a full list of changes, refer to the complete changelog on the GitHub repository.
New Contributors
Full Changelog: v0.0.4...v0.0.5
v0.0.4
Major Enhancements in Automata v0.0.4
Improved Context Handling, Comprehensive Test Refactor, and Documentation Updates
In this version of Automata, we've introduced a multitude of changes that focus on improving the overall user experience and performance of our codebase:
- An impressive refactor and improvement of context handling which now provides a more robust context retrieval pipeline.
- Comprehensive test refactoring and enhancements by NolanTrem, including testing for bounding boxes and tests for singletons, which strengthens the reliability of our system.
- Significant updates to our documentation along with attempts to streamline our document generation process. We've also improved our 'contributing.md' file to offer a better contribution experience.
- Several method conversions to properties for better encapsulation and refactoring of context processing.
- Various bug fixes and patches, including issues with isort-black and regression fixes.
- Dependency updates brought to you by our friendly bot, dependabot, ensuring our code remains up-to-date and secure.
- We've also welcomed new contributors, @gravitronics and @sourcery-ai, to the team!
Full Changelog: v0.0.3...v0.0.4
v0.0.3
Overview
The latest release of Automata brings some major changes and improvements that aim to enhance efficiency and functionality. The introduction of ChromaDB is a significant highlight of this release, enhancing the project's database capabilities. Additionally, by separating data into a different GitHub repository, the project's organization has become more streamlined and manageable. The removal of RedBaron and unused tools such as PyWriter and PyReader has been completed to further reduce clutter and improve the project's efficiency. Lastly, the project was significantly refactored to continue work on iteratively improving organization and layout.
Another key aspect of this release is the wonderful contributions made by new developers, leading to an increase in test coverage and the overall robustness of the system. This release also saw the adoption of poetry and Docker, both tools that contribute to automating and streamlining development processes. There have been numerous pull requests that contributed to these updates, including changes to the search demo, refreshing search, and bumping of dependencies like pandas, numpy, matplotlib, pygithub, and pydantic. One extensive improvement made by contributor @bhavitsharma was the initial work on replacing RedBaron with Python's ast module inside the module loader.
Lastly, @NolanTrem introduced the usage of poetry and Docker in the project, signifying a positive step towards a more structured and containerized development environment. The project also saw the elimination of old examples and renaming of notebooks, signifying a continued focus on keeping the project relevant and easily understandable.
New Contributors
- @bhavitsharma made their first contribution in #129
- @NolanTrem made their first contribution in #166
What's Changed
- Add search demo by @emrgnt-cmplxty in #125
- Feature/slim automata dir by @emrgnt-cmplxty in #132
- Replace redbaron with python's ast module inside the module loader. by @bhavitsharma in #133
- Feature/slim automata and rebase by @emrgnt-cmplxty in #139
- change module loader treatment in regr tests by @emrgnt-cmplxty in #140
- refresh embeddings by @emrgnt-cmplxty in #142
- Add the usage of python's AST module inside the py_reader module by @bhavitsharma in #143
- Feature/add chrome rebased by @emrgnt-cmplxty in #144
- Feature/add chroma req by @emrgnt-cmplxty in #145
- Finish chroma onboard by @emrgnt-cmplxty in #148
- Removal of the RedBaron package from experimental/search/symbol_search module by @bhavitsharma in #146
- Feature/merged default chroma by @emrgnt-cmplxty in #150
- Feature/remove redbaron rebased by @emrgnt-cmplxty in #156
- Update Embedding Workflow by @emrgnt-cmplxty in #160
- Migrate Python Project Dependency Management to Poetry and Setup Docker by @NolanTrem in #166
- small refactor by @emrgnt-cmplxty in #173
- Change Poetry install from pip to curl by @NolanTrem in #174
- Feature/poetry tweaks rebased by @emrgnt-cmplxty in #175
- add symbol utils tests by @emrgnt-cmplxty in #183
- comprehensive context retriever tests by @emrgnt-cmplxty in #184
Full Changelog: v0.0.2...v0.0.3
Second Release - v0.0.2 Pre-release
At a high level, the recent contributions are a large refactor to help downstream readability and further work on the automatic document generation pipeline.
This involved adding more abstractions around LLM consumption and agent initialization. This also involved reducing the coupling across modules.
I recommend to everyone following along to take a new look at the docs.
Up next, we will be working on generalizing the work we have done thus far on the indexing and graphing so that it can readily work on all major open source repositories.
What's Changed
- Create CONTRIBUTING.md by @emrgnt-cmplxty in #94
- Improve agent workflow to reflect new demo logic. by @emrgnt-cmplxty in #95
- Feature/notebook refresh by @emrgnt-cmplxty in #97
- Feature/refactor json vector db rebased by @emrgnt-cmplxty in #99
- Refresh the docs by @emrgnt-cmplxty in #100
- Feature/cleanup readme setup by @emrgnt-cmplxty in #101
- Update README.md by @emrgnt-cmplxty in #102
- Update README.md by @emrgnt-cmplxty in #103
- Feature/refactor for added clarity by @emrgnt-cmplxty in #104
- refactor docs by @emrgnt-cmplxty in #106
- Update README.md by @emrgnt-cmplxty in #107
- last cleanups by @emrgnt-cmplxty in #108
- refactor to make folders less dense by @emrgnt-cmplxty in #109
- refactor to simplify symbol similarity by @emrgnt-cmplxty in #113
- Feature/remove extra config init by @emrgnt-cmplxty in #117
- Update docs by @emrgnt-cmplxty in #118
- Add setup.sh to .gitignore (#114) by @Exarchias in #116
- Improve doc pipeline to add persistence by @emrgnt-cmplxty in #119
- Feature/add faq and more by @emrgnt-cmplxty in #120
- Feature/fix read the docs by @emrgnt-cmplxty in #121
- Update pytest requirement from ^6.0 to ^7.4 by @dependabot in #63
- Bump numpy from 1.23.5 to 1.25.0 by @dependabot in #64
New Contributors
- @Exarchias made their first contribution in #116
- @dependabot made their first contribution in #63
Full Changelog: v0.0.1...v0.0.2
First Release - v0.0.1
Automata's objective is to evolve into a fully autonomous, self-programming Artificial Intelligence system.
This project is inspired by the theory that code is essentially a form of memory, and when furnished with the right tools, AI can evolve real-time capabilities which can potentially lead to the creation of AGI. The word automata comes from the Greek word αὐτόματος, denoting "self-acting, self-willed, self-moving,", and Automata theory is the study of abstract machines and automata, as well as the computational problems that can be solved using them. More information follows below
# Run a single agent w/ trivial instruction
automata run-agent --instructions="Return true" --model=gpt-3.5-turbo-0613
# Run a single agent w/ a non-trivial instruction
automata run-agent --instructions="Explain what AutomataAgent is and how it works, include an example to initialize an instance of AutomataAgent." --model=gpt-3.5-turbo-16k
Sometimes the best way to understand a complicated system is to start by understanding a basic example. The following example illustrates how to run your own Automata agent. The agent will be initialized with a trivial instruction, and will then attempt to write code to fulfill the instruction. The agent will then return the result of its attempt.
import logging
from typing import Any, Set
from automata.config.base import AgentConfigName
from automata.config.openai_agent import AutomataOpenAIAgentConfigBuilder
from automata.core.agent.agents import AutomataOpenAIAgent
from automata.core.agent.tool.tool_utils import AgentToolFactory, DependencyFactory
from automata.core.base.agent import AgentToolProviders
from automata.core.base.github_manager import GitHubManager
from automata.core.coding.py.module_loader import py_module_loader
logger = logging.getLogger(__name__)
# Initialize the module loader
py_module_loader.initialize()
# Construct the set of all dependencies that will be used to build the tools
tool_list = ["context_oracle"]
dependencies: Set[Any] = set()
tool_dependencies = {}
for tool in tool_list:
for dependency_name, _ in AgentToolFactory.TOOLKIT_TYPE_TO_ARGS[AgentToolProviders(tool)]:
if dependency_name not in dependencies:
dependencies.add(dependency_name)
logger.info(f" - Building Dependency {dependency_name}...")
tool_dependencies[dependency_name] = DependencyFactory().get(dependency_name)
# Build the tools
tools = AgentToolFactory.build_tools(tool_list, **tool_dependencies)
# Build the agent config
config_name = AgentConfigName("automata_main")
agent_config = (
AutomataOpenAIAgentConfigBuilder.from_name(config_name)
.with_tools(tools)
.with_model("gpt-4")
.build()
)
# Initialize the agent
instructions = "Explain how embeddings are used by the codebase"
agent = AutomataOpenAIAgent(instructions, config=agent_config)
# Run the agent
result = agent.run()