A Python package to build AI agents on NEAR Protocol.
Project description
NEAR AI Agent (WIP)
A Python package and command-line interface (CLI) for building and managing AI agents on NEAR Protocol. This package helps developers quickly scaffold, customize, and run their own agents using the NEAR AI Environment API.
Features
- Full integration with NEAR AI's Environment API for context and state management.
- CLI for creating and managing agents.
- Modular design for extending with custom tasks and logic.
- Configurable via
config.json.
Installation
Install the package from PyPI:
pip install near_ai_agent
Alternatively, install locally for development:
pip install -e .
Usage
Using as a Python Module
Create and Run a Custom Agent
You can subclass the NearAIAgent class to define your own tasks and behavior.
from near_ai_agent.agent import NearAIAgent
from near_ai_agent.tasks import calculate_sum
class CustomAgent(NearAIAgent):
def handle_task(self, task, *args):
if task == "calculate_sum":
return self.environment.output(calculate_sum(*args))
return super().handle_task(task, *args)
if __name__ == "__main__":
agent = CustomAgent()
agent.run()
Run a Preconfigured Agent
Use the default NearAIAgent with a config.json file:
from near_ai_agent.agent import NearAIAgent
agent = NearAIAgent(config_path="./config.json")
agent.run()
Example: Task Execution
from near_ai_agent.agent import NearAIAgent
agent = NearAIAgent(config_path="./config.json")
# Handle a default task
response = agent.handle_task("greet")
print(response)
# Handle a custom task
response = agent.handle_task("calculate_sum", "10", "20")
print(response)
Using the Command-Line Interface (CLI)
Create a New Agent
To scaffold a new agent with a default configuration:
near-ai-agent create my_agent
This will create a directory ./my_agent/ with the following structure:
my_agent/
├── config.json
└── my_agent_agent.py
Run an Existing Agent
To run an agent with a specific configuration file:
near-ai-agent run --config ./my_agent/config.json
Available Commands
near-ai-agent --help
Output:
usage: near-ai-agent [-h] {create,run} ...
CLI for managing NEAR AI agents.
positional arguments:
{create,run} Commands
create Create a new agent
run Run an existing agent
optional arguments:
-h, --help Show this help message and exit
Configuration
The agent behavior is controlled by the config.json file. Below is an example configuration:
{
"agent_name": "MyCustomAgent",
"version": "1.0.0",
"default_tasks": {
"greet": "Hello! I'm MyCustomAgent, here to assist you.",
"help": "I can greet and help you with basic tasks."
}
}
You can define custom tasks in the default_tasks section and extend the agent's functionality in Python.
Extending the Package
Add a Custom Task
-
Define a new task in
tasks.py:def calculate_sum(*numbers): return f"The sum is: {sum(map(int, numbers))}"
-
Update
handle_taskin your custom agent:class CustomAgent(NearAIAgent): def handle_task(self, task, *args): if task == "calculate_sum": return self.environment.output(calculate_sum(*args)) return super().handle_task(task, *args)
-
Test the task:
near-ai-agent run --config ./my_agent/config.json
Integrate with Real APIs
Replace the placeholders in tasks.py with calls to real APIs or databases:
import requests
def provide_weather(location):
api_key = "your_api_key"
response = requests.get(f"https://api.weatherapi.com/v1/current.json?key={api_key}&q={location}")
data = response.json()
return f"The weather in {location} is {data['current']['condition']['text']} with a temperature of {data['current']['temp_c']}°C."
Testing
Run tests using unittest:
python -m unittest discover tests
Example Workflow
-
Install the package:
pip install near_ai_agent
-
Create a new agent:
near-ai-agent create my_agent
-
Add custom tasks or modify
config.json. -
Run the agent:
near-ai-agent run --config ./my_agent/config.json
-
Extend the agent as needed by editing the scaffolded files.
License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file near_ai_agent-1.0.0a1.tar.gz.
File metadata
- Download URL: near_ai_agent-1.0.0a1.tar.gz
- Upload date:
- Size: 5.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b3f0f710d3aa1ca2eb328a83d042ee20d7706362a14c8f47c6c07e357143e76
|
|
| MD5 |
8c3153e843148214771ec28a06cb00ee
|
|
| BLAKE2b-256 |
a4c871add8440757573f08d89803adcd47a4f19e93021836a7b1cc12e84dcc51
|
File details
Details for the file near_ai_agent-1.0.0a1-py3-none-any.whl.
File metadata
- Download URL: near_ai_agent-1.0.0a1-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a22f9160567eacdb85d029821a02f30f4d420892b76f88b84f6c9ceff5be7bb0
|
|
| MD5 |
710d8d0c95ec19e5fdc361e38cae1c21
|
|
| BLAKE2b-256 |
590f083e78bd5e33c6b2536e189c7811740ebf0316ec37d5125077948a608b3f
|