PraisonAI / app /docs_context.py
Sanyam400's picture
Update app/docs_context.py
578d730 verified
PRAISONAI_DOCS = """
# PraisonAI Agent Framework — Full Documentation
## What is PraisonAI?
PraisonAI is a multi-agent orchestration framework. You (the orchestrator) can create specialized
sub-agents, each with custom tools written in Python, to complete complex tasks collaboratively.
---
## Creating an Agent
```python
from praisonaiagents import Agent, Task, PraisonAIAgents
agent = Agent(
name="ResearchAgent",
role="Research Specialist",
goal="Find and summarize info",
backstory="Expert researcher",
llm="LongCat-Flash-Lite",
tools=[my_tool_fn],
verbose=True,
)
```
---
## Creating a Task
```python
task = Task(
name="research_task",
description="Research the latest developments in quantum computing",
expected_output="A detailed summary with key findings",
agent=agent,
context=[previous_task],
)
```
---
## Creating Custom Tools
Tools are plain Python functions. Use inline comments (# not triple quotes) inside tools.
Example tools:
```python
def search_web(query: str) -> str:
# Search the internet for information.
import requests
return results
def execute_python(code: str) -> str:
# Execute Python code and return output.
import subprocess
result = subprocess.run(['python3', '-c', code], capture_output=True, text=True)
return result.stdout + result.stderr
def calculate(expression: str) -> str:
# Evaluate a mathematical expression.
return str(eval(expression))
def read_file(filepath: str) -> str:
# Read content from a file.
with open(filepath) as f:
return f.read()
```
---
## Running Multiple Agents (Sequential)
```python
system = PraisonAIAgents(
agents=[researcher, analyst, writer],
tasks=[research_task, analysis_task, write_task],
process="sequential",
verbose=True
)
result = system.start()
```
---
## Running Multiple Agents (Hierarchical)
```python
system = PraisonAIAgents(
agents=[manager_agent, worker1, worker2],
tasks=[main_task, sub_task1, sub_task2],
process="hierarchical",
manager_llm="LongCat-Flash-Lite",
verbose=True
)
result = system.start()
```
---
## Task Context (Chaining)
```python
task1 = Task(name="t1", description="...", agent=agent1, expected_output="...")
task2 = Task(name="t2", description="...", agent=agent2, expected_output="...", context=[task1])
```
---
## Best Practices for Dynamic Tool Creation
1. Use snake_case names (e.g., fetch_github_repo, parse_csv_data)
2. Always include type hints on parameters and return value
3. Use inline # comments, NOT triple-quoted docstrings inside tool code
4. Wrap risky operations in try/except
5. Always return strings
---
## Sub-Agent Design Patterns
Pattern 1 - Research + Synthesis:
Agent 1 (Researcher): Gathers raw information
Agent 2 (Analyst): Processes and analyzes data
Agent 3 (Writer): Produces final output
Pattern 2 - Divide and Conquer:
Split large tasks, each agent handles one domain, orchestrator merges results
Pattern 3 - Validation Pipeline:
Agent 1: Main task, Agent 2: Validates, Agent 3: Applies corrections
---
## LongCat-Flash-Lite Configuration
- Model ID: LongCat-Flash-Lite
- Max tokens: 327,680 (320K context)
- Speed: Very fast (~500-700 tokens/sec)
- Free quota: 50M tokens/day
- API Base: https://api.longcat.chat/openai/v1
- Compatible with OpenAI SDK format
"""