agno

v2.6.12 suspicious
4.0
Medium Risk

The programming language for agentic software.

🤖 AI Analysis

Final verdict: SUSPICIOUS

The package shows moderate network interaction risks and incomplete metadata, raising concerns about its reliability and potential misuse.

  • moderate network risk
  • incomplete author information
Per-check LLM notes
  • Network: The presence of network calls suggests the package interacts with external services, which is not inherently malicious but requires scrutiny to ensure it's not used for unauthorized access or data exfiltration.
  • Shell: No shell execution patterns were detected.
  • Obfuscation: Base64 decoding is commonly used for data serialization and may not indicate malicious intent.
  • Credentials: No patterns indicative of credential harvesting were detected.
  • Metadata: The author information is incomplete, suggesting potential unreliability.

📦 Package Quality Overall: Medium (6.4/10)

◈ Medium Test Suite 6.0

Partial test coverage signals detected

  • Test runner config found: pyproject.toml
◈ Medium Documentation 7.0

Some documentation present

  • Documentation URL: "Documentation" -> https://docs.agno.com
  • Detailed PyPI description (4172 chars)
○ Low Contributing Guide 4.0

No contributing guide or governance files found

  • Development Status classifier >= Beta
◈ Medium Type Annotations 5.0

Partial type annotation coverage

  • 464 type-annotated function signatures detected in source
✦ High Multiple Contributors 10.0

Active multi-contributor project

  • 39 unique contributor(s) across 100 commits in agno-agi/agno
  • Active community — 5 or more distinct contributors

🔬 Heuristic Checks

Outbound Network Calls score 6.0

Found 4 network call pattern(s)

  • olved_api_key()} with httpx.Client(timeout=self.timeout) as client: response = clie
  • written = 0 with httpx.Client(timeout=self.timeout, follow_redirects=True) as client:
  • ) async with httpx.AsyncClient(timeout=self.timeout) as client: response = awai
  • ) async with httpx.AsyncClient(timeout=self.timeout) as client: async with clie
Code Obfuscation score 2.0

Found 1 obfuscation pattern(s)

  • decoded_content = base64.b64decode(model_response_event.audio.content)
Shell / Subprocess Execution

No shell execution patterns detected

Credential Harvesting

No credential harvesting patterns detected

Typosquatting

No typosquatting candidates detected

Registered Email Domain

Email domain looks legitimate: agno.com>

Suspicious Page Links

All external links appear legitimate

Git Repository History

Repository agno-agi/agno appears legitimate

Maintainer History score 4.0

2 maintainer concern(s) found

  • Author name is missing or very short
  • Author "" appears to have only 1 package on PyPI (new or inactive account)
Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

💡 AI App Starter Prompt

Use this prompt to build a project with agno
Create a simple task management application using the 'agno' package. This application will allow users to create tasks, assign them to different categories, set due dates, mark tasks as completed, and view their progress. The application should also support adding notes and reminders to tasks.

Steps:
1. Set up your development environment with Python and install the 'agno' package.
2. Design the user interface for adding, editing, and viewing tasks.
3. Implement functionality to add new tasks with fields for title, category, due date, and notes.
4. Add the ability to edit existing tasks and update their details.
5. Implement a feature to mark tasks as completed and show the completion status.
6. Include a calendar view to display upcoming tasks based on their due dates.
7. Allow users to add reminders for specific tasks at certain times.
8. Integrate a search function to find tasks by title or category.

How 'agno' is Utilized:
- Use 'agno' to define the behavior of each task object, including actions like setting a due date, marking it as completed, and adding notes. Each task should act as an agent capable of managing its state and reacting to user commands.
- Leverage 'agno' to implement reminders and notifications, allowing tasks to automatically notify users when they are due or overdue.
- Utilize 'agno' for the calendar view, enabling tasks to dynamically adjust their visibility based on their due dates and completion status.