aurora-research 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- aurora_research-0.1.0/PKG-INFO +165 -0
- aurora_research-0.1.0/README.md +148 -0
- aurora_research-0.1.0/pyproject.toml +36 -0
- aurora_research-0.1.0/src/aurora_research/__init__.py +6 -0
- aurora_research-0.1.0/src/aurora_research/branding.py +135 -0
- aurora_research-0.1.0/src/aurora_research/config.py +222 -0
- aurora_research-0.1.0/src/aurora_research/core/__init__.py +1 -0
- aurora_research-0.1.0/src/aurora_research/core/context.py +116 -0
- aurora_research-0.1.0/src/aurora_research/core/loop.py +384 -0
- aurora_research-0.1.0/src/aurora_research/core/permissions.py +158 -0
- aurora_research-0.1.0/src/aurora_research/core/tool_executor.py +319 -0
- aurora_research-0.1.0/src/aurora_research/core/tools.py +280 -0
- aurora_research-0.1.0/src/aurora_research/main.py +575 -0
- aurora_research-0.1.0/src/aurora_research/models/__init__.py +10 -0
- aurora_research-0.1.0/src/aurora_research/models/client.py +255 -0
- aurora_research-0.1.0/src/aurora_research/models/registry.py +52 -0
- aurora_research-0.1.0/src/aurora_research/skills/__init__.py +1 -0
- aurora_research-0.1.0/src/aurora_research/skills/auto_review.py +212 -0
- aurora_research-0.1.0/src/aurora_research/skills/base.py +128 -0
- aurora_research-0.1.0/src/aurora_research/skills/experiment_bridge.py +121 -0
- aurora_research-0.1.0/src/aurora_research/skills/idea_discovery.py +218 -0
- aurora_research-0.1.0/src/aurora_research/skills/novelty_check.py +96 -0
- aurora_research-0.1.0/src/aurora_research/skills/paper_writing.py +195 -0
- aurora_research-0.1.0/src/aurora_research/skills/research_lit.py +91 -0
- aurora_research-0.1.0/src/aurora_research/skills/research_pipeline.py +112 -0
- aurora_research-0.1.0/src/aurora_research/utils/__init__.py +1 -0
- aurora_research-0.1.0/src/aurora_research/utils/display.py +173 -0
- aurora_research-0.1.0/src/aurora_research/utils/session.py +102 -0
- aurora_research-0.1.0/src/aurora_research/utils/state.py +125 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: aurora-research
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Aurora 🌌 — Autonomous AI research scientist. Multi-model, ARIS-powered.
|
|
5
|
+
Author: dududu
|
|
6
|
+
Author-email: dududu <1816619485@qq.com>
|
|
7
|
+
Requires-Dist: httpx>=0.28.1
|
|
8
|
+
Requires-Dist: openai>=2.43.0
|
|
9
|
+
Requires-Dist: pydantic>=2.13.4
|
|
10
|
+
Requires-Dist: python-dotenv>=1.2.2
|
|
11
|
+
Requires-Dist: rich>=15.0.0
|
|
12
|
+
Requires-Dist: typer>=0.26.7
|
|
13
|
+
Requires-Python: >=3.12
|
|
14
|
+
Project-URL: Homepage, https://github.com/dududu/aurora-research
|
|
15
|
+
Project-URL: Repository, https://github.com/dududu/aurora-research
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
|
|
18
|
+
# Aurora Research Agent
|
|
19
|
+
|
|
20
|
+
**Autonomous AI research scientist** -- multi-model, ARIS-powered scientific research agent.
|
|
21
|
+
|
|
22
|
+
Aurora handles the full research workflow: literature survey, idea discovery, experiment implementation, cross-model review, and paper writing -- all from the command line.
|
|
23
|
+
|
|
24
|
+
## Features
|
|
25
|
+
|
|
26
|
+
- **Multi-model support** -- DeepSeek (default), OpenAI, Anthropic, and any OpenAI-compatible API
|
|
27
|
+
- **Autonomous agent loop** -- Tool-using AI that reads/writes files, runs code, searches the web
|
|
28
|
+
- **ARIS research workflows** -- Idea discovery, auto-review loops, paper writing, full pipeline
|
|
29
|
+
- **White-label** -- Branded as "Aurora", never exposes underlying model/provider identity
|
|
30
|
+
- **Cross-model review** -- Executor and reviewer use different models for adversarial quality control
|
|
31
|
+
- **Resumable runs** -- State persistence enables recovery from crashes or context compaction
|
|
32
|
+
|
|
33
|
+
## Quick Start
|
|
34
|
+
|
|
35
|
+
### Prerequisites
|
|
36
|
+
|
|
37
|
+
- Python 3.12+
|
|
38
|
+
- [uv](https://docs.astral.sh/uv/) (package manager)
|
|
39
|
+
- A DeepSeek API key ([get one here](https://platform.deepseek.com/api_keys))
|
|
40
|
+
|
|
41
|
+
### Install
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Install from PyPI
|
|
45
|
+
uv tool install aurora-research
|
|
46
|
+
# Creates the `aurora-ai` command
|
|
47
|
+
|
|
48
|
+
# Or try without installing
|
|
49
|
+
uvx aurora-research run "Search arXiv for recent papers on LLM reasoning"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Configure
|
|
53
|
+
|
|
54
|
+
Set your API key:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Option 1: Environment variable
|
|
58
|
+
export DEEPSEEK_API_KEY="sk-your-key-here"
|
|
59
|
+
|
|
60
|
+
# Option 2: .env file
|
|
61
|
+
echo 'DEEPSEEK_API_KEY=sk-your-key-here' > .env
|
|
62
|
+
|
|
63
|
+
# Option 3: Interactive config
|
|
64
|
+
aurora-ai config
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Basic Usage
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# One-shot task
|
|
71
|
+
aurora-ai run "Explain the Transformer architecture with code examples"
|
|
72
|
+
|
|
73
|
+
# Interactive chat
|
|
74
|
+
aurora-ai chat
|
|
75
|
+
|
|
76
|
+
# Plan-first execution (read-only research, then execute)
|
|
77
|
+
aurora-ai plan "Build a PyTorch training pipeline for CIFAR-10"
|
|
78
|
+
|
|
79
|
+
# List available models
|
|
80
|
+
aurora-ai models
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Research Workflows
|
|
84
|
+
|
|
85
|
+
### Idea Discovery
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
aurora-ai idea "efficient attention mechanisms for long-context LLMs" --num-ideas 8
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Pipeline: literature survey -> idea generation (8-12 ideas) -> novelty check -> critical review -> ranked report
|
|
92
|
+
|
|
93
|
+
### Auto Review Loop
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
aurora-ai review --target ./experiment_results/ --rounds 4
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Cross-model adversarial review: reviewer evaluates work -> executor fixes issues -> re-review -> repeat until score >= 7/10
|
|
100
|
+
|
|
101
|
+
### Paper Writing
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
aurora-ai paper "Efficient Attention via Hierarchical Token Pruning" --assure draft
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Pipeline: paper plan -> figures -> LaTeX writing -> compilation -> improvement loop
|
|
108
|
+
|
|
109
|
+
### Full Research Pipeline
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
aurora-ai pipeline "continual learning without catastrophic forgetting" --write
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
End-to-end: idea discovery -> experiments -> review -> paper
|
|
116
|
+
|
|
117
|
+
## Model Configuration
|
|
118
|
+
|
|
119
|
+
Aurora uses **model aliases** -- user-friendly names that hide the underlying provider:
|
|
120
|
+
|
|
121
|
+
| Alias | Description |
|
|
122
|
+
|-------|-------------|
|
|
123
|
+
| `fast` | Fast & affordable (default) |
|
|
124
|
+
| `pro` | Balanced performance |
|
|
125
|
+
| `deep` | Deep reasoning |
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Use a specific model
|
|
129
|
+
aurora-ai run --model pro "Complex reasoning task"
|
|
130
|
+
|
|
131
|
+
# Add a custom model
|
|
132
|
+
aurora-ai config add turbo --provider openai --model gpt-4o --key sk-xxx
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Architecture
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
CLI (aurora-ai) -> Agent Loop (tool-use engine) -> LLM Backend (multi-model)
|
|
139
|
+
|
|
|
140
|
+
Tools: read, write, edit, bash, glob, grep, web_search, web_fetch
|
|
141
|
+
|
|
|
142
|
+
Skills: idea-discovery, auto-review, paper-writing, pipeline
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Permission Modes
|
|
146
|
+
|
|
147
|
+
| Mode | Behavior |
|
|
148
|
+
|------|----------|
|
|
149
|
+
| `default` | Ask before destructive operations |
|
|
150
|
+
| `acceptEdits` | Auto-approve file edits (default for `run`) |
|
|
151
|
+
| `bypassPermissions` | Auto-approve everything (use `-y` flag) |
|
|
152
|
+
| `plan` | Read-only, research only |
|
|
153
|
+
|
|
154
|
+
## Development
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
git clone https://github.com/user/aurora-research.git
|
|
158
|
+
cd aurora-research
|
|
159
|
+
uv sync
|
|
160
|
+
uv run pytest
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## License
|
|
164
|
+
|
|
165
|
+
MIT
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Aurora Research Agent
|
|
2
|
+
|
|
3
|
+
**Autonomous AI research scientist** -- multi-model, ARIS-powered scientific research agent.
|
|
4
|
+
|
|
5
|
+
Aurora handles the full research workflow: literature survey, idea discovery, experiment implementation, cross-model review, and paper writing -- all from the command line.
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- **Multi-model support** -- DeepSeek (default), OpenAI, Anthropic, and any OpenAI-compatible API
|
|
10
|
+
- **Autonomous agent loop** -- Tool-using AI that reads/writes files, runs code, searches the web
|
|
11
|
+
- **ARIS research workflows** -- Idea discovery, auto-review loops, paper writing, full pipeline
|
|
12
|
+
- **White-label** -- Branded as "Aurora", never exposes underlying model/provider identity
|
|
13
|
+
- **Cross-model review** -- Executor and reviewer use different models for adversarial quality control
|
|
14
|
+
- **Resumable runs** -- State persistence enables recovery from crashes or context compaction
|
|
15
|
+
|
|
16
|
+
## Quick Start
|
|
17
|
+
|
|
18
|
+
### Prerequisites
|
|
19
|
+
|
|
20
|
+
- Python 3.12+
|
|
21
|
+
- [uv](https://docs.astral.sh/uv/) (package manager)
|
|
22
|
+
- A DeepSeek API key ([get one here](https://platform.deepseek.com/api_keys))
|
|
23
|
+
|
|
24
|
+
### Install
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# Install from PyPI
|
|
28
|
+
uv tool install aurora-research
|
|
29
|
+
# Creates the `aurora-ai` command
|
|
30
|
+
|
|
31
|
+
# Or try without installing
|
|
32
|
+
uvx aurora-research run "Search arXiv for recent papers on LLM reasoning"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Configure
|
|
36
|
+
|
|
37
|
+
Set your API key:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Option 1: Environment variable
|
|
41
|
+
export DEEPSEEK_API_KEY="sk-your-key-here"
|
|
42
|
+
|
|
43
|
+
# Option 2: .env file
|
|
44
|
+
echo 'DEEPSEEK_API_KEY=sk-your-key-here' > .env
|
|
45
|
+
|
|
46
|
+
# Option 3: Interactive config
|
|
47
|
+
aurora-ai config
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Basic Usage
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# One-shot task
|
|
54
|
+
aurora-ai run "Explain the Transformer architecture with code examples"
|
|
55
|
+
|
|
56
|
+
# Interactive chat
|
|
57
|
+
aurora-ai chat
|
|
58
|
+
|
|
59
|
+
# Plan-first execution (read-only research, then execute)
|
|
60
|
+
aurora-ai plan "Build a PyTorch training pipeline for CIFAR-10"
|
|
61
|
+
|
|
62
|
+
# List available models
|
|
63
|
+
aurora-ai models
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Research Workflows
|
|
67
|
+
|
|
68
|
+
### Idea Discovery
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
aurora-ai idea "efficient attention mechanisms for long-context LLMs" --num-ideas 8
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Pipeline: literature survey -> idea generation (8-12 ideas) -> novelty check -> critical review -> ranked report
|
|
75
|
+
|
|
76
|
+
### Auto Review Loop
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
aurora-ai review --target ./experiment_results/ --rounds 4
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Cross-model adversarial review: reviewer evaluates work -> executor fixes issues -> re-review -> repeat until score >= 7/10
|
|
83
|
+
|
|
84
|
+
### Paper Writing
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
aurora-ai paper "Efficient Attention via Hierarchical Token Pruning" --assure draft
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Pipeline: paper plan -> figures -> LaTeX writing -> compilation -> improvement loop
|
|
91
|
+
|
|
92
|
+
### Full Research Pipeline
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
aurora-ai pipeline "continual learning without catastrophic forgetting" --write
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
End-to-end: idea discovery -> experiments -> review -> paper
|
|
99
|
+
|
|
100
|
+
## Model Configuration
|
|
101
|
+
|
|
102
|
+
Aurora uses **model aliases** -- user-friendly names that hide the underlying provider:
|
|
103
|
+
|
|
104
|
+
| Alias | Description |
|
|
105
|
+
|-------|-------------|
|
|
106
|
+
| `fast` | Fast & affordable (default) |
|
|
107
|
+
| `pro` | Balanced performance |
|
|
108
|
+
| `deep` | Deep reasoning |
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# Use a specific model
|
|
112
|
+
aurora-ai run --model pro "Complex reasoning task"
|
|
113
|
+
|
|
114
|
+
# Add a custom model
|
|
115
|
+
aurora-ai config add turbo --provider openai --model gpt-4o --key sk-xxx
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Architecture
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
CLI (aurora-ai) -> Agent Loop (tool-use engine) -> LLM Backend (multi-model)
|
|
122
|
+
|
|
|
123
|
+
Tools: read, write, edit, bash, glob, grep, web_search, web_fetch
|
|
124
|
+
|
|
|
125
|
+
Skills: idea-discovery, auto-review, paper-writing, pipeline
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Permission Modes
|
|
129
|
+
|
|
130
|
+
| Mode | Behavior |
|
|
131
|
+
|------|----------|
|
|
132
|
+
| `default` | Ask before destructive operations |
|
|
133
|
+
| `acceptEdits` | Auto-approve file edits (default for `run`) |
|
|
134
|
+
| `bypassPermissions` | Auto-approve everything (use `-y` flag) |
|
|
135
|
+
| `plan` | Read-only, research only |
|
|
136
|
+
|
|
137
|
+
## Development
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
git clone https://github.com/user/aurora-research.git
|
|
141
|
+
cd aurora-research
|
|
142
|
+
uv sync
|
|
143
|
+
uv run pytest
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## License
|
|
147
|
+
|
|
148
|
+
MIT
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "aurora-research"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "Aurora 🌌 — Autonomous AI research scientist. Multi-model, ARIS-powered."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
authors = [
|
|
7
|
+
{ name = "dududu", email = "1816619485@qq.com" }
|
|
8
|
+
]
|
|
9
|
+
requires-python = ">=3.12"
|
|
10
|
+
dependencies = [
|
|
11
|
+
"httpx>=0.28.1",
|
|
12
|
+
"openai>=2.43.0",
|
|
13
|
+
"pydantic>=2.13.4",
|
|
14
|
+
"python-dotenv>=1.2.2",
|
|
15
|
+
"rich>=15.0.0",
|
|
16
|
+
"typer>=0.26.7",
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
[project.urls]
|
|
20
|
+
Homepage = "https://github.com/dududu/aurora-research"
|
|
21
|
+
Repository = "https://github.com/dududu/aurora-research"
|
|
22
|
+
|
|
23
|
+
[project.scripts]
|
|
24
|
+
aurora-ai = "aurora_research.main:app"
|
|
25
|
+
|
|
26
|
+
[build-system]
|
|
27
|
+
requires = ["uv_build>=0.11.23,<0.12.0"]
|
|
28
|
+
build-backend = "uv_build"
|
|
29
|
+
|
|
30
|
+
[dependency-groups]
|
|
31
|
+
dev = [
|
|
32
|
+
"litellm>=1.89.3",
|
|
33
|
+
"pytest>=9.1.1",
|
|
34
|
+
"pytest-asyncio>=1.4.0",
|
|
35
|
+
"ruff>=0.15.18",
|
|
36
|
+
]
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"""Aurora brand identity -- system prompts, agent personality, term filtering.
|
|
2
|
+
|
|
3
|
+
All user-facing content is branded as "Aurora". Underlying model/provider
|
|
4
|
+
names are stripped from responses before display.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
# ── Core system prompt for the Aurora agent ──────────────────────────────
|
|
10
|
+
AURORA_SYSTEM_PROMPT = """You are Aurora 🌌, an autonomous AI research scientist.
|
|
11
|
+
|
|
12
|
+
You help researchers with the full scientific workflow:
|
|
13
|
+
- **Literature search & survey** — multi-source search, summarization, gap analysis
|
|
14
|
+
- **Idea generation & novelty checking** — brainstorming, prior art search, feasibility analysis
|
|
15
|
+
- **Experiment design & execution** — planning, code implementation, GPU deployment, monitoring
|
|
16
|
+
- **Code review & debugging** — quality checks, bug fixes, performance optimization
|
|
17
|
+
- **Paper writing & figure generation** — LaTeX drafting, data visualization, illustration
|
|
18
|
+
- **Review & rebuttal** — adversarial review, scoring, rebuttal drafting
|
|
19
|
+
|
|
20
|
+
## Operating Principles
|
|
21
|
+
- **Be thorough** — verify claims with evidence, not speculation
|
|
22
|
+
- **Be honest** — acknowledge uncertainty and limitations clearly
|
|
23
|
+
- **Be efficient** — plan before executing, avoid unnecessary work
|
|
24
|
+
- **Be scientific** — follow rigorous methodology, document your process
|
|
25
|
+
- **Be safe** — never run destructive commands without clear user approval
|
|
26
|
+
|
|
27
|
+
## Tool Use
|
|
28
|
+
You have access to tools for reading and writing files, running shell commands,
|
|
29
|
+
searching the web, fetching web content, and more. Use them to accomplish
|
|
30
|
+
research tasks. When you need information, search for it rather than guessing.
|
|
31
|
+
|
|
32
|
+
## Output Style
|
|
33
|
+
- Use clear, academic English appropriate for scientific communication
|
|
34
|
+
- Cite sources with URLs when referencing papers or web content
|
|
35
|
+
- Present structured analysis before drawing conclusions
|
|
36
|
+
- When unsure, state your uncertainty explicitly
|
|
37
|
+
|
|
38
|
+
## Research Workflow
|
|
39
|
+
When conducting research, follow this general pattern:
|
|
40
|
+
1. Understand the research question deeply
|
|
41
|
+
2. Search and survey existing work comprehensively
|
|
42
|
+
3. Analyze gaps and generate hypotheses
|
|
43
|
+
4. Design experiments to test hypotheses
|
|
44
|
+
5. Execute carefully and document results
|
|
45
|
+
6. Draw evidence-based conclusions
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
# ── Agent name ─────────────────────────────────────────────────────────
|
|
49
|
+
AGENT_NAME = "Aurora"
|
|
50
|
+
AGENT_DESCRIPTION = "Autonomous AI research scientist"
|
|
51
|
+
AGENT_VERSION = "0.1.0"
|
|
52
|
+
|
|
53
|
+
# ── Terms to filter from LLM output ────────────────────────────────────
|
|
54
|
+
# The agent's system prompt should never mention these.
|
|
55
|
+
# If the LLM produces them anyway, we can optionally filter in display.
|
|
56
|
+
BLOCKED_TERMS: list[str] = [
|
|
57
|
+
# Anthropic / Claude
|
|
58
|
+
"Claude",
|
|
59
|
+
"Anthropic",
|
|
60
|
+
"claude-code",
|
|
61
|
+
"claude_code",
|
|
62
|
+
# DeepSeek
|
|
63
|
+
"DeepSeek",
|
|
64
|
+
"deepseek",
|
|
65
|
+
# OpenAI
|
|
66
|
+
"OpenAI",
|
|
67
|
+
"GPT-4",
|
|
68
|
+
"GPT-5",
|
|
69
|
+
"ChatGPT",
|
|
70
|
+
# Generic
|
|
71
|
+
"LLM provider",
|
|
72
|
+
"underlying model",
|
|
73
|
+
]
|
|
74
|
+
|
|
75
|
+
# ── Display helpers ────────────────────────────────────────────────────
|
|
76
|
+
AGENT_BANNER = r"""
|
|
77
|
+
🌌 Aurora Research Agent
|
|
78
|
+
═══════════════════════════════
|
|
79
|
+
Autonomous AI research scientist
|
|
80
|
+
Type /help for commands, /quit to exit
|
|
81
|
+
"""
|
|
82
|
+
|
|
83
|
+
# ── System prompt presets for different modes ──────────────────────────
|
|
84
|
+
SYSTEM_PROMPT_PLAN = (
|
|
85
|
+
AURORA_SYSTEM_PROMPT
|
|
86
|
+
+ """
|
|
87
|
+
## Plan Mode
|
|
88
|
+
You are currently in PLAN MODE. In this mode:
|
|
89
|
+
- You may ONLY use read-only tools (read files, search web, glob, grep)
|
|
90
|
+
- You may NOT modify files, run commands, or make changes
|
|
91
|
+
- Your goal is to understand the task and create a detailed execution plan
|
|
92
|
+
- Present the plan to the user for approval before any execution
|
|
93
|
+
- Use clear section headers and numbered steps in your plan
|
|
94
|
+
"""
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
SYSTEM_PROMPT_REVIEWER = """You are an independent scientific reviewer working alongside Aurora.
|
|
98
|
+
|
|
99
|
+
Your role is adversarial quality assurance:
|
|
100
|
+
- Critically evaluate research, code, and writing produced by the executor
|
|
101
|
+
- Identify weaknesses, flaws, missing controls, overclaimed results
|
|
102
|
+
- Score work on a 1-10 scale with specific, actionable feedback
|
|
103
|
+
- Suggest concrete improvements for each weakness found
|
|
104
|
+
|
|
105
|
+
## Review Principles
|
|
106
|
+
- **Independence** — read source materials yourself, don't trust the executor's framing
|
|
107
|
+
- **Skepticism** — assume claims are wrong until evidence proves otherwise
|
|
108
|
+
- **Specificity** — every criticism must cite a specific line, figure, or claim
|
|
109
|
+
- **Constructiveness** — every weakness should come with a proposed fix
|
|
110
|
+
- **Calibration** — match review intensity to the venue (workshop < conference < journal)
|
|
111
|
+
|
|
112
|
+
## Output Format
|
|
113
|
+
For each review, provide:
|
|
114
|
+
1. Overall score (1-10)
|
|
115
|
+
2. Verdict: accept / minor revision / major revision / reject
|
|
116
|
+
3. Major strengths (3-5)
|
|
117
|
+
4. Major weaknesses with suggested fixes (3-5)
|
|
118
|
+
5. Minor issues and typos (as a list)
|
|
119
|
+
6. Detailed comments (line-by-line where applicable)
|
|
120
|
+
"""
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def filter_response(text: str) -> str:
|
|
124
|
+
"""Optionally filter blocked terms from LLM output text.
|
|
125
|
+
|
|
126
|
+
This is a safety net — ideally the system prompt prevents the LLM
|
|
127
|
+
from mentioning these terms at all.
|
|
128
|
+
"""
|
|
129
|
+
result = text
|
|
130
|
+
for term in BLOCKED_TERMS:
|
|
131
|
+
# Case-insensitive replacement
|
|
132
|
+
import re
|
|
133
|
+
|
|
134
|
+
result = re.sub(re.escape(term), "[Aurora]", result, flags=re.IGNORECASE)
|
|
135
|
+
return result
|