Astonish is a low-code AI companion that empowers you to create and run sophisticated agentic workflows with unprecedented ease. By leveraging a flexible, YAML-based framework, Astonish allows you to configure and execute AI-powered tasks without extensive coding knowledge, democratizing the world of AI agent creation.
Imagine having the ability to seamlessly integrate your favorite command-line tools—be it git, jq, cat, or any other—into an AI-driven workflow. Astonish turns this vision into reality, enabling you to extract information, process data, and perform actions with the combined power of AI and your trusted tools.
Here's how Astonish revolutionizes your workflow:
-
AI-Powered Flow Creation: Simply run
astonish agents run agents_creator
and describe your problem. Astonish's AI will craft a custom flow tailored to your needs, leveraging your existing tools. -
Flexible Refinement: Fine-tune your AI-generated flow by editing the YAML file, optimizing prompts, and adjusting the workflow to perfectly fit your requirements.
-
Endless Expandability: Need additional capabilities like web searches, webpage content extraction, or PDF reading? Easily connect to thousands of available MCP (Model Context Protocol) servers to extend your toolset on demand.
-
Personalized AI Assistance: Astonish adapts to your unique workflow, combining the familiarity of your go-to tools with the innovation of AI, creating a powerhouse of productivity.
The possibilities are truly endless. Whether you're a developer streamlining your coding process, a data analyst automating complex data operations, or a content creator enhancing your research workflow, Astonish empowers you to achieve more with less effort.
Embrace the future of workflow automation with Astonish, where your tools meet AI, and your productivity knows no bounds.
- Low-Code Magic: Create and run customizable agentic workflows using an intuitive, YAML-based approach
- AI-Powered Agent Creator: Design new agents effortlessly with our intelligent agent creation assistant
- Flexible AI Provider Management: Configure and manage multiple AI providers seamlessly
- Extensible Capabilities: Leverage the Model Context Protocol (MCP) to expand your toolkit
- Rich Tool Integration: Incorporate various tools within your workflows, including embedded and custom options
Provider | Status | Free API Plan |
---|---|---|
Anthropic | Supported | No |
Google AI | Supported | Yes |
Groq | Supported | Yes |
LM Studio | Supported | Local |
Ollama | Supported | Local |
OpenAI | Supported | No |
Openrouter | Supported | Yes |
SAP AI Core | Supported | Yes (via SAP BTP Free Tier) |
AWS Bedrock | Coming soon | No |
X AI | Coming soon | No |
At the heart of Astonish lies the Agents Creator. This intelligent assistant guides you through the process of designing and implementing new AI agents:
- Interactive Design: Engage in a dynamic conversation to capture the essence of your desired agent
- Automatic Flow Creation: Watch as the Agents Creator designs an optimal agentic flow based on your requirements
- YAML Generation: Receive a complete, ready-to-use YAML configuration for your new agent
- Instant Deployment: Your new agent is immediately available for use within the Astonish ecosystem
With the Agents Creator, you're not just using AI – you're using AI that creates AI, unlocking a new realm of possibilities.
Astonish champions a low-code philosophy, enabling users of all technical backgrounds to create complex AI agents using simple YAML configuration files and integrating MCP servers. This approach breaks down barriers, making advanced AI agent creation accessible to developers and non-developers alike.
The Agents Creator feature represents a paradigm shift in how AI agents are designed and implemented. By leveraging AI to create AI, Astonish offers an unprecedented level of assistance and automation in the agent creation process.
Astonish leverages the Model Context Protocol (MCP) to extend its capabilities. MCP allows for seamless integration of additional tools and resources, enhancing the power and flexibility of your AI agents.
Astonish comes with several tools embedded out-of-the-box:
read_file
: Read the contents of fileswrite_file
: Write or modify file contentsshell_command
: Execute shell commands
These tools provide a solid foundation for creating versatile agents capable of interacting with the file system and executing system commands.
You can install Astonish using pip or from source code.
To install Astonish using pip, run the following command:
pip install astonish
To install Astonish from source code, follow these steps:
-
Clone the repository:
git clone https://github.com/schardosin/astonish.git cd astonish
-
Build and install the package:
make install
This command will build the package as a wheel and install it.
-
For development purposes, you can install in editable mode:
make installdev
To configure Astonish providers, use the setup
command:
astonish setup
One of the key features of Astonish is the ability to create new agents using an AI-powered agent creator:
astonish agents run agents_creator
This command starts an interactive session where the AI will guide you through the process of creating a new agent using YAML configuration. Once the process is complete, your new agent will be ready for use.
To run an agentic workflow:
astonish agents run <task_name>
This works for both pre-defined agents and agents you've created using the agents_creator
.
You can also pass parameters to agents to automate workflows, where the parameter name corresponds to the name of a node of type 'input'."
# Basic parameter passing
astonish agents run simple_question_answer_loop -p get_question="Who was Steve Jobs" -p continue_loop=no
# Using file content
astonish agents run simple_question_answer_loop -p get_question="$(<question.txt)" -p continue_loop=no
# Using environment variables
astonish agents run simple_question_answer_loop -p get_question="$QUESTION" -p continue_loop=no
To view the flow of an agentic workflow:
astonish agents flow <task_name>
To list all available agents:
astonish agents list
To edit a specific agent:
astonish agents edit <agent_name>
To list available tools (including MCP-enabled tools):
astonish tools list
To edit the MCP (Model Context Protocol) configuration:
astonish tools edit
Astonish uses configuration files stored in the user's config directory:
config.ini
: General configurationmcp_config.json
: MCP server configuration
These files are automatically created and managed by the application.
Here's an example of an agent configuration in YAML that demonstrates tool usage:
description: An agent that reads a file, extracts key information, and summarizes it for the user
nodes:
- name: get_file_path
type: input
prompt: |
Please enter the path to the file you want to analyze:
output_model:
file_path: str
- name: read_file_content
type: llm
system: |
You are a file reading assistant.
prompt: |
Read the contents of the file at path: {file_path}
output_model:
file_content: str
tools: true
tools_selection:
- read_file
- name: extract_key_info
type: llm
system: |
You are an AI assistant specialized in extracting and summarizing key information from text.
prompt: |
Analyze the following file content and extract the core information:
{file_content}
Provide a concise summary of the key points.
output_model:
7282
summary: str
- name: present_summary
type: llm
system: |
You are a helpful AI assistant presenting information to users.
prompt: |
Present the following summary to the user in a clear and engaging manner:
{summary}
output_model:
final_response: str
user_message:
- final_response
flow:
- from: START
to: get_file_path
- from: get_file_path
to: read_file_content
- from: read_file_content
to: extract_key_info
- from: extract_key_info
to: present_summary
- from: present_summary
to: END
This agent demonstrates the following capabilities:
- Gets a file path from the user
- Uses the
read_file
tool to read the content of the specified file - Extracts and summarizes key information from the file content
- Presents the summarized information to the user
The flow defines the sequence of operations, starting with user input for the file path, followed by file reading, information extraction, summary presentation, and ending the process.
astonish/
: Main package directorymain.py
: Entry point of the applicationglobals.py
: Global variables and configurationcore/
: Core functionalityagent_runner.py
: Executes agentic workflowsgraph_builder.py
: Builds and runs workflow graphs
factory/
: Factory classes for creating providersproviders/
: AI provider implementationstools/
: Tool implementations (including embedded and MCP-enabled tools)agents/
: Predefined agents configurations (YAML files)
Contributions to Astonish are welcome! Please follow these steps to contribute:
- Fork the repository
- Create a new branch for your feature or bug fix
- Make your changes and commit them with a clear commit message
- Push your changes to your fork
- Create a pull request with a description of your changes
Please ensure your code adheres to the project's coding standards and include tests for new features.
This project is licensed under the MIT License - see the LICENSE file for details.