valory-xyz / agent-academy-2 Goto Github PK
View Code? Open in Web Editor NEWValory's Agent Academy 2 - participant repo
License: Apache License 2.0
Valory's Agent Academy 2 - participant repo
License: Apache License 2.0
https://github.com/valory-xyz/agent-academy-2/pull/212/files#diff-323464106c669ea61feca470f03a8605c2fdd7ee1a25de4fd83c714eb07292ee are all minted but here in custom form
Port tests into packages, remove tests folder and remove third party submodules
The idea would be to catch errors, such as those from failed contracts calls (e.g. incorrect performative or other), and keep a record of them throughout the period. When too many occur, we transition from the PathSelectionRound
via UNKNOWN_HEALTH_ISSUE
into a degenerate state.
We need ci for these tests in windows, Too many issues reported to me from windows users
I think this is incompatible with normal framework loading mechanism as it's not in a build
subfolder. Please fix so we can use these in the framework as well / stay consistent.
Originally posted by @DavidMinarsch in #128 (comment)
Ledger and contract api calls can result in an incorrect (e.g. error) performative. We should return specific failure response, and deal with this event separately. We might also raise a custom IncorrectPerformativeError
which can be intercepted at the level of the round, where all errors may transition to PathSelectionRound
.
On Windows Powershell, after installing make
on chocolatey, I failed to make hashes for the package.
I successfully fingerprinted the component, but running make hashes
does not change the hashes.csv
file.
PS D:\GitHub\agent-academy-2> pipenv shell
Loading .env environment variables...
Launching subshell in virtual environment...
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Try the new cross-platform PowerShell https://aka.ms/pscore6
PS D:\GitHub\agent-academy-2> cd .\packages\gabrielfu\
PS D:\GitHub\agent-academy-2\packages\gabrielfu> aea fingerprint contract gabrielfu/keep3r_job:0.1.0
Fingerprinting contract components of 'gabrielfu/keep3r_job:0.1.0' ...
PS D:\GitHub\agent-academy-2\packages\gabrielfu> cd ..\..
PS D:\GitHub\agent-academy-2> make hashes
'grep' is not recognized as an internal or external command,
operable program or batch file.
python scripts/generate_ipfs_hashes.py
'grep' is not recognized as an internal or external command,
operable program or batch file.
process_begin: CreateProcess(NULL, rm -fr build/, ...) failed.
make (e=2): The system cannot find the file specified.
make[1]: *** [Makefile:12: clean-build] Error 2
Waiting for 15.0 seconds the IPFS daemon to be up.
Processing package keep3r_job of type contract
Traceback (most recent call last):
File "scripts/generate_ipfs_hashes.py", line 427, in update_hashes
update_fingerprint(configuration_obj, client)
File "scripts/generate_ipfs_hashes.py", line 331, in update_fingerprint
fingerprint = compute_fingerprint(
File "scripts/generate_ipfs_hashes.py", line 312, in compute_fingerprint
assert_hash_consistency(fingerprint, package_path, client)
File "scripts/generate_ipfs_hashes.py", line 264, in assert_hash_consistency
assert (
AssertionError: WARNING, hashes don't match for: packages\gabrielfu\contracts\keep3r_job\contract.py
make: *** [Makefile:55: hashes] Error 1
This is the contract bytecode responsible for the multicall. We cannot have it in a different file, it's a limitation of the dynamic contract loading.
Originally posted by @0xArdi in #143 (comment)
this round should not exist as part of the Keep3rJobAbciApp
as the logic involved should reside elsewhere. One can look at the OracleABCIApp
to see how this has been dealt with there.
see also: #56 (comment)
The content of this payload is job_list: List[str]
and it's property casts to string job_list(self) -> str
. This was for done out of convenience since lists are not serializable at the moment. However, the __init__
and property return should be of the same type
agent-academy-2/packages/keep3r_co/skills/keep3r_job/payloads.py
Lines 174 to 193 in 89ba928
This can easily lead to issues, such as here:
selection behaviour treating it as List[str]
still
agent-academy-2/packages/keep3r_co/skills/keep3r_job/behaviours.py
Lines 425 to 452 in 7760ddc
IsWorkableRound
updating the shared state changes what was originally a List[str]
into a str
when not workable
agent-academy-2/packages/keep3r_co/skills/keep3r_job/rounds.py
Lines 262 to 266 in 7760ddc
Note that - in case of WORKABLE
and NOT_PROFITABLE
the job should also be removed from the list. It is probably smarter to:
current_job
to an empty string or None
in GetJobsRound
(and set job_list
as we do now)JobSelection
, which should lead to a situation where the current_job
is never among the job_list
P.S.
leaving a reference to this comment to be addressed as well: #106 (comment)
@Adamantios suggests that the DegenerateRound
that we transition to on UNKNOWN_HEALTH_ISSUE
should be renamed.
As this UNKNOWN_HEALTH_ISSUE
is not of immediate concern, I've opened this ticket on it.
@philippb90 We need to write a test that demonstrates that failure,
We need to iterate slowely, get the funamentals absolutely rock solid then build it up from there.
Originally posted by @8ball030 in #32 (comment)
Create test for message failure case
@phillippb90
the waiting round logic, required because of the bond_time, can be subsumed by the path selection round, where this currently already being checked, or preferably; moved to the activation round entirely (and this logic removed from path selection).
We may also remove the AwaitTopUpRound
and in case of insufficient funds redirect to PathSelection
(self) instead, or a degenerate state, which we can direct it to PathSelection
in the during ABCIApp chaining; then someone else might direct this elsewhere in another setup (e.g. refueling).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.