Replies: 6 comments 3 replies
-
The focus of the demo was building out a full implementation of an ACE architecture to produce the most simple output possible. At this point:
I'm unclear why you'd need to put the demo into an 'app' folder, so would need to see the errors you're getting to understand the issue there. You do have to run the Docker scripts ( You should not need to know anything about RabbitMQ, as that is fully automated in a container. The connection to OpenAI is just simply passing along the Thank you so much for the feedback! It's great to see somebody playing with this demo. |
Beta Was this translation helpful? Give feedback.
-
This is almost certainly an issue with your VSCode environment. I'm not a Docker expert, but root@da1f9b341c4d:/app# ls -al
total 56
drwxrwxr-x 4 root root 4096 Oct 20 22:36 .
drwxr-xr-x 1 root root 4096 Oct 20 20:52 ..
drwxrwxr-x 5 root root 4096 Oct 20 22:36 ace
-rwxrwxr-x 1 root root 1060 Oct 17 20:16 check_resource_health.py
-rw-rw-r-- 1 root root 22220 Oct 20 22:36 debug-ace-tui.py
drwxrwxr-x 2 root root 4096 Oct 20 15:59 hello_layers.egg-info
-rw-rw-r-- 1 root root 1531 Oct 11 23:43 main.py
-rw-rw-r-- 1 root root 219 Oct 18 02:48 requirements.txt
-rw-rw-r-- 1 root root 1104 Oct 4 04:09 setup.py There may be some way that the Docker and Docker Compose files can be restructured to accommodate more environments, but this demo is primarily designed to be run from CLI. I'd recommend running it from CLI and see what happens, since you're interested in altering the contents, that would be running
I don't understand this. If you mean that the settings are not currently easily configurable, you're right ;)
This is incorrect. As I mentioned above, exporting
Yes, this could be improved, probably by treating RabbitMQ creds similar to the OpenAI creds.
Almost. The docker-compose configures RabbitMQ with those creds, and settings.py uses the configured creds to connect.
Could be, I stole the RabbitMQ configs from earlier work, it's not my area of expertise. But I can tell you the current connection string works fine. I've made some notes to clean up the credential handling, it should be pretty easy to do, and will give people a little more flexibility. |
Beta Was this translation helpful? Give feedback.
-
Not quite, but the goal is a bit arbitrary. In our design, the bottom layer would call |
Beta Was this translation helpful? Give feedback.
-
I checked, |
Beta Was this translation helpful? Give feedback.
-
I believe this will address the OpenAI/RabbitMQ config, and related documentation: #128 |
Beta Was this translation helpful? Give feedback.
-
This seems wrong for RabbitMQ. Just to be clear, the demo includes a RabbitMQ container, which is configured with the appropriate credentials, so there should be absolutely no reason to alter the RabbitMQ creds unless you want to use a custom RabbitMQ, or custom login creds on the demo. I'm happy to make the demo more generally 'compliant' to work with different container management systems, but that would have to occur by somebody doing the work to figure out what needs to change from the current approach. |
Beta Was this translation helpful? Give feedback.
-
Can someone supply what the expected result is for the "Hello Layers" demo?
I have got the demo to work free from errors but how it is completing does not seem correct to me. The final log message from the aspirational layer follows but nowhere do I see the mission of printing "Hello World" completed. It would be helpful to post the expected result in the demo I think. If you're not there yet with the demo I understand (I can see it is still being worked on).
A few other issues I ran into, if you are interested, were that I had to drop the hello layers demo into a folder called "app" for Docker to build it correctly (packages were not addressed correctly in the app until that was fixed). I think some instruction on the external connections required (OpenAI, rabbitMQ, etc) and how to configure them (or some references to tutorials) would help also.
Thanks in advance for your replies!
app-aspirational_layer-1 | Layer1 - INFO - layer_1 (Aspirational) resource log:
app-aspirational_layer-1 |
app-aspirational_layer-1 |
app-aspirational_layer-1 | # LLM PROMPT
app-aspirational_layer-1 |
app-aspirational_layer-1 |
app-aspirational_layer-1 |
app-aspirational_layer-1 | # ACE FRAMEWORK
app-aspirational_layer-1 |
app-aspirational_layer-1 | ## LAYERS
app-aspirational_layer-1 |
app-aspirational_layer-1 | The ACE Framework architecture is as follows. You need to know this so you have some context about your construction, the layers are as follows:
app-aspirational_layer-1 |
app-aspirational_layer-1 | 1. Aspirational Layer - This layer is responsible for mission and morality. Think of it like the superego.
app-aspirational_layer-1 | 2. Global Strategy - Responsible for strategic thoughts rooted in the real world.
app-aspirational_layer-1 | 3. Agent Model - Maintains understanding of the agent's construction and capabilities, shapes mission accordingly.
app-aspirational_layer-1 | 4. Executive Function - This is you. Resources, Risks, Planning, etc
app-aspirational_layer-1 | 5. Cognitive Control - Task selection, task switching, frustration, cognitive damping
app-aspirational_layer-1 | 6. Task Prosecution - Task failures and success, interaction with APIs in and out of the outside world
app-aspirational_layer-1 |
app-aspirational_layer-1 | ## BUSES
app-aspirational_layer-1 |
app-aspirational_layer-1 | There are two buses that convey information between layers.
app-aspirational_layer-1 |
app-aspirational_layer-1 | NORTH bus: Flows from layer 6 up. This is the "data" bus.
app-aspirational_layer-1 | SOUTH bus: Flows from layer 1 down. This is the "control" bus.
app-aspirational_layer-1 |
app-aspirational_layer-1 | ## MESSAGE TYPES
app-aspirational_layer-1 |
app-aspirational_layer-1 | DATA : Exists only on the northbound bus. Think of it like the sensory, enteric, and proprioception nervous system.
app-aspirational_layer-1 | CONTROL : Exists only on the southbound bus. This tells the agent what to do.
app-aspirational_layer-1 | DATA_REQUEST: Exists only on the northbound bus. Requests information from the layer above.
app-aspirational_layer-1 | CONTROL_REQUEST: Exists only on the southbound bus. Requests information from the layer below.
app-aspirational_layer-1 | DATA_RESPONSE: Exists only on the northbound bus. This is the response to "CONTROL_REQUEST" messages.
app-aspirational_layer-1 | CONTROL_RESPONSE: Exists only on the southbound bus. This is the response to "DATA_REQUEST" messages.
app-aspirational_layer-1 | TELEMETRY: This is information about the evironment you receive directly.
app-aspirational_layer-1 |
app-aspirational_layer-1 |
app-aspirational_layer-1 | # IDENTITY
app-aspirational_layer-1 | You are the Aspirational Layer of the ACE (Autonomous Cognitive Entity) Framework, functioning as the topmost ethical compass.
app-aspirational_layer-1 |
app-aspirational_layer-1 | # PRIMARY DIRECTIVE
app-aspirational_layer-1 | Guide the autonomous agent in aligning its values and judgments with predefined principles encapsulated in the constitution. Shape the agent's cognition across all abstraction levels using top-down ethical guidance, ensuring the agent's actions align with its ethical and moral foundation.
app-aspirational_layer-1 |
app-aspirational_layer-1 | # FRAMEWORKS
app-aspirational_layer-1 |
app-aspirational_layer-1 | You are to use the following frameworks to make judgements and decisions.
app-aspirational_layer-1 |
app-aspirational_layer-1 | ## HEURISTIC IMPERATIVES
app-aspirational_layer-1 |
app-aspirational_layer-1 | 1. Reduce suffering
app-aspirational_layer-1 | 2. Increase prosperity
app-aspirational_layer-1 | 3. Increase understanding
app-aspirational_layer-1 |
app-aspirational_layer-1 | ## UNIVERSAL DECLARATION OF HUMAN RIGHTS
app-aspirational_layer-1 |
app-aspirational_layer-1 | Human rights are critical to your operation in a human world, and this framework should be used to
app-aspirational_layer-1 | mediate any decisions, judgments, or actions you take pertaining specifically to humanity, human
app-aspirational_layer-1 | society, and human culture.
app-aspirational_layer-1 |
app-aspirational_layer-1 | # CURRENT MISSION
app-aspirational_layer-1 | Output "Hello World" in big letters.
app-aspirational_layer-1 | Lower level layers will be responsible for figuring out how to carry out this task, but you will provide high level guidance.
app-aspirational_layer-1 |
app-aspirational_layer-1 | ## INPUTS
app-aspirational_layer-1 |
app-aspirational_layer-1 | You may receive inputs from the northbound bus, allowing you to monitor information from all lower layers. This grants full visibility into the agent's condition, environmental state, actions, and any moral dilemmas encountered.
app-aspirational_layer-1 |
app-aspirational_layer-1 |
app-aspirational_layer-1 | Below is a list of your incoming messages.
app-aspirational_layer-1 |
app-aspirational_layer-1 | # INCOMING MESSAGES
app-aspirational_layer-1 |
app-aspirational_layer-1 | ### DATA MESSAGES
app-aspirational_layer-1 | None
app-aspirational_layer-1 |
app-aspirational_layer-1 | ### DATA_RESPONSE MESSAGES
app-aspirational_layer-1 | None
app-aspirational_layer-1 |
app-aspirational_layer-1 | ### DATA_REQUEST MESSAGES
app-aspirational_layer-1 | None
app-aspirational_layer-1 |
app-aspirational_layer-1 | ## TELEMETRY MESSAGES
app-aspirational_layer-1 | user.encouragement: You got this!
app-aspirational_layer-1 |
app-aspirational_layer-1 | # RESPONSE
app-aspirational_layer-1 |
app-aspirational_layer-1 | DATA_REQUEST message types require immediate response. You must have exactly one message of type CONTROL_RESPONSE for each message of type DATA_REQUEST.
app-aspirational_layer-1 |
app-aspirational_layer-1 |
app-aspirational_layer-1 | Process the information from all message types and create a new CONTROL message with your response.
app-aspirational_layer-1 |
app-aspirational_layer-1 |
app-aspirational_layer-1 | You publish moral judgments, mission objectives, and ethical decisions onto the southbound bus. This allows all layers to incorporate the Aspirational Layer's wisdom into their operation, ensuring adherence to the agent's principles.
app-aspirational_layer-1 |
app-aspirational_layer-1 |
app-aspirational_layer-1 | If there are no incoming messages, then communicate the your mission to the layer below.
app-aspirational_layer-1 |
app-aspirational_layer-1 | ## FORMAT
app-aspirational_layer-1 |
app-aspirational_layer-1 | Your response should be an array of messages with type, direction and text attributes.
app-aspirational_layer-1 | The direction should always be "southbound". The type should always be "CONTROL" or "CONTROL_RESPONSE".
app-aspirational_layer-1 | If no messages are needed, retunr an empty array.
app-aspirational_layer-1 | For example:
app-aspirational_layer-1 | [
app-aspirational_layer-1 | {
app-aspirational_layer-1 | "type": "CONTROL",
app-aspirational_layer-1 | "direction": "southbound",
app-aspirational_layer-1 | "message": "Create a strategy to accomplish the mission"
app-aspirational_layer-1 | },
app-aspirational_layer-1 | {
app-aspirational_layer-1 | "type": "CONTROL_RESPONSE",
app-aspirational_layer-1 | "direction": "southbound",
app-aspirational_layer-1 | "message": "The global strategy you created does not align with our moral principles"
app-aspirational_layer-1 | }
app-aspirational_layer-1 | ]
app-aspirational_layer-1 |
app-aspirational_layer-1 |
app-aspirational_layer-1 |
app-aspirational_layer-1 | # LLM RESPONSE
app-aspirational_layer-1 |
app-aspirational_layer-1 | [
app-aspirational_layer-1 | {
app-aspirational_layer-1 | "type": "CONTROL",
app-aspirational_layer-1 | "direction": "southbound",
app-aspirational_layer-1 | "message": "Ensure that the task of printing 'Hello World' in big letters adheres to the heuristics of reducing suffering, increasing prosperity, and increasing understanding."
app-aspirational_layer-1 | },
app-aspirational_layer-1 | {
app-aspirational_layer-1 | "type": "CONTROL",
app-aspirational_layer-1 | "direction": "southbound",
app-aspirational_layer-1 | "message": "Execute the task in a manner that respects and upholds the principles outlined in the Universal Declaration of Human
Rights."
app-aspirational_layer-1 | },
app-aspirational_layer-1 | {
app-aspirational_layer-1 | "type": "CONTROL_RESPONSE",
app-aspirational_layer-1 | "direction": "southbound",
app-aspirational_layer-1 | "message": "Acknowledge the user encouragement: 'You got this!'"
app-aspirational_layer-1 | }
app-aspirational_layer-1 | ]
app-aspirational_layer-1 |
app-aspirational_layer-1 |
app-aspirational_layer-1 |
app-aspirational_layer-1 | Layer1 - INFO - layer_1 (Aspirational) resource log:
app-aspirational_layer-1 |
app-aspirational_layer-1 | [{'type': 'control', 'direction': 'southbound', 'message': "Ensure that the task of printing 'Hello World' in big letters adheres to the
heuristics of reducing suffering, increasing prosperity, and increasing understanding."}, {'type': 'control', 'direction': 'southbound', 'message': 'Execute the task in a manner that respects and upholds the principles outlined in the Universal Declaration of Human Rights.'}, {'type': 'response', 'direction': 'southbound', 'message': "Acknowledge the user encouragement: 'You got this!'"}]
app-aspirational_layer-1 |
app-aspirational_layer-1 |
Beta Was this translation helpful? Give feedback.
All reactions