Commit ed83cae
feat(agent): multi-agent harness with 8 archetypes, DAG planning, and episodic memory (tinyhumansai#155)
* refactor(agent): update default model configuration and pricing structure
- Changed the default model name in `AgentBuilder` to use a constant `DEFAULT_MODEL` instead of a hardcoded string.
- Introduced new model constants (`MODEL_AGENTIC_V1`, `MODEL_CODING_V1`, `MODEL_REASONING_V1`) in `types.rs` for better clarity and maintainability.
- Refactored the pricing structure in `identity_cost.rs` to utilize the new model constants, improving consistency across the pricing definitions.
These changes enhance the configurability and readability of the agent's model and pricing settings.
* refactor(models): update default model references and suggestions
- Replaced hardcoded model names with a constant `DEFAULT_MODEL` in multiple files to enhance maintainability.
- Updated model suggestions in the `TauriCommandsPanel` and `Conversations` components to reflect new model names, improving user experience and consistency across the application.
These changes streamline model management and ensure that the application uses the latest model configurations.
* style: fix Prettier formatting for model suggestions
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat(agent): introduce multi-agent harness with archetypes and task DAG
- Added a new module for the multi-agent harness, defining 8 specialized archetypes (Orchestrator, Planner, CodeExecutor, SkillsAgent, ToolMaker, Researcher, Critic, Archivist) to enhance task management and execution.
- Implemented a Directed Acyclic Graph (DAG) structure for task planning, allowing the Planner archetype to create and manage task dependencies.
- Introduced a session queue to serialize tasks within sessions, preventing race conditions and enabling parallelism across different sessions.
- Updated configuration schema to support orchestrator settings, including per-archetype configurations and maximum concurrent agents.
These changes significantly improve the agent's architecture, enabling more complex task management and execution strategies.
* feat(agent): implement orchestrator executor and interrupt handling
- Introduced a new `executor.rs` module for orchestrated multi-agent execution, enabling a structured run loop that includes planning, executing, reviewing, and synthesizing tasks.
- Added an `interrupt.rs` module to handle graceful interruptions via SIGINT and `/stop` commands, ensuring running sub-agents can be cancelled and memory flushed appropriately.
- Implemented a self-healing interceptor in `self_healing.rs` to automatically create polyfill scripts for missing commands, enhancing the robustness of tool execution.
- Updated the `mod.rs` file to include new modules and functionalities, improving the overall architecture of the agent harness.
These changes significantly enhance the agent's capabilities in managing multi-agent workflows and handling interruptions effectively.
* feat(agent): implement orchestrator executor and interrupt handling
- Introduced a new `executor.rs` module for orchestrated multi-agent execution, enabling a structured run loop that includes planning, executing, reviewing, and synthesizing tasks.
- Added an `interrupt.rs` module to handle graceful interruptions via SIGINT and `/stop` commands, ensuring running sub-agents are cancelled and memory is flushed.
- Implemented a `SelfHealingInterceptor` in `self_healing.rs` to automatically generate polyfill scripts for missing commands, enhancing the agent's resilience.
- Updated the `mod.rs` file to include new modules and functionalities, improving the overall architecture of the agent harness.
These changes significantly enhance the agent's ability to manage complex tasks and respond to interruptions effectively.
* feat(agent): add context assembly module for orchestrator
- Introduced a new `context_assembly.rs` module to handle the assembly of the bootstrap context for the orchestrator, integrating identity files, workspace state, and relevant memory.
- Implemented functions to load archetype prompts and identity contexts, enhancing the orchestrator's ability to generate a comprehensive system prompt.
- Added a `BootstrapContext` struct to encapsulate the assembled context, improving the organization and clarity of context management.
- Updated `mod.rs` to include the new context assembly module, enhancing the overall architecture of the agent harness.
These changes significantly improve the orchestrator's context management capabilities, enabling more effective task execution and user interaction.
* style: apply cargo fmt to multi-agent harness modules
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: resolve merge conflict in config/mod.rs re-exports
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: address PR review findings — security, correctness, observability
Inline fixes:
- executor: wire semaphore to enforce max_concurrent_agents cap
- executor: placeholder sub-agents now return success=false
- executor: halt DAG when level has failed tasks after retries
- self_healing: remove overly broad "not found" pattern
- session_queue: fix gc() race with acquire() via Arc::strong_count check
- skills_agent.md: reference injected memory context, not memory_recall tool
- init.rs: run EPISODIC_INIT_SQL during UnifiedMemory::new()
- ask_clarification: make "question" param optional to match execute() default
- insert_sql_record: return success=false for unimplemented stub
- spawn_subagent: return success=false for unimplemented stub
- run_linter: reject absolute paths and ".." in path parameter
- run_tests: catch spawn/timeout errors as ToolResult, fix UTF-8 truncation
- update_memory_md: add symlink escape protection, use async tokio::fs::write
Nitpick fixes:
- archivist: document timestamp offset intent
- dag: add tracing to validate(), hoist id_map out of loop in execution_levels()
- session_queue: add trace logging to acquire/gc
- types: add serde(rename_all) to ReviewDecision, preserve sub-second Duration
- ORCHESTRATOR.md: add escalation rule for Core handoff
- read_diff: add debug logging, simplify base_str with Option::map
- workspace_state: add debug logging at entry and exit
- run_tests: add debug logging for runner selection and exit status
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 00c7b01 commit ed83cae
35 files changed
Lines changed: 4095 additions & 12 deletions
File tree
- src/openhuman
- agent
- harness
- prompts
- archetypes
- config
- schema
- memory/store
- unified
- tools
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
0 commit comments