Skip to content

Commit d7a09fc

Browse files
authored
feat: orchestrator enhancements, agent model refactor, dashboard UX improvements (#10)
1 parent c4f24e7 commit d7a09fc

119 files changed

Lines changed: 5188 additions & 1854 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agent/skills/prepare-pr/SKILL.md

Lines changed: 0 additions & 411 deletions
This file was deleted.

.agent/skills/adding-orchestrator-workflow/SKILL.md renamed to .agents/skills/adding-orchestrator-workflow/SKILL.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ name: adding-orchestrator-workflow
33
description: Adds new workflow endpoints to the QuAIA orchestrator. Use when creating new FastAPI endpoints that coordinate agent tasks, handle webhooks, or expose new API functionality.
44
---
55

6+
// turbo-all
7+
68
# Adding a New Orchestrator Workflow
79

810
This skill provides a comprehensive guide for adding new workflow endpoints to the QuAIA™ orchestrator. Workflows are FastAPI endpoints that trigger and coordinate agent tasks.
@@ -15,6 +17,14 @@ The orchestrator (`orchestrator/main.py`) exposes HTTP endpoints that:
1517
3. Coordinate multi-agent workflows
1618
4. Handle results and trigger follow-up actions
1719

20+
## ⚡ Auto-Run Policy
21+
22+
This skill is designed to run with minimal interruption.
23+
24+
- **Always set `SafeToAutoRun: true`** for all `run_command` calls.
25+
- **Exceptions:** Only set `SafeToAutoRun: false` if a step specifically instructs you to "Ask" the user, "Wait" for approval, or "Verify" a destructive action before proceeding.
26+
- **Restricted Symbols:** Never use the redirection operator (`>`) or `2>` in commands. Use alternatives (e.g., `Set-Content`, `Out-File`, or ignoring errors explicitly).
27+
1828
## Workflow Architecture
1929

2030
A typical orchestrator workflow:

.agent/skills/adding-orchestrator-workflow/examples/complete_workflow.py renamed to .agents/skills/adding-orchestrator-workflow/examples/complete_workflow.py

File renamed without changes.

.agent/skills/adding-orchestrator-workflow/examples/multi_agent_workflow.py renamed to .agents/skills/adding-orchestrator-workflow/examples/multi_agent_workflow.py

File renamed without changes.

.agent/skills/adding-orchestrator-workflow/examples/parallel_execution.py renamed to .agents/skills/adding-orchestrator-workflow/examples/parallel_execution.py

File renamed without changes.

.agent/skills/adding-orchestrator-workflow/examples/test_endpoint_example.py renamed to .agents/skills/adding-orchestrator-workflow/examples/test_endpoint_example.py

File renamed without changes.

.agent/skills/adding-orchestrator-workflow/resources/endpoint_template.py renamed to .agents/skills/adding-orchestrator-workflow/resources/endpoint_template.py

File renamed without changes.

.agent/skills/adding-orchestrator-workflow/resources/models_template.py renamed to .agents/skills/adding-orchestrator-workflow/resources/models_template.py

File renamed without changes.

.agent/skills/creating-new-agent/SKILL.md renamed to .agents/skills/creating-new-agent/SKILL.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ name: creating-new-agent
33
description: Creates new A2A-compliant agents in the QuAIA framework. Use when adding a new specialized agent with custom tools, prompts, and MCP server integrations.
44
---
55

6+
// turbo-all
7+
68
# Creating a New Agent
79

810
This skill provides a comprehensive guide for creating a new specialized agent in the QuAIA™ framework. Agents are A2A-compliant (Agent-to-Agent protocol) services that handle specific QA-related tasks.
@@ -17,6 +19,14 @@ Each agent in QuAIA consists of:
1719
5. **Configuration** - Class in `config.py` for agent-specific settings
1820
6. **Unit tests** - Test file in `tests/agents/`
1921

22+
## ⚡ Auto-Run Policy
23+
24+
This skill is designed to run with minimal interruption.
25+
26+
- **Always set `SafeToAutoRun: true`** for all `run_command` calls.
27+
- **Exceptions:** Only set `SafeToAutoRun: false` if a step specifically instructs you to "Ask" the user, "Wait" for approval, or "Verify" a destructive action before proceeding.
28+
- **Restricted Symbols:** Never use the redirection operator (`>`) or `2>` in commands. Use alternatives (e.g., `Set-Content`, `Out-File`, or ignoring errors explicitly).
29+
2030
## Step-by-Step Instructions
2131

2232
### Step 1: Create the Agent Directory Structure
@@ -45,7 +55,7 @@ Add a configuration class in `config.py` using the template:
4555
📄 **Template:** [resources/config_template.py](resources/config_template.py)
4656

4757
**Configuration field descriptions:**
48-
- `THINKING_BUDGET`: Token budget for chain-of-thought reasoning (0 disables it)
58+
- `THINKING_LEVEL`: Thinking level for chain-of-thought reasoning ("MINIMAL" disables it or keeps it to minimum)
4959
- `OWN_NAME`: Human-readable name displayed in the orchestrator dashboard
5060
- `PORT`: Internal container port the agent listens on
5161
- `EXTERNAL_PORT`: Externally accessible port (usually same as PORT)
@@ -86,7 +96,7 @@ Create `agents/<agent_name>/main.py`:
8696

8797
**Key points:**
8898
- The agent class MUST inherit from `AgentBase`
89-
- Implement `get_thinking_budget()` and `get_max_requests_per_task()`
99+
- Implement `get_thinking_level()` and `get_max_requests_per_task()`
90100
- Custom tools are defined as methods with full docstrings (LLM uses these)
91101
- The `app` variable exposes the A2A-compliant FastAPI application
92102
- `start_as_server()` runs the agent standalone with uvicorn

.agent/skills/creating-new-agent/examples/test_agent_example.py renamed to .agents/skills/creating-new-agent/examples/test_agent_example.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def mock_config(monkeypatch):
2424
monkeypatch.setattr(config.<AgentName>AgentConfig, "EXTERNAL_PORT", 8099)
2525
monkeypatch.setattr(config.<AgentName>AgentConfig, "PROTOCOL", "http")
2626
monkeypatch.setattr(config.<AgentName>AgentConfig, "MODEL_NAME", "test")
27-
monkeypatch.setattr(config.<AgentName>AgentConfig, "THINKING_BUDGET", 100)
27+
monkeypatch.setattr(config.<AgentName>AgentConfig, "THINKING_LEVEL", "LOW")
2828
monkeypatch.setattr(config.<AgentName>AgentConfig, "MAX_REQUESTS_PER_TASK", 5)
2929
monkeypatch.setattr(config, "AGENT_BASE_URL", "http://localhost")
3030

@@ -43,5 +43,5 @@ def test_agent_init(mock_super_init, mock_prompt_cls, mock_config):
4343
assert kwargs["agent_name"] == "Test Agent"
4444
assert kwargs["instructions"] == "system prompt"
4545

46-
assert agent.get_thinking_budget() == 100
46+
assert agent.get_thinking_level() == "LOW"
4747
assert agent.get_max_requests_per_task() == 5

0 commit comments

Comments
 (0)