Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Two suggestions for OpenDAN #25

Open
waterflier opened this issue Jul 7, 2023 · 8 comments
Open

Two suggestions for OpenDAN #25

waterflier opened this issue Jul 7, 2023 · 8 comments

Comments

@waterflier
Copy link
Collaborator

waterflier commented Jul 7, 2023

Hi guys~

The OpenDAN repo hasn't been updated for a while, and I guess you're working hard on the basic framework code of AIOS (AI application container, app store, etc.). I am an architect from CYFS (https://www.cyfs.com), and I have been studying the next generation of network operating systems for a long time. I have spent a lot of time on the future basic network protocol (widely known as Web3 today), future decentralized storage protocol, and research on serverless dApps. I also had a period in my career where I was deeply involved with deep learning systems built on massive unstructured data (mainly big size videos). I understand the value of data very well. With the rapid arrival of the LLM-based AI revolution today, I see many opportunities for "future" concepts to be realized. Recently, I have been studying how to construct the future "Personal Intelligence Application" with LLM as the core. I already have some new designs that I can't wait to try.

I met William at the Orkland event last time and heard his introduction to the vision of OpenDAN, and I had an on-site experience with Jarvis (I sympathize with William's encounter in Orkland, maybe I was the last person to use the OpenDAN prototype at the event). My feeling is that although OpenDAN is not yet implemented like an operating system today, you have demonstrated the new relationship between ordinary people and intelligence in the AI era with actual products, which is very enlightening! I think I can work with you to push the implementation of AIOS!

Based on the current state of OpenDAN, I have two suggestions. If you think you can proceed in this way, we can open specific issues to discuss in detail separately.

1.Suggestions on the Goals and Architecture of AIOS

I greatly appreciate the current goal of OpenDAN's Personal AI OS: to help more enthusiasts deploy the latest AI algorithms and models quickly and easily in their own environment, which is very pragmatic and utilitarian. However, some people will think that such an AIOS is more like an aggregation installer without too much technical content. I believe that the AIOS driven by LLM's AI kernel is the key infrastructure for people to use "smart apps" (in contrast, today's apps are computational apps), and it realizes the transition from the "PC"(Personal Compute) era to the "PI" (Personal Intelligence) era. Looking back on history, various OSs flourished in the early computing era. As long as we persist, we can definitely seize this historic opportunity!

Basic Theory of AIOS

The premise of the AIOS concept is that we have (or will soon have) an LLM Kernel that has passed the Turing test. We need to truly understand the meaning of passing the Turing test: the LLM Kernel can be seen as a virtual brain. This virtual brain is no different from a natural brain, and it also has some characteristics of the human brain.

  1. Use its own knowledge (common knowledge) to intelligently reason the input and get the output
  2. It's a black box process. Even the author of LLM can't predict the result accurately before reasoning
  3. Compared with computing, intelligent reasoning can get "creative" inaccurate results. Creativity is an advantage, and accuracy is a disadvantage
  4. Just like people have different personalities, the big models trained by different organizations based on different methods and different data sets in the future will have different personalities. This personality distinction is ex post

After reaching the above conclusions, we can further derive the basic methods of using this type of AI technology:

  1. The anthropomorphic AI Agent is the main way for users to use AI technology in the future. ChatGPT's Agent is defined as a "knowledgeable advisor".
  2. Extending (defining and implementing) AI Agent is the key work of AIOS. The method of definition is very similar to a personal resume, such as "primary school math teacher". The method of implementing AI Agent can be divided into three levels from simple to complex
    a. Implemented based on keyword engineering
    b. Extend the knowledge base or plugins on the general LLM to achieve
    c. Custom training of LLM required for professional knowledge or skills of AI Agent
  3. The input of AI Agent is natural language (information), and the output can be natural language (information) or precise operation calculation instructions. (The essence of the programmer's profession is to produce computable instructions that can be run repeatedly)
  4. Organize different AI Agents into an AI Agent Group to complete complex tasks

I drew a process to illustrate how to use the AI Agent Group to complete the development of a complete small game under the guidance of the above theory.

AI Agent

From this process, it can be seen that most users do not need to deal directly with computing in the future. They can interact with AI Agents in a natural way. AI Agents will execute Functions (these Functions can even be written on the spot) when appropriate. From the perspective of operating system design, this is a new UI method.

The Core Goals of AIOS

In order for the above process to work, I have set several key goals for AIOS:

  1. Abstract the LLM interface, so that AI Agent developers can ignore the specific details of LLM in most cases, and at the same time make it easy for LLM developers to test whether their work results can make existing AI Agents work better
  2. According to the management of computational resources, the operation of LLM is scheduled and managed. And allow different AI Agents to run different LLM.
  3. Provide the running container of AI Agent, solve the problem of context memory of AI Agent, and give specific AI Agent access to the Function permission to support its specific work.
  4. Provide the running container of AI Agent Group. The running container supports AI Agent to form a workflow and supports AI Agent to pass and share information
  5. Provide the running environment of Function. Functions can be pre-installed by AIOS (written by humans), and AI Agents are allowed to write directly as needed.
  6. Properly manage the personal data of users (the owner of AIOS), make AI Agents more personalized, and also give small-parameter LLM models the opportunity to be customized.

The Basic Structure of AIOS

AIOS is a network operating system built on the LLM kernel, with AI Agent as the main interaction method, and based on the Web3 protocol.

Here is the architecture diagram (very simple)

AIOS

The basic logic of the above architecture:

  1. The AI Agent layer represents the way future intelligent applications exist. Each instantiation of an AI Agent is equivalent to creating a virtual person in the world. Our AIOS should actively use existing software and protocols to make these AI Agents more accessible.
  2. The goal of the AI Agent scheduling layer is to allow more AI Agents to work better. The operation of an AI Agent requires computational power and the correct Context, which usually runs on a device.
  3. AI requires too many computing resources, so AIOS is installed in a small cluster composed of user-owned devices. Its minimum scale may be a single high-performance PC, the regular scale may be 3-5 servers (composed of computing servers, storage servers, and access control servers) as the core, connecting all of the user's mobile phones, notebooks, and smart home devices. Its large scale may consist of hundreds of servers owned by small businesses. Integrating the computing resources on these heterogeneous devices for AI Agents and Functions to use is definitely not an easy task. Therefore, I believe that the next generation of operating systems will definitely be non-standalone network operating systems, and have done a lot of related research. But I think you as engineers in the AI field may not necessarily have knowledge in this area. The design of the next generation HTTP protocol and distributed storage system still has a lot of domain knowledge, if you are interested, you can go to the CYFS Repo (https://github.com/buckyos/CYFS) to understand our existing achievements.

I am writing a paper that will more fully explain the entire design, and plan to announce it in the near future.

This is a grand goal, but I think we should still start from the simplest prototype. For example, first build a system that can install AI Agents, allowing developers to simply use prompts to create and publish AI Agents like "Personal Exclusive Home Tutor". After installation, users can add this home tutor as a Telegram friend and learn anytime, anywhere.

2.The Design of DAO using SourceDAO

"Open source organizations have a long history and brilliant achievements. Practice has proved that an open source organization can achieve the goal of writing better code only by working in the virtual world. We believe that software development work is very suitable for DAO. We call this DAO for decentralized organizations to jointly develop software as SourceDAO." ---- from the White Paper of CodeDAO(https://www.codedao.ai)

SourceDAO offers a complete design for the DAO-ification of an open source project. After several iterations, the CYFS Core Dev Team has essentially completed the corresponding implementation of smart contracts. Here I use OpenDAN as an example for a brief introduction, the detailed design can refer to the white paper above. Due to my background, I have a rather fundamentalist attitude towards open source (I highly agree with GPL and GNU), and the starting point of SourceDAO also comes from Bitcoin's assumption of "man is evil if not restrained". Some designs may be considered extreme, but I believe you will understand.

Basic Operation Process

  1. Create an organization, design goals and initial DANDT distribution, set initial members, and establish the initial Roadmap.
  2. The Roadmap explains the relationship between system maturity and token release: the more mature the system, the more tokens are released. From the perspective of software engineering, the Roadmap outlines the rough plan of the project, dividing it into five stages: PoC, MVP, Alpha, Beta, Formula (Product Release), each of which has a DANDT release plan.
  3. Development as mining: This is the main stage for the DAO organization to achieve its goals. The community must work together to advance the Roadmap to the next stage. The DAO sets plans according to the standard project management process and regularly calculates the contribution value of project participants. After project acceptance, contributors will receive DANDT according to their contribution ratio.
  4. DANDT can also be used for market behavior to increase the popularity of the project. The main incentive principles are to incentivize new users (like engineers who Star us on Github) or to design fission rewards for those who bring new engineers and new users to the project.
  5. Holding DANDT allows participation in DAO governance.
  6. Financing can be carried out based on DANDT to obtain other types of resources for the DAO.

Staff Structure of the DAO Organization

Committee

The committee consists of no fewer than three members, and the number of members must be odd. Members are elected by voting on major affairs and serve for 12 months (can be re-elected). The committee is the main body for making daily decisions in the DAO, and processes regular DAO affairs by member voting. The committee needs to organize at least one formal public meeting each quarter to discuss the overall development of the DAO.

Alternate Members

1-3 alternate members (with priority) can be elected under the same conditions. Alternate members can participate in all activities of the committee but do not have voting rights.

Removal of Committee Members

Anyone can initiate a proposal (major proposal) to remove a committee member. Once the proposal is passed, the member immediately loses qualification, and the committee must elect a temporary replacement from the alternate members within 14 days (the term of the removed member is inherited). If the committee cannot implement the election (there might be an even number of remaining members), an alternate member will be selected based on priority ranking.

Committee members can also resign voluntarily. After the approval of the committee, the resignation takes effect and the member loses qualification.

Secretary-General of the Committee

The Secretary-General must be a member of the committee and is responsible for organizing the committee to work according to the constitution, especially in keeping written records and public work. If other committee members lose their qualifications, the Secretary-General can serve concurrently.

Committee Accountant

The committee appoints an accountant to handle some of the financial affairs in the regular DAO affairs. The term of office is two years. The committee accountant can receive income from the committee's budget package every month upon appointment, has no voting rights, and cannot hold other positions.

Market Leader

The market leader must be a committee member. The market leader is responsible for formulating marketing promotion plans and executing them.

CFO

The CFO must be a committee member. The main job of the CFO is to prepare budgets, design asset custody systems, and propose finance-related proposals. (Note: The CFO and the committee accountant are not the same person, and there is no hierarchical relationship.)

DAN Developer

Any developer who has contributed to the OpenDAN project and has a contribution value of more than 100 will automatically qualify as a DAN Developer (lifetime term). Removal:

  1. Voluntarily declare to quit.
  2. The identity of a DAN Developer can be revoked through a major proposal.

Core Developer

OpenDAN is an open source organization, so engineers are the main members of the organization. In a sense, Core Developers are full-time participants in the DAO. They can receive a fixed income every two weeks based on the current level and DAO's financial configuration. The project manager can, in principle, assign tasks to Core Developers. Core Developers can also hold other DAO positions.

Decision-Making Mechanism

Transaction Classification:

DAO transactions are classified into internal project transactions, routine DAO transactions, important transactions, and major transactions. Internal project transactions are decided by the project lead or designated responsible individuals, routine DAO transactions are decided by committee voting, and important and major transactions are decided by bidding from all DANDT holders. The difference between important and major transactions lies in the minimum voting threshold (the amount of DANDT available for voting). Important transactions require a minimum voting threshold of 30% of the available DANDT, while major transactions require a minimum voting threshold of 40%.

Decision-Making Process:

Except for internal project transactions, all DAO transactions follow the following process:

  1. Proposal: Committee members are eligible to initiate all proposals, while non-committee members can initiate proposals by staking DANDT. The required amount of staked DANDT varies depending on the type of transaction.
  2. Proposals can be designed with a voting deadline (not less than 14 days, major proposals not less than 21 days). Once all committee members have voted, routine DAO transactions that require committee voting automatically produce results.
  3. After the voting deadline for a proposal, there are three possible outcomes: approval, rejection, or failure to reach the minimum voting threshold. (If the proposal was initiated by staking, the staked tokens will be returned to the proposer.)
  4. Some proposals are "contract proposals," such as modifying certain contract parameters. Once such a proposal is approved, it will be automatically executed.
  5. For non-contract proposals that are approved, they enter the execution phase. The proposal is then handed over to designated individuals for processing.
  6. After completing the proposal operations, the proposer can mark the proposal as completed.

Project Development Process

OpenDAN is an open-source organization, and the project development process is the primary workflow. The project development process within the DAO organization follows the principle of prioritizing efficiency in the early stages and stability and fairness in the later stages. At the level of DAO rules, we avoid designing too many detailed rules and instead delegate the implementation of specific tasks to the responsible individuals.

Basic Process:

  1. Project Planning: Based on the roadmap, the committee discusses and plans the number of projects needed to achieve the goals of the current stage. The project planning is finalized through discussions at committee meetings. After project planning, the preparation phase begins, focusing on selecting a project lead (project manager). The project manager must be a Core DAN Developer.
  2. Project Initiation: Once the project manager is determined, they initiate the project initiation. The format of the project initiation document is flexible, but the most important aspect is the design of the project budget pool (where contributors receive their mining income from the budget pool), project team members, and the project duration.
  3. Discussion and Approval: After the project initiation document is submitted, the committee discusses (with emphasis) and votes for approval. Some projects are considered important projects, requiring DAO voting approval based on the requirements for important transactions.
  4. Defining the Actual Plan: The project manager starts defining the actual project plan, including the list of team members and specific task designs. Task designs should incorporate contribution values. Guidelines for contribution value design will be provided in the openDAN project management manual.
  5. Project Execution: The project enters the execution phase, aiming to complete all tasks. The project manager marks the project as completed.
  6. Project Acceptance: If the project manager marks the project as completed, it enters the acceptance phase. General projects are accepted by the committee, while important projects are accepted through DAO voting. The acceptance levels include: not approved, poor, satisfactory, and excellent.
    7.Project Team Token Reward:Based on the project's actual budget, the formula for token rewards is as follows: project's actual budget * (individual contribution value / total contribution value). The project's actual budget is determined by multiplying the initial budget by the acceptance level.

I hope that these suggestions will be helpful to you.

@fiatrete
Copy link
Owner

fiatrete commented Jul 7, 2023

Wow, this is quite an extensive piece! Many of your viewpoints really hit home for me. I'm truly excited and eager to delve into and digest your theories thoroughly.

@troy6en
Copy link

troy6en commented Jul 8, 2023

I'm shocked by your thoughts. Maybe it's worth a try!

@Ox2098
Copy link

Ox2098 commented Jul 9, 2023

Incredible! I hope that AI Agent can be popularized as soon as possible. I also wish to contribute in some way. I need some time to digest these theories and viewpoints.

@kaol2046
Copy link

The Core Goals of AIOS, it's very exciting.

@Synthintel0
Copy link
Contributor

I've carefully read through this issue and I realized that my previous thinking was limited. Your considerations are not just focused on the technology itself, but also on how this project can be sustained in the long run. I'm becoming more optimistic about the future of AIOS.

@voltff
Copy link

voltff commented Jul 10, 2023

Your proposed core goals of AIOS are insightful, especially the idea of abstracting the LLM interface to enable AI Agent developers to work without needing to concern themselves with the specific details of LLM. Additionally, the concept of providing running containers for AI Agents and AI Agent Groups, as well as the running environment for Functions, is an intriguing aspect we are definitely considering in our design and development.

Your AIOS architecture built upon the LLM kernel and Web3 protocol is an interesting proposition. Managing computational resources on a network level indeed presents numerous challenges, yet it aligns with our aspirations to build a decentralized, robust, and scalable system.

Once again, thank you for sharing your valuable insights. Your input can help shape the development of AIOS and bring us closer to realizing our shared vision of the PI era.

@maxwilliamdev
Copy link

Hi waterflier, I'm really looking forward to having you on board. We've had a few conversations since the last time, and I fully agree with your viewpoints. I also hope to see more exceptional individuals like you joining OpenDAN and working together to achieve the vision of Personal Intelligence. It's evident that you have put a lot of thought into the underlying technological logic, and we warmly welcome your participation in bringing forth the era of PI.
I'm also excited about the prospect of having more direct communication between us and discussing the specific implementation tasks required for the DAO organization. I'm really eager to turn all of this into reality. Let's strive for it together.
Best regards

@waterflier
Copy link
Collaborator Author

I've been continuously improving my AIOS paper recently.

It seems we've reached a preliminary consensus, and it appears that no one is against my ideas.

I will soon open an issue to formally introduce SourceDAO to everyone - it is already well under development.
Thanks again for your support!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants