quantalogic 0.80__py3-none-any.whl → 0.93__py3-none-any.whl
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.
- quantalogic/flow/__init__.py +16 -34
- quantalogic/main.py +11 -6
- quantalogic/tools/tool.py +8 -922
- quantalogic-0.93.dist-info/METADATA +475 -0
- {quantalogic-0.80.dist-info → quantalogic-0.93.dist-info}/RECORD +8 -54
- quantalogic/codeact/TODO.md +0 -14
- quantalogic/codeact/__init__.py +0 -0
- quantalogic/codeact/agent.py +0 -478
- quantalogic/codeact/cli.py +0 -50
- quantalogic/codeact/cli_commands/__init__.py +0 -0
- quantalogic/codeact/cli_commands/create_toolbox.py +0 -45
- quantalogic/codeact/cli_commands/install_toolbox.py +0 -20
- quantalogic/codeact/cli_commands/list_executor.py +0 -15
- quantalogic/codeact/cli_commands/list_reasoners.py +0 -15
- quantalogic/codeact/cli_commands/list_toolboxes.py +0 -47
- quantalogic/codeact/cli_commands/task.py +0 -215
- quantalogic/codeact/cli_commands/tool_info.py +0 -24
- quantalogic/codeact/cli_commands/uninstall_toolbox.py +0 -43
- quantalogic/codeact/config.yaml +0 -21
- quantalogic/codeact/constants.py +0 -9
- quantalogic/codeact/events.py +0 -85
- quantalogic/codeact/examples/README.md +0 -342
- quantalogic/codeact/examples/agent_sample.yaml +0 -29
- quantalogic/codeact/executor.py +0 -186
- quantalogic/codeact/history_manager.py +0 -94
- quantalogic/codeact/llm_util.py +0 -57
- quantalogic/codeact/plugin_manager.py +0 -92
- quantalogic/codeact/prompts/error_format.j2 +0 -11
- quantalogic/codeact/prompts/generate_action.j2 +0 -77
- quantalogic/codeact/prompts/generate_program.j2 +0 -52
- quantalogic/codeact/prompts/response_format.j2 +0 -11
- quantalogic/codeact/react_agent.py +0 -318
- quantalogic/codeact/reasoner.py +0 -185
- quantalogic/codeact/templates/toolbox/README.md.j2 +0 -10
- quantalogic/codeact/templates/toolbox/pyproject.toml.j2 +0 -16
- quantalogic/codeact/templates/toolbox/tools.py.j2 +0 -6
- quantalogic/codeact/templates.py +0 -7
- quantalogic/codeact/tools_manager.py +0 -258
- quantalogic/codeact/utils.py +0 -62
- quantalogic/codeact/xml_utils.py +0 -126
- quantalogic/flow/flow.py +0 -1070
- quantalogic/flow/flow_extractor.py +0 -783
- quantalogic/flow/flow_generator.py +0 -322
- quantalogic/flow/flow_manager.py +0 -676
- quantalogic/flow/flow_manager_schema.py +0 -287
- quantalogic/flow/flow_mermaid.py +0 -365
- quantalogic/flow/flow_validator.py +0 -479
- quantalogic/flow/flow_yaml.linkedin.md +0 -31
- quantalogic/flow/flow_yaml.md +0 -767
- quantalogic/flow/templates/prompt_check_inventory.j2 +0 -1
- quantalogic/flow/templates/system_check_inventory.j2 +0 -1
- quantalogic-0.80.dist-info/METADATA +0 -900
- {quantalogic-0.80.dist-info → quantalogic-0.93.dist-info}/LICENSE +0 -0
- {quantalogic-0.80.dist-info → quantalogic-0.93.dist-info}/WHEEL +0 -0
- {quantalogic-0.80.dist-info → quantalogic-0.93.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,475 @@
|
|
1
|
+
Metadata-Version: 2.3
|
2
|
+
Name: quantalogic
|
3
|
+
Version: 0.93
|
4
|
+
Summary: QuantaLogic ReAct Agents
|
5
|
+
License: MIT
|
6
|
+
Author: Raphaël MANSUY
|
7
|
+
Author-email: raphael.mansuy@gmail.com
|
8
|
+
Requires-Python: >=3.10,<4.0
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
11
|
+
Classifier: Programming Language :: Python :: 3.10
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
15
|
+
Requires-Dist: aiofiles (>=24.1.0,<25.0.0)
|
16
|
+
Requires-Dist: beautifulsoup4 (>=4.12.3,<5.0.0)
|
17
|
+
Requires-Dist: boto3 (>=1.34.0,<2.0.0)
|
18
|
+
Requires-Dist: botocore (>=1.29.123,<2.0.0)
|
19
|
+
Requires-Dist: click (>=8.1.8,<9.0.0)
|
20
|
+
Requires-Dist: duckduckgo-search (>=7.2.1,<8.0.0)
|
21
|
+
Requires-Dist: faker (>=36.1.1,<37.0.0)
|
22
|
+
Requires-Dist: fuzzywuzzy (>=0.18.0,<0.19.0)
|
23
|
+
Requires-Dist: google-search-results (>=2.4.2,<3.0.0)
|
24
|
+
Requires-Dist: html2text (>=2024.2.26,<2025.0.0)
|
25
|
+
Requires-Dist: instructor (>=1.7.2,<2.0.0)
|
26
|
+
Requires-Dist: jinja2 (>=3.1.5,<4.0.0)
|
27
|
+
Requires-Dist: litellm (>=1.63.14,<2.0.0)
|
28
|
+
Requires-Dist: loguru (>=0.7.3,<0.8.0)
|
29
|
+
Requires-Dist: markdownify (>=0.14.1,<0.15.0)
|
30
|
+
Requires-Dist: markitdown (>=0.0.1a3,<0.0.2)
|
31
|
+
Requires-Dist: networkx (>=3.2.1,<4.0.0)
|
32
|
+
Requires-Dist: openai (>=1.68.0,<2.0.0)
|
33
|
+
Requires-Dist: pathspec (>=0.12.1,<0.13.0)
|
34
|
+
Requires-Dist: prompt-toolkit (>=3.0.48,<4.0.0)
|
35
|
+
Requires-Dist: psutil (>=7.0.0,<8.0.0)
|
36
|
+
Requires-Dist: pydantic (>=2.10.4,<3.0.0)
|
37
|
+
Requires-Dist: pytest-asyncio (>=0.25.3,<0.26.0)
|
38
|
+
Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
|
39
|
+
Requires-Dist: quantalogic-flow (>=0.6.2,<0.7.0)
|
40
|
+
Requires-Dist: quantalogic-pythonbox (>=0.9.11)
|
41
|
+
Requires-Dist: quantalogic-toolbox (>=0.8.0)
|
42
|
+
Requires-Dist: requests (>=2.32.3,<3.0.0)
|
43
|
+
Requires-Dist: rich (>=13.9.4,<14.0.0)
|
44
|
+
Requires-Dist: serpapi (>=0.1.5,<0.2.0)
|
45
|
+
Requires-Dist: sqlalchemy (>=2.0.25,<3.0.0)
|
46
|
+
Requires-Dist: tenacity (>=9.0.0,<10.0.0)
|
47
|
+
Requires-Dist: tree-sitter (>=0.23.2,<0.24.0)
|
48
|
+
Requires-Dist: tree-sitter-c (>=0.23.4,<0.24.0)
|
49
|
+
Requires-Dist: tree-sitter-cpp (>=0.23.4,<0.24.0)
|
50
|
+
Requires-Dist: tree-sitter-go (>=0.23.4,<0.24.0)
|
51
|
+
Requires-Dist: tree-sitter-java (>=0.23.5,<0.24.0)
|
52
|
+
Requires-Dist: tree-sitter-javascript (>=0.23.1,<0.24.0)
|
53
|
+
Requires-Dist: tree-sitter-python (>=0.23.6,<0.24.0)
|
54
|
+
Requires-Dist: tree-sitter-rust (>=0.23.2,<0.24.0)
|
55
|
+
Requires-Dist: tree-sitter-scala (>=0.23.4,<0.24.0)
|
56
|
+
Requires-Dist: tree-sitter-typescript (>=0.23.2,<0.24.0)
|
57
|
+
Requires-Dist: types-pyyaml (>=6.0.12.20241230,<7.0.0.0)
|
58
|
+
Requires-Dist: typing-extensions (>=4.12.2,<5.0.0)
|
59
|
+
Project-URL: Documentation, https://github.com/quantalogic/quantalogic#readme
|
60
|
+
Project-URL: Homepage, https://github.com/quantalogic/quantalogic
|
61
|
+
Project-URL: Repository, https://github.com/quantalogic/quantalogic
|
62
|
+
Description-Content-Type: text/markdown
|
63
|
+
|
64
|
+
# QuantaLogic: Unleash AI for Coding, Automation, and Conversations
|
65
|
+
|
66
|
+
**QuantaLogic** is your all-in-one AI framework for building smart agents that code, automate workflows, and chat like pros. Powered by large language models (LLMs) and a versatile toolset, it offers three killer modes: **ReAct** for tackling tough tasks, **Flow** for streamlined processes, and **Chat** for natural, tool-savvy conversations. Whether you’re a coder, a business innovator, or an AI enthusiast, QuantaLogic delivers fast, flexible, and fun solutions. Let’s blast off!
|
67
|
+
|
68
|
+
> **New: CodeAct**
|
69
|
+
>
|
70
|
+
> QuantaLogic CodeAct is a powerful, modular extension for creating AI agents that not only reason and act (ReAct) but also use **executable code as their primary action language**. Inspired by the latest research, CodeAct enables agents to solve complex, multi-step tasks by generating, running, and iterating on Python code, all while maintaining context and leveraging a robust tool system. This makes it ideal for advanced automation, mathematical problem-solving, and user-friendly conversational interfaces.
|
71
|
+
|
72
|
+
[📖 Full Docs](https://quantalogic.github.io/quantalogic/) | [⚡ Quick Guide](./docs/howto/howto.md)
|
73
|
+
|
74
|
+

|
75
|
+
|
76
|
+
---
|
77
|
+
|
78
|
+
## Why QuantaLogic?
|
79
|
+
|
80
|
+
**Why pick QuantaLogic?** It turns the complexity of LLMs into practical magic, making AI work for *you*. From coding scripts to automating business tasks or chatting about the universe, QuantaLogic is your creative sidekick, saving time and unlocking possibilities.
|
81
|
+
|
82
|
+
- **Versatile Power**: Code, automate, or converse—handle any task.
|
83
|
+
- **Your Rules**: Customize agents and tools to match your needs.
|
84
|
+
- **Scales Big**: From CLI hacks to enterprise workflows.
|
85
|
+
- **Free & Open**: Apache 2.0 license—use it, tweak it, share it.
|
86
|
+
|
87
|
+
> *“AI should spark joy, not stress. QuantaLogic makes it happen!”*
|
88
|
+
|
89
|
+
---
|
90
|
+
|
91
|
+
## What is QuantaLogic?
|
92
|
+
|
93
|
+
**What’s the vibe?** QuantaLogic is a Python framework that harnesses LLMs (like GPT-4o, Claude, or DeepSeek) to create AI agents. These agents wield tools for coding, searching, file ops, and more, all accessible via a slick CLI or Python API. With **ReAct**, **Flow**, and **Chat** modes, it adapts to any challenge—dynamic tasks, structured pipelines, or friendly chats.
|
94
|
+
|
95
|
+
### Core Features
|
96
|
+
- **ReAct Mode**: Solve problems with LLM reasoning + tool actions.
|
97
|
+
- **Flow Mode**: Craft structured workflows with nodes and transitions.
|
98
|
+
- **Chat Mode**: Converse naturally with tool-calling smarts.
|
99
|
+
- **LLM Integration**: Supports OpenAI, Anthropic, DeepSeek via LiteLLM.
|
100
|
+
- **Toolset**: Code execution, web search, file management, and custom tools.
|
101
|
+
- **Smart Memory**: Keeps context lean for long tasks or chats.
|
102
|
+
- **Real-Time Insights**: Track progress with events and logs.
|
103
|
+
- **Safe Execution**: Docker-based tool isolation.
|
104
|
+
|
105
|
+
---
|
106
|
+
|
107
|
+
## CodeAct vs ReAct: What's the Difference?
|
108
|
+
|
109
|
+
QuantaLogic supports both the classic **ReAct** paradigm and its advanced extension, **CodeAct**:
|
110
|
+
|
111
|
+
- **ReAct** (Reason + Act):
|
112
|
+
- Based on the [ReAct paper](https://arxiv.org/abs/2210.03629), this approach lets agents *reason* (think step-by-step) and *act* (use tools or code) in a loop. It's great for tasks where language models need to plan, use tools, and adapt to feedback.
|
113
|
+
|
114
|
+
- **CodeAct**:
|
115
|
+
- Builds on ReAct by making **executable Python code** the main language for agent actions. Instead of just calling tools or outputting text, the agent writes and runs code, observes the results (including errors), and iterates until the task is solved.
|
116
|
+
- This approach is inspired by recent research ([Yang et al., 2024](https://arxiv.org/html/2402.01030v4)) showing that executable code actions enable more capable and reliable LLM agents.
|
117
|
+
- CodeAct is ideal for complex, multi-step tasks, advanced automation, and scenarios where precise, verifiable actions are needed.
|
118
|
+
|
119
|
+
**Summary**:
|
120
|
+
- Use **ReAct** for flexible reasoning with tool use.
|
121
|
+
- Use **CodeAct** for tasks where generating and executing code is the best way to solve a problem or automate a workflow.
|
122
|
+
|
123
|
+
Here’s how it flows:
|
124
|
+
|
125
|
+
```mermaid
|
126
|
+
graph TD
|
127
|
+
A[User] -->|Input| B[QuantaLogic]
|
128
|
+
B --> C1[Pure ReAct]
|
129
|
+
B --> C2[CodeAct]
|
130
|
+
B --> D[Flow: Automate]
|
131
|
+
B --> E[Chat: Converse]
|
132
|
+
C1 --> F1[LLM + Tools]
|
133
|
+
C2 --> F2[LLM + Code Actions]
|
134
|
+
D --> G[Nodes + Engine]
|
135
|
+
E --> H[Persona + Tools]
|
136
|
+
F1 --> I[Output]
|
137
|
+
F2 --> I
|
138
|
+
G --> I
|
139
|
+
H --> I
|
140
|
+
I --> A
|
141
|
+
style A fill:#ffe5b4,stroke:#555
|
142
|
+
style B fill:#cfe0e8,stroke:#555
|
143
|
+
style C1 fill:#e6e6fa,stroke:#555
|
144
|
+
style C2 fill:#ffd1dc,stroke:#555
|
145
|
+
style D fill:#c8e6c9,stroke:#555
|
146
|
+
style E fill:#fff9c4,stroke:#555
|
147
|
+
style F1 fill:#f0f0f0,stroke:#555
|
148
|
+
style F2 fill:#f0f0f0,stroke:#555
|
149
|
+
style G fill:#d0f0c0,stroke:#555
|
150
|
+
style H fill:#ffefdb,stroke:#555
|
151
|
+
style I fill:#cfe0e8,stroke:#555
|
152
|
+
```
|
153
|
+
|
154
|
+
For detailed CodeAct documentation, see [CodeAct Module](quantalogic_codeact/README.md).
|
155
|
+
|
156
|
+
---
|
157
|
+
|
158
|
+
## How to Get Started
|
159
|
+
|
160
|
+
**How do you dive in?** Install it, set it up, and start creating. We’ll guide you through setup, examples, and pro tips to master QuantaLogic in minutes.
|
161
|
+
|
162
|
+
### Installation & Setup
|
163
|
+
|
164
|
+
#### Prerequisites
|
165
|
+
- Python >= 3.10+ (required)
|
166
|
+
- Docker (optional; sandboxed execution)
|
167
|
+
- Poetry (optional; for source builds)
|
168
|
+
|
169
|
+
#### Installation
|
170
|
+
Install the core CLI and (optionally) CodeAct extension:
|
171
|
+
```bash
|
172
|
+
pip install quantalogic
|
173
|
+
pip install quantalogic-codeact
|
174
|
+
```
|
175
|
+
Or with pipx:
|
176
|
+
```bash
|
177
|
+
pipx install quantalogic
|
178
|
+
pipx install quantalogic-codeact
|
179
|
+
```
|
180
|
+
|
181
|
+
#### Developer Build (optional)
|
182
|
+
```bash
|
183
|
+
git clone https://github.com/quantalogic/quantalogic.git
|
184
|
+
cd quantalogic
|
185
|
+
python -m venv .venv
|
186
|
+
# macOS/Linux
|
187
|
+
source .venv/bin/activate
|
188
|
+
# Windows
|
189
|
+
.venv\\Scripts\\activate
|
190
|
+
poetry install
|
191
|
+
```
|
192
|
+
|
193
|
+
#### Verify Installation
|
194
|
+
```bash
|
195
|
+
quantalogic --help
|
196
|
+
quantalogic_codeact --help
|
197
|
+
```
|
198
|
+
|
199
|
+
#### Configure API Keys
|
200
|
+
```bash
|
201
|
+
cat <<EOF > .env
|
202
|
+
OPENAI_API_KEY=sk-your-key
|
203
|
+
DEEPSEEK_API_KEY=ds-your-key
|
204
|
+
EOF
|
205
|
+
```
|
206
|
+
> For advanced settings, see [docs/config.md](./docs/config.md)
|
207
|
+
|
208
|
+
---
|
209
|
+
|
210
|
+
### Quick Start Examples
|
211
|
+
|
212
|
+
Let’s see QuantaLogic shine with these quick demos.
|
213
|
+
|
214
|
+
#### CLI: Solve a Task
|
215
|
+
```bash
|
216
|
+
quantalogic task "Write a Python script to reverse a string"
|
217
|
+
```
|
218
|
+
**Output**: A clean, working string-reversal script!
|
219
|
+
|
220
|
+
#### CLI: Chat It Up
|
221
|
+
```bash
|
222
|
+
quantalogic chat --persona "You’re a cosmic guide" "What’s the tallest mountain?"
|
223
|
+
```
|
224
|
+
**Output**: A lively response, possibly with search results!
|
225
|
+
|
226
|
+
#### CLI: CodeAct Shell
|
227
|
+
```bash
|
228
|
+
quantalogic_codeact shell
|
229
|
+
```
|
230
|
+
|
231
|
+
#### CLI: CodeAct Task
|
232
|
+
```bash
|
233
|
+
quantalogic_codeact task "Solve 2 + 2" --model deepseek/deepseek-chat --timeout 60 --streaming
|
234
|
+
```
|
235
|
+
|
236
|
+
#### Python: ReAct Agent
|
237
|
+
```python
|
238
|
+
from quantalogic import Agent
|
239
|
+
|
240
|
+
agent = Agent(model_name="deepseek/deepseek-chat")
|
241
|
+
result = agent.solve_task("Write a Python function to reverse a string")
|
242
|
+
print(result)
|
243
|
+
# Output: "def reverse_string(s): return s[::-1]"
|
244
|
+
```
|
245
|
+
|
246
|
+
#### Python: Chat Mode
|
247
|
+
```python
|
248
|
+
from quantalogic import Agent, DuckDuckGoSearchTool
|
249
|
+
|
250
|
+
agent = Agent(
|
251
|
+
model_name="gpt-4o-mini",
|
252
|
+
chat_system_prompt="You’re a curious explorer",
|
253
|
+
tools=[DuckDuckGoSearchTool()]
|
254
|
+
)
|
255
|
+
response = agent.chat("What’s new in quantum computing?")
|
256
|
+
print(response)
|
257
|
+
# Output: "I checked the latest news! Here’s a breakthrough in quantum computing: [details]."
|
258
|
+
```
|
259
|
+
|
260
|
+
---
|
261
|
+
|
262
|
+
### The Three Modes: Your Superpowers
|
263
|
+
|
264
|
+
#### 1. ReAct Framework: Dynamic Task-Solving
|
265
|
+
**Why**: Tackle open-ended tasks like coding or research with creative flair.
|
266
|
+
**What**: Combines LLM reasoning with tools to iterate toward solutions.
|
267
|
+
**How**: The agent thinks, acts, and loops until the task is complete.
|
268
|
+
|
269
|
+
**Example**: Debug some code.
|
270
|
+
```bash
|
271
|
+
quantalogic task "Debug this Python code: def add(a, b): return a - b"
|
272
|
+
```
|
273
|
+
**Flow**:
|
274
|
+
```mermaid
|
275
|
+
sequenceDiagram
|
276
|
+
User->>Agent: "Debug code"
|
277
|
+
Agent->>LLM: "Analyze error"
|
278
|
+
LLM-->>Agent: "Subtraction should be addition"
|
279
|
+
Agent->>PythonTool: "Fix code"
|
280
|
+
PythonTool-->>Agent: "def add(a, b): return a + b"
|
281
|
+
Agent-->>User: "Fixed code!"
|
282
|
+
```
|
283
|
+
|
284
|
+
**Memorization Trick**: ReAct = **R**eason + **A**ct, like a detective solving a mystery step-by-step.
|
285
|
+
|
286
|
+
#### 2. Flow Module: Structured Automation
|
287
|
+
**Why**: Perfect for repeatable processes like data pipelines or content creation.
|
288
|
+
**What**: A system of nodes (tasks) connected by transitions, run by an engine.
|
289
|
+
**How**: Define nodes, link them, and let the workflow hum.
|
290
|
+
|
291
|
+
**Example**: Process text.
|
292
|
+
```python
|
293
|
+
from quantalogic.flow import Workflow, Nodes
|
294
|
+
|
295
|
+
@Nodes.define(output="processed")
|
296
|
+
def uppercase(text: str) -> str:
|
297
|
+
return text.upper()
|
298
|
+
|
299
|
+
workflow = Workflow("uppercase").build()
|
300
|
+
result = await workflow.run({"text": "hello world"})
|
301
|
+
print(result["processed"]) # "HELLO WORLD"
|
302
|
+
```
|
303
|
+
|
304
|
+
**Diagram**:
|
305
|
+
```mermaid
|
306
|
+
graph LR
|
307
|
+
A[Start] --> B[Uppercase Node]
|
308
|
+
B --> C[End]
|
309
|
+
A -->|Observer| D[Log: NODE_START]
|
310
|
+
B -->|Observer| E[Log: NODE_END]
|
311
|
+
style A fill:#dfd,stroke:#333
|
312
|
+
style C fill:#dfd,stroke:#333
|
313
|
+
```
|
314
|
+
|
315
|
+
**Memorization Trick**: Flow = a recipe—nodes are ingredients, transitions are steps, and the engine is the chef.
|
316
|
+
|
317
|
+
**Learn More**: Explore the [Flow YAML DSL Specification](./quantalogic/flow/flow_yaml.md) for advanced workflows.
|
318
|
+
|
319
|
+
#### 3. Chat Mode: Natural Conversations
|
320
|
+
**Why**: Ideal for interactive Q&A or quick info with a touch of tool power.
|
321
|
+
**What**: A conversational AI that calls tools when needed, keeping chats smooth.
|
322
|
+
**How**: Engages naturally, using tools via ReAct’s XML system.
|
323
|
+
|
324
|
+
**Example**: Check the weather.
|
325
|
+
```python
|
326
|
+
from quantalogic import Agent
|
327
|
+
|
328
|
+
agent = Agent(model_name="gpt-4o", chat_system_prompt="You’re a travel guide")
|
329
|
+
response = agent.chat("What’s the weather in Paris?")
|
330
|
+
print(response)
|
331
|
+
# Output: "I’ll look it up! Paris is sunny, 20°C today."
|
332
|
+
```
|
333
|
+
|
334
|
+
**Memorization Trick**: Chat = your AI bestie—talks, listens, and grabs tools like a search engine when curious.
|
335
|
+
|
336
|
+
---
|
337
|
+
|
338
|
+
### Which Mode to Pick?
|
339
|
+
|
340
|
+
| Mode | Best For | Style | Tools |
|
341
|
+
|------------|------------------------------|---------------------|--------------------|
|
342
|
+
| **ReAct** | Coding, research, Q&A | Iterative, adaptive | Dynamic, on-demand |
|
343
|
+
| **Flow** | Pipelines, automation | Structured, orderly | Node-specific |
|
344
|
+
| **Chat** | Conversations, quick queries | Free-flowing | Contextual |
|
345
|
+
|
346
|
+
**Pro Tip**: Combine modes! Use Chat for user input, Flow for backend automation, and ReAct for complex tasks.
|
347
|
+
|
348
|
+
---
|
349
|
+
|
350
|
+
### CLI Mastery
|
351
|
+
|
352
|
+
The QuantaLogic CLI is your mission control. Here’s the scoop:
|
353
|
+
|
354
|
+
```bash
|
355
|
+
quantalogic [COMMAND] [OPTIONS]
|
356
|
+
```
|
357
|
+
|
358
|
+
#### Commands
|
359
|
+
- **task**: Run a task.
|
360
|
+
```bash
|
361
|
+
quantalogic task "Calculate 5 + 3" --model-name gpt-4o-mini
|
362
|
+
```
|
363
|
+
- **chat**: Start a conversation.
|
364
|
+
```bash
|
365
|
+
quantalogic chat --persona "AI expert" "What’s the latest in machine learning?"
|
366
|
+
```
|
367
|
+
- **list-models**: List LLMs.
|
368
|
+
```bash
|
369
|
+
quantalogic list-models --search claude
|
370
|
+
```
|
371
|
+
|
372
|
+
#### Key Options
|
373
|
+
- `--model-name`: Select your LLM (e.g., `anthropic/claude-3.5-sonnet`).
|
374
|
+
- `--mode`: Choose ReAct, Flow, or Chat.
|
375
|
+
- `--tool-mode`: Prioritize tools in Chat (e.g., `code`).
|
376
|
+
- `--verbose`: See detailed logs.
|
377
|
+
|
378
|
+
**Insider Secret**: Add `--no-stream` for cleaner output on slow terminals!
|
379
|
+
|
380
|
+
---
|
381
|
+
|
382
|
+
### Advanced Tricks
|
383
|
+
|
384
|
+
#### Build Custom Tools
|
385
|
+
Create your own tools for unique tasks:
|
386
|
+
```python
|
387
|
+
from quantalogic.tools import Tool
|
388
|
+
|
389
|
+
class TimeTool(Tool):
|
390
|
+
name = "time_tool"
|
391
|
+
def execute(self) -> str:
|
392
|
+
from datetime import datetime
|
393
|
+
return f"Current time: {datetime.now()}"
|
394
|
+
|
395
|
+
agent = Agent(model_name="gpt-4o")
|
396
|
+
agent.add_tool(TimeTool())
|
397
|
+
```
|
398
|
+
|
399
|
+
#### Go Async
|
400
|
+
Boost performance with async:
|
401
|
+
```python
|
402
|
+
import asyncio
|
403
|
+
from quantalogic import Agent
|
404
|
+
|
405
|
+
async def main():
|
406
|
+
agent = Agent(model_name="gpt-4o")
|
407
|
+
result = await agent.async_chat("Tell me a joke", streaming=True)
|
408
|
+
print(result)
|
409
|
+
|
410
|
+
asyncio.run(main())
|
411
|
+
```
|
412
|
+
|
413
|
+
#### Monitor Events
|
414
|
+
Track every step:
|
415
|
+
```python
|
416
|
+
from quantalogic import Agent, console_print_events
|
417
|
+
|
418
|
+
agent = Agent(model_name="gpt-4o")
|
419
|
+
agent.event_emitter.on(["task_start", "tool_execution_start"], console_print_events)
|
420
|
+
result = agent.solve_task("Write a poem")
|
421
|
+
```
|
422
|
+
|
423
|
+
---
|
424
|
+
|
425
|
+
### Memorization Hacks
|
426
|
+
- **Modes as Jobs**: ReAct = Freelancer (flexible tasks), Flow = Engineer (structured builds), Chat = Barista (serves up chats).
|
427
|
+
- **Tools as Toys**: `PythonTool` = LEGO for coding, `SearchTool` = binoculars for info.
|
428
|
+
- **Workflows as Maps**: Nodes = destinations, transitions = roads, engine = GPS.
|
429
|
+
|
430
|
+
---
|
431
|
+
|
432
|
+
### Simplified Concepts
|
433
|
+
|
434
|
+
**Tools 101**: Picture QuantaLogic as a handyman. You ask for a fix (task). It grabs tools—a hammer (`WriteFileTool`) or screwdriver (`SearchTool`)—to get the job done right.
|
435
|
+
|
436
|
+
**Memory Magic**: Imagine a sticky note board. As tasks or chats grow, QuantaLogic condenses old notes to keep space for new ones—efficient and clutter-free.
|
437
|
+
|
438
|
+
|
439
|
+
### Contributing
|
440
|
+
|
441
|
+
**Why**: Make AI better for everyone!
|
442
|
+
**What**: Add features, squash bugs, or suggest ideas.
|
443
|
+
**How**: Fork, branch, code, and PR. Check [CONTRIBUTING.md](./CONTRIBUTING.md).
|
444
|
+
|
445
|
+
---
|
446
|
+
|
447
|
+
### License
|
448
|
+
|
449
|
+
QuantaLogic is **Apache 2.0**—free to use, modify, and distribute. Built with ❤️ by Raphaël MANSUY at [QuantaLogic](https://www.quantalogic.app).
|
450
|
+
|
451
|
+
---
|
452
|
+
|
453
|
+
### API Keys & Models
|
454
|
+
|
455
|
+
Power up with LLM API keys in a `.env` file:
|
456
|
+
```bash
|
457
|
+
OPENAI_API_KEY=sk-your-key
|
458
|
+
ANTHROPIC_API_KEY=your-key
|
459
|
+
DEEPSEEK_API_KEY=ds-your-key
|
460
|
+
```
|
461
|
+
|
462
|
+
**Top Models**:
|
463
|
+
- `openai/gpt-4o-mini`: Speedy and budget-friendly.
|
464
|
+
- `anthropic/claude-3.5-sonnet`: Razor-sharp reasoning.
|
465
|
+
- `deepseek/deepseek-reasoner`: Deep problem-solving.
|
466
|
+
|
467
|
+
**Insider Secret**: Set `LM_STUDIO_API_BASE` for local LLMs—great for offline work!
|
468
|
+
|
469
|
+
---
|
470
|
+
|
471
|
+
### Let’s Build the Future
|
472
|
+
|
473
|
+
QuantaLogic is your launchpad for AI awesomeness. Install it, try the examples, and create something epic—code, workflows, or chats. Star the repo, join the community, and let’s make AI unstoppable!
|
474
|
+
|
475
|
+
[](https://star-history.com/#quantalogic/quantalogic?Date)
|
@@ -2,41 +2,6 @@ quantalogic/__init__.py,sha256=qFbvfHOd_chAu536pH816E3uo6CdyAgXCpQOwMXXVnY,1076
|
|
2
2
|
quantalogic/agent.py,sha256=y0ncyZCL9VPRFD6tLNOCCo3GD6okGEoFYjUfVtJHn-g,75060
|
3
3
|
quantalogic/agent_config.py,sha256=HNXHmu3BiT4q9i-L2wJKUh6PuiZ_ryTNaB7ga24kaJo,8334
|
4
4
|
quantalogic/agent_factory.py,sha256=soActorasOqs5g6NmlyeEjRYbJceIGGg7wuUS-vA898,6878
|
5
|
-
quantalogic/codeact/TODO.md,sha256=TfKjRGUz-8q0pLrLATxleMW-E8pw4sOJP0nu82QlpMA,335
|
6
|
-
quantalogic/codeact/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
-
quantalogic/codeact/agent.py,sha256=WRDQ2FXxGXoECcMU6zR8yHUC4JEB00nGAypyyslZHBw,24092
|
8
|
-
quantalogic/codeact/cli.py,sha256=jIpxaLmEjFjl9lER4-ccNDn4mranKRpwA6oGihp1njY,2193
|
9
|
-
quantalogic/codeact/cli_commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
|
-
quantalogic/codeact/cli_commands/create_toolbox.py,sha256=Z__5XbcN6h4Z67IkHRh09ZaJLKrMxjPa_3oS5QHYI-Y,1680
|
11
|
-
quantalogic/codeact/cli_commands/install_toolbox.py,sha256=-ZGT2RSpG_TmQGzglHPgd3F9zCPBIibmHenTXMKSLfI,643
|
12
|
-
quantalogic/codeact/cli_commands/list_executor.py,sha256=Dt09zerX-2W8dhxKJxfUvpmLanTj4YmPBUatFLucGMs,418
|
13
|
-
quantalogic/codeact/cli_commands/list_reasoners.py,sha256=CFLrXOgfapN0o8HvhkZmrT2tGhmsC7RMfSGdouV29mE,418
|
14
|
-
quantalogic/codeact/cli_commands/list_toolboxes.py,sha256=3z_UHNdbVniQcpm6k9i-D6bsMspmmL4oCZZtv4ueKmw,1837
|
15
|
-
quantalogic/codeact/cli_commands/task.py,sha256=K48Ne52dq_J8ydwX6diyyAB9oxbIxdBs4dFbwGeGyVo,9583
|
16
|
-
quantalogic/codeact/cli_commands/tool_info.py,sha256=6YAxMvMsuvs72rVeJ1UqvUOxjR40MOWvClLIMNtUNrk,977
|
17
|
-
quantalogic/codeact/cli_commands/uninstall_toolbox.py,sha256=Spf7Jou6PIzvSDEDnShivTunMpxUK2sv2b2NgqRNXqc,1833
|
18
|
-
quantalogic/codeact/config.yaml,sha256=-L1P3Du2pGHRGsMf-cgGM46H2dUHE8UpZheFBkpakWc,357
|
19
|
-
quantalogic/codeact/constants.py,sha256=izE67Yie2QO6qnpV2mQSrlqKOprkf_0_1P7cOBHqURk,244
|
20
|
-
quantalogic/codeact/events.py,sha256=fjVQEDpf-8tAmPQpnlX_kj9UtmW3A-Si3iBVEeFY0Bs,1622
|
21
|
-
quantalogic/codeact/examples/README.md,sha256=RvwhCaaCiBj13w7rFg3AtLL-SqnYZkau1W5Vq7QHsm4,9286
|
22
|
-
quantalogic/codeact/examples/agent_sample.yaml,sha256=K2bo48rgI7DxFzWgJiN5NrfIdSTTDqqJx7_ZzpnSU2Q,672
|
23
|
-
quantalogic/codeact/executor.py,sha256=tbYJgezlikfkedpiRnzNxxt4T6yaPca-uaoSRuTbyAM,8166
|
24
|
-
quantalogic/codeact/history_manager.py,sha256=eKbE9vYcZ7PC1zXlPqYrFXq62H2ihYDJg6fXZ-WUuXw,3920
|
25
|
-
quantalogic/codeact/llm_util.py,sha256=LgnCZXSkwB2QEOfXFmJLDyFHnRtFKCrIN31rv_vCAz8,1849
|
26
|
-
quantalogic/codeact/plugin_manager.py,sha256=l-Bg8JeRDtjhsWAYINAPc_NvNBkXnzLSawzdnoTJsV8,3697
|
27
|
-
quantalogic/codeact/prompts/error_format.j2,sha256=_8fNWxDr3U1Fq8SdzwRIBNsNG1WvPL9IAaos9Enf1C0,258
|
28
|
-
quantalogic/codeact/prompts/generate_action.j2,sha256=WD2SZNrYlmzCHhkYiOaQE9zRw8qvl_Hf-budABpSIKU,4934
|
29
|
-
quantalogic/codeact/prompts/generate_program.j2,sha256=YO-ubsk87ki60-4BNxYOd-rEDxwfd0qWrSHGC79HxNY,3234
|
30
|
-
quantalogic/codeact/prompts/response_format.j2,sha256=TwO43dEG-3justNigpX4yyzGR1TGS3YDlpJQq8Z5Vf4,355
|
31
|
-
quantalogic/codeact/react_agent.py,sha256=OyUF-6iShASMn0bkk5btMwpP15BPyLwgzXxjws18bxA,14020
|
32
|
-
quantalogic/codeact/reasoner.py,sha256=qZ0Td7PFEaZONg0pVzM6dbCEQU-rEk4rCP4jUAn33yM,6827
|
33
|
-
quantalogic/codeact/templates/toolbox/README.md.j2,sha256=gBkMp806acce7rIkEFoqgc8mgJqIpBTpQ64B96gzhPo,94
|
34
|
-
quantalogic/codeact/templates/toolbox/pyproject.toml.j2,sha256=6JkxVjsq0wK-f5HtgifYYWcDHZ4kF6ww6WYMpE5Zh0k,388
|
35
|
-
quantalogic/codeact/templates/toolbox/tools.py.j2,sha256=G7gOBYlTqqOIYf22eIYVZr5qvYO2gxv2Cu4V6BpniSM,176
|
36
|
-
quantalogic/codeact/templates.py,sha256=bpMOKfN512CT0dmAT6trMmlrk0qifLeTs3s5N4G4vL8,327
|
37
|
-
quantalogic/codeact/tools_manager.py,sha256=1WrNWWYiRKFY8tjw5MlIPpyTsvjftMDg8dsNcu9aSZw,11684
|
38
|
-
quantalogic/codeact/utils.py,sha256=qkxIj9-uOu988I-4J7rVnpANs9nhQ6a44c4yenflva8,2295
|
39
|
-
quantalogic/codeact/xml_utils.py,sha256=RgJfjw-RhCK2LAqI-7FeP2bIqhanUlMDsbici9uKDvY,5584
|
40
5
|
quantalogic/coding_agent.py,sha256=WFfabRwwPZFV3Pw3seLKpSrFE9Li4pz8Z8mCdsUIDi8,5532
|
41
6
|
quantalogic/config.py,sha256=bmPI2rvQ9M8Zdl1H7K588JgJdnkxSE0L5_i5aBqsagA,564
|
42
7
|
quantalogic/console_print_events.py,sha256=yDtfOr7s5r_gLTgwkl_XoKSkUqNRZhqqq4hwR_oJsUw,2050
|
@@ -44,22 +9,11 @@ quantalogic/console_print_token.py,sha256=5IRVoPhwWZtSc4LpNoAsCQhCB_RnAW9chycGgy
|
|
44
9
|
quantalogic/create_custom_agent.py,sha256=g9qh6w436wkiOYVii6f3SPRRY0wyPQ_bL07WnD1JSx0,19989
|
45
10
|
quantalogic/docs_cli.py,sha256=Ie6NwKQuxLKwVQ-cjhFMCttXeiHDjGhNY4hSmMtc0Qg,1664
|
46
11
|
quantalogic/event_emitter.py,sha256=wxzXrNhGiXAaa4EX7qTZEa81i3Mn4JKaU_T6E05QclE,16805
|
47
|
-
quantalogic/flow/__init__.py,sha256=
|
48
|
-
quantalogic/flow/flow.py,sha256=4430Fzhsua-0SLtnf3zEsc9WXdJW2JBwgp1MfkZpCb4,46374
|
49
|
-
quantalogic/flow/flow_extractor.py,sha256=BkG2_XRnHtgOsH1RocunN-O2Z821ApzfcwR6f3HsFi0,36954
|
50
|
-
quantalogic/flow/flow_generator.py,sha256=pAGGo99hq5VeAMAcoCnVjXX2ziJJ1jWKBLUPKJmWOW8,17368
|
51
|
-
quantalogic/flow/flow_manager.py,sha256=orztXcxDCKZ0p7SUX2p8V4_HvKOba-ufX5MfuW9p8xs,31523
|
52
|
-
quantalogic/flow/flow_manager_schema.py,sha256=0G6Oojuo_NacK0TKrNyB6DKkkTxmOQfBvh3hhVdAlqU,11539
|
53
|
-
quantalogic/flow/flow_mermaid.py,sha256=TvQyobLK6Idg5q0rQH1Vr_XmuovwxbFKsdZaIxEJqwY,16242
|
54
|
-
quantalogic/flow/flow_validator.py,sha256=6T4XUPjiHX_oKQVY_dXmRK8aICHnvQCKcyXAaomXtWY,23581
|
55
|
-
quantalogic/flow/flow_yaml.linkedin.md,sha256=OH1Hoij5ijRZqDju7aaP2GbbTvOcPotBlkaBMajc4UM,1040
|
56
|
-
quantalogic/flow/flow_yaml.md,sha256=NIf2MWsmfckVqCQmTLfyo__B_lHg7NcSRQEjCxf7Xg0,27321
|
57
|
-
quantalogic/flow/templates/prompt_check_inventory.j2,sha256=ecIZE9rpSubhKxSubQGVaQkQNsM9oMPW-WSkkn4q9VY,119
|
58
|
-
quantalogic/flow/templates/system_check_inventory.j2,sha256=FaLO9_MgoKmaVmvaK9pzHSLkrLPWtPQO_ISreSwgRg8,124
|
12
|
+
quantalogic/flow/__init__.py,sha256=Csz1c6um5UtLaNO7HxdsP0pB8jTF774ZisrszibNNrQ,552
|
59
13
|
quantalogic/generative_model.py,sha256=os30wdVRq3OsSf8M7TjoaGqJweL99UINQtSGCwoE91k,15913
|
60
14
|
quantalogic/get_model_info.py,sha256=RgblwjjP7G97v_AzoGbXxXBIO082jVCRmvRwxnEpW_s,2991
|
61
15
|
quantalogic/interactive_text_editor.py,sha256=CzefvRiLscFfOKBS4gmrI10Gn3SF_eS5zbiLVQ9Gugw,16334
|
62
|
-
quantalogic/main.py,sha256=
|
16
|
+
quantalogic/main.py,sha256=CZ1uOWeofvz1kf5vQ6cpbCMhiZK9qfnL-zyJQWeVKLM,12282
|
63
17
|
quantalogic/memory.py,sha256=zbtRuM05jaS2lJll-92dt5JfYVLERnF_m_9xqp2x-k0,6304
|
64
18
|
quantalogic/model_info.py,sha256=j7QqvjEFQDGpDOgQs8uTkVyI3a50Oa_nrsQjyxizTLc,272
|
65
19
|
quantalogic/model_info_list.py,sha256=Xeeb7QS4xEpe9ke7Guh0CxEx-Hl59U4kC-qzVts-eAU,2437
|
@@ -178,7 +132,7 @@ quantalogic/tools/serpapi_search_tool.py,sha256=sX-Noch77kGP2XiwislPNFyy3_4TH6Tw
|
|
178
132
|
quantalogic/tools/sql_query_tool.py,sha256=jEDZLlxOsB2bzsWlEqsqvTKiyovnRuk0XvgtwW7-WSQ,6055
|
179
133
|
quantalogic/tools/task_complete_tool.py,sha256=L8tuyVoN07Q2hOsxx17JTW0C5Jd_N-C0i_0PtCUQUKU,929
|
180
134
|
quantalogic/tools/terminal_capture_tool.py,sha256=I3Ik9JSgHUPb5eV7ArZv9PISofkWWLh_7fCqX4RJRAg,10567
|
181
|
-
quantalogic/tools/tool.py,sha256
|
135
|
+
quantalogic/tools/tool.py,sha256=ONpEHiepXx8JfnbxhjWHMWlPPfGTTCmOKVQnNW91d74,139
|
182
136
|
quantalogic/tools/unified_diff_tool.py,sha256=o7OiYnCM5MjbPlQTpB2OmkMQRI9zjdToQmgVkhiTvOI,14148
|
183
137
|
quantalogic/tools/utilities/__init__.py,sha256=cOsQLYzJDnTY7mUjYaMSF_jmb5kez34MQc9xCWxm2NE,733
|
184
138
|
quantalogic/tools/utilities/csv_processor_tool.py,sha256=Mu_EPVj6iYAclNaVX_vbkekxcNwPYwy7dW1SCY22EwY,9023
|
@@ -214,8 +168,8 @@ quantalogic/version_check.py,sha256=JyQFTNMDWtpHCLnN-BiakzB2cyXf6kUFsTjvmSruZi4,
|
|
214
168
|
quantalogic/welcome_message.py,sha256=o4tHdgabNuIV9kbIDPgS3_2yzJhayK30oKad2UouYDc,3020
|
215
169
|
quantalogic/xml_parser.py,sha256=bLLwIwO-VEHWF3heNS7nuPC8wgdYw9F_fVZZNW1figY,11728
|
216
170
|
quantalogic/xml_tool_parser.py,sha256=hGHA1q20JUoTNTbZYmi4FTdA5I25-AGEIP8DwZgQCNA,3897
|
217
|
-
quantalogic-0.
|
218
|
-
quantalogic-0.
|
219
|
-
quantalogic-0.
|
220
|
-
quantalogic-0.
|
221
|
-
quantalogic-0.
|
171
|
+
quantalogic-0.93.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
172
|
+
quantalogic-0.93.dist-info/METADATA,sha256=ymSaIw5s2I_Q3uHkgvhxdVU1hK1zSJcn9_pygYQfFsw,16763
|
173
|
+
quantalogic-0.93.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
174
|
+
quantalogic-0.93.dist-info/entry_points.txt,sha256=wgSq5SRU98yvlRHGEZD1Xn7sS5CSjH2RfUtTa6Qy28Q,52
|
175
|
+
quantalogic-0.93.dist-info/RECORD,,
|
quantalogic/codeact/TODO.md
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
- [X] name clash between functions of tools
|
2
|
-
- [X] agent configurable using a Yaml file
|
3
|
-
- agent config
|
4
|
-
- name
|
5
|
-
- sop
|
6
|
-
- backstory
|
7
|
-
- personality
|
8
|
-
- interests
|
9
|
-
- style
|
10
|
-
- [ ] persistence of the agent state between tasks
|
11
|
-
- [X] create toolbox
|
12
|
-
- [X] configurable tools
|
13
|
-
- Keys
|
14
|
-
- secrets
|
quantalogic/codeact/__init__.py
DELETED
File without changes
|