-
Notifications
You must be signed in to change notification settings - Fork 0
mite51/LLMTaskGraph
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Task Master Description: A node based task aggregation framework driven by LLMs Scope: write and debug in a profession software development environment ------------------------------ Features -Simple node based graphs with data compositing for task specific variation on reusable sub tasks.. USD based *builds llm contexts -Tasks can be constructed, reused, or build variants.. and stored in a central database with meta data for search -LLMs construct graphs will disaggregate large tasks into progressively smaller sequential tasks *Handle planning, decision making and progress on a plan -when a task encounters a failure, the graph and out evaluated and corrections made *to avoid relying llms trying to correct themselves, and focus on creating better inputs *node results are cached, but can be dirtied task changes *not all task nodes are LLMs, could be python code, some other AI like diffusion or speech -Each LLM node can target a model specific to the task or more efficient, balance effectiveness and cost -LLM express code changes in git format to reduce context size(?) -Use git as common project interface, can work in branches, use CI tests, *But be flexible, source control, bug tracking, project management specific to an organization should be able to support existing infrastructures. Future features/scale up: ***versions/source control for task graphs. usd monogoBD or a custom graph/prompt database ***move to webui, make it cloud based, market place for nodes/graphs ------------------------------- The framework Consists of 4 parts, Projects/Tasks/Nodes/Prompts, meant to be simple and flexible Project: provides context for the work environment -product vision and specifications -programming language [python, c++, c#, etc] -engine interface(s) [python libs/conda env, unreal engine, unity engine, etc] -deployment instructions, how to build, run, test -project files, hopefully source controlled, ideally git -notes on where to find assets -source -config -art -style guide/best practices -API KEYS for external AI services -project specific RAGS?(maybe later) Tasks: high level description of work item -LLM Session -Node graph -Tags and version data to be searchable/reusable Nodes: -Does the work or provides context(leaf), or aggregates the task further(branch/parent) -Flexible to allow any digital work to be performed by LLM. or work routed to custom models, or humans .. for cost, efficiency and privacy Prompts: simple database of very targeted prompt with tag based search ["code generation","python", "PyQt"] ["code generation","python", "pytorch", "charting"] ["code generation","c++","Unreal plugin","gameplay ability system"] ============================================ Coding Task Phases: Description, details/scope/clarity Notes: details about failures from earlier attempts List steps Build task graph -Review, look for additional applicable prompts Create branch Execute task graph Verify and test(build/unit tests) Refine.. errors or mistakes are corrected in the Description Add notes made about the errors encountered Reset branch and start again Commit ============================================ Task Execution: This happens in 5 steps, starting with the main task description. The first node created is a TaskDisaggregator node which will break the task description into smaller tasks until it creates a task that is sufficiently simple it will be a leaf TaskNode 1)Look for an existing graph to reuse/repurpose [Not Found] - Build the graph: Aggregation The task description will be used along with a prompt to generate: a) produce dependencies - given the context of the task, consider if there is additional context required, if so generate nodes to provide the data b) aggregated tasks - once dependencies are made, and executed, the context is added and sub-tasks are created. Prompt the LLM to generate a list of sub tasks and context, given the framework documentation and examples [Found] - Customize the graph 2)Execution The graph is traversed for execution nodes and those are run in sequence. 3)Review. Self assessment, Test (unit test, project build/run), then project review (ie swarm, gitlab.. probably a project Task) *provide context for refinement, or skip to step 5 4)Refinement *use feedback from review to update the graph and restart step 1 *feedback specific to a node can add to its context 5)Completed. -------------------------------- Types of nodes: (not all are available) Context Node (super): Context Node local file: Context Node local file search: Context Node web page: Context Node screenshot: -meta data about the contents * style guide for company X * style guide for team X * language/engine docs -task driven, flexible : *use output to create more context nodes if needed, find places where that data might be help more broadly in the graph *collocate often, especially newer nodes... often new information can be generalized better after seeing similar failures, or finding missing information Task Node (super): Task Node LLM: -write code Task Node python code: -tools, move files, setup env, build project, etc -apply code change Task Node command line: Task Node image: Task Node speech: Task Node music: Task Node slack/discord: Task Node Jira/other project management software Task Project Task Project Build -how to compile the project Task Project Test -how to configure and run a test Task Project Peer review Task Project Source control Task Project Email Task Project IM ============================================ Examples of tasks: -code review -code exploration: what does this function do -write function/class/component -test function/class/component -create a test case -generate documentation -build project manifest
About
LLM based task graph framework
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published