{"id":41450472,"url":"https://github.com/atlas-php/atlas","last_synced_at":"2026-04-02T17:05:18.546Z","repository":{"id":334059698,"uuid":"1139136914","full_name":"atlas-php/atlas","owner":"atlas-php","description":"A Laravel package for orchestrating AI-driven features using agents, tools, and execution pipelines.","archived":false,"fork":false,"pushed_at":"2026-03-24T21:30:29.000Z","size":3959,"stargazers_count":31,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"2.x","last_synced_at":"2026-03-24T22:33:59.540Z","etag":null,"topics":["agentic-ai","agents","ai","ai-tools","anthropic","atlas","gemini","laravel","laravel-package","openai","prismphp"],"latest_commit_sha":null,"homepage":"http://atlasphp.org/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atlas-php.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-01-21T15:14:46.000Z","updated_at":"2026-03-23T17:53:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/atlas-php/atlas","commit_stats":null,"previous_names":["atlas-php/atlas"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/atlas-php/atlas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atlas-php%2Fatlas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atlas-php%2Fatlas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atlas-php%2Fatlas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atlas-php%2Fatlas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atlas-php","download_url":"https://codeload.github.com/atlas-php/atlas/tar.gz/refs/heads/2.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atlas-php%2Fatlas/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31311086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-ai","agents","ai","ai-tools","anthropic","atlas","gemini","laravel","laravel-package","openai","prismphp"],"created_at":"2026-01-23T15:18:16.237Z","updated_at":"2026-04-02T17:05:18.532Z","avatar_url":"https://github.com/atlas-php.png","language":"PHP","funding_links":[],"categories":["Laravel \u0026 Framework Integrations"],"sub_categories":["LLM \u0026 AI clients"],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://atlasphp.org\"\u003e\n    \u003cimg src=\"./images/atlas-logo-3.png\" alt=\"Atlas logo\" height=\"180\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/atlas-php/atlas/actions\"\u003e\u003cimg src=\"https://github.com/atlas-php/atlas/workflows/Automated%20Tests/badge.svg\" alt=\"Automated Tests\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/atlas-php/atlas\"\u003e\u003cimg src=\"https://codecov.io/gh/atlas-php/atlas/branch/main/graph/badge.svg\" alt=\"Code Coverage\"\u003e\u003c/a\u003e\n    \u003cimg src=\"https://img.shields.io/badge/php-8.2%2B-blue?style=flat-square\" alt=\"PHP Version\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/laravel-11%2B-orange?style=flat-square\" alt=\"Laravel\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-MIT-green?style=flat-square\" alt=\"License\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    📚 \u003ca href=\"https://atlasphp.org\"\u003e\u003cstrong\u003eOfficial Documentation\u003c/strong\u003e\u003c/a\u003e | 🚀 \u003ca href=\"#-examples\"\u003e\u003cstrong\u003eSee Examples (31)\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# 🪐 Atlas\n\nAtlas is a Laravel package for orchestrating AI agents, tools, and execution pipelines.\nIt provides structure and best practices for building maintainable, testable AI features at the application level.\n\nBuilt on [Prism PHP](https://prismphp.com), Atlas stays intentionally lightweight by focusing on application-level concerns such as agent definitions, tool orchestration, prompt templates, and execution pipelines. Prism is responsible for all LLM communication and provider APIs.\n\n## ✨ Features\n\n- **Agents** – Define your AI agent behavior and configurations\n- **Tools** – Connect agents to your services with validated parameters and structured results\n- **MCP Tools** – Integrate external tools from MCP servers via [Prism Relay](https://github.com/prism-php/relay)\n- **Dynamic Prompts** – Inject context `{variables}` into system prompts at runtime for personalized interactions\n- **Pipelines** – Add logging, auth, rate limiting, or metrics without coupling the codebase\n- **Model Discovery** – List available models from any provider with `Atlas::models('openai')-\u003eall()`\n- **Full Prism Access** – Use embeddings, images, speech, moderation, and structured output without limits\n- **All Providers**: Anthropic, OpenAI, Gemini, Mistral, Ollama, Groq, DeepSeek, xAI, OpenRouter, ElevenLabs (audio), VoyageAI (embeddings), Local LLMs, and Custom LLMs\n\n## Quick Start\n\n```bash\ncomposer require atlas-php/atlas\n```\n\n```bash\n# Publish Atlas configuration\nphp artisan vendor:publish --tag=atlas-config\n\n# Publish Prism configuration (if not already published)\nphp artisan vendor:publish --tag=prism-config\n```\n\n### Define an Agent\n\n```php\nuse Atlasphp\\Atlas\\Agents\\AgentDefinition;\n\nclass SupportAgent extends AgentDefinition\n{\n    public function provider(): ?string\n    {\n        return 'anthropic';\n    }\n\n    public function model(): ?string\n    {\n        return 'claude-sonnet-4-20250514';\n    }\n\n    public function systemPrompt(): ?string\n    {\n        return \u003c\u003c\u003cPROMPT\n        You are a customer support specialist for {company_name}.\n\n        ## Customer Context\n        - **Name:** {customer_name}\n        - **Account Tier:** {account_tier}\n\n        ## Available Tools\n        - **lookup_order** - Retrieve order details by order ID\n        - **process_refund** - Process refunds for eligible orders\n\n        ## Guidelines\n        - Always greet the customer by name\n        - For order inquiries, use `lookup_order` before providing details\n        - Before processing refunds, verify eligibility using order data\n        PROMPT;\n    }\n\n    public function tools(): array\n    {\n        return [\n            LookupOrderTool::class, \n            RefundTool::class\n        ];\n    }\n}\n```\n\n### Build a Tool\n\n```php\nuse Atlasphp\\Atlas\\Tools\\ToolDefinition;\nuse Atlasphp\\Atlas\\Tools\\Support\\ToolContext;\nuse Atlasphp\\Atlas\\Tools\\Support\\ToolParameter;\nuse Atlasphp\\Atlas\\Tools\\Support\\ToolResult;\n\nclass LookupOrderTool extends ToolDefinition\n{\n    public function __construct(\n        private OrderService $orders\n    ) {}\n\n    public function name(): string\n    {\n        return 'lookup_order';\n    }\n\n    public function description(): string\n    {\n        return 'Look up order details by order ID';\n    }\n\n    public function parameters(): array\n    {\n        return [\n            ToolParameter::string('order_id', 'The order ID to look up', required: true),\n        ];\n    }\n\n    public function handle(array $params, ToolContext $context): ToolResult\n    {\n        $order = $this-\u003eorders-\u003efind($params['order_id']);\n\n        if (! $order) {\n            return ToolResult::error('Order not found');\n        }\n\n        return ToolResult::json($order-\u003etoArray());\n    }\n}\n```\n\n### Chat with the Agent\n\n```php\n$response = Atlas::agent(SupportAgent::class)\n    -\u003ewithVariables([\n        'company_name' =\u003e 'Acme', \n        'customer_name' =\u003e 'Sarah',\n        'account_tier' =\u003e 'Premium',\n    ])\n    -\u003echat('Where is my order #12345?');\n\necho $response-\u003etext();\n// $response-\u003eusage();\n// Hello Sarah, your order is out for delivery. Anything else I can help with?\n```\n\n## Why Atlas?\n\n**The problem:** Prompts scattered across controllers, duplicated configurations, business logic tightly coupled with tools, and no consistent way to add logging, validation or even proper error handling.\n\n**Atlas decouples your business logic:**\n\n- **Agents** - AI configurations live in dedicated classes, not inline across your codebase.\n- **Tools** - Business logic stays in tool classes with typed parameters. Agents call tools; tools call your services.\n- **Pipelines** - Add logging, auth, or metrics to all Prism/Atlas operations without coupling the codebase.\n- **Testable** - Mock agents and fake tool responses with standard Laravel testing patterns.\n\nAtlas doesn't replace Prism. It organizes how you use Prism in real applications.\n\n## Documentation\n\n📚 **[atlasphp.org](https://atlasphp.org)** - Full guides, API reference, and examples.\n\n- [Getting Started](https://atlasphp.org/getting-started/installation.html) - Installation and configuration\n- [Agents](https://atlasphp.org/core-concepts/agents.html) - Define reusable AI configurations\n- [Tools](https://atlasphp.org/core-concepts/tools.html) - Connect agents to your application\n- [MCP Integration](https://atlasphp.org/capabilities/mcp.html) - External tools from MCP servers\n- [Pipelines](https://atlasphp.org/core-concepts/pipelines.html) - Extend with middleware\n\n## 🚀 Examples\n\n**Agents** — Reusable AI configurations for different roles and tasks.\n- [Customer Support](https://atlasphp.org/core-concepts/agents.html#example-basic-agent)\n- [Sales Support](https://atlasphp.org/core-concepts/agents.html#example-sales-support-agent)\n- [Customer Service](https://atlasphp.org/core-concepts/agents.html#example-customer-service-agent)\n- [Code Review](https://atlasphp.org/core-concepts/agents.html#example-code-review-agent)\n- [Content Writer](https://atlasphp.org/core-concepts/agents.html#example-content-writer-agent)\n- [Data Analyst](https://atlasphp.org/core-concepts/agents.html#example-data-analyst-agent)\n- [HR Assistant](https://atlasphp.org/core-concepts/agents.html#example-hr-assistant-agent)\n- [IT Helpdesk (MCP)](https://atlasphp.org/core-concepts/agents.html#example-it-helpdesk-agent-with-mcp-tools)\n- [Orchestrator](https://atlasphp.org/core-concepts/tools.html#example-agent-delegation-tools)\n\n**Tools** — Connect agents to your application logic and external services.\n- [Order Lookup](https://atlasphp.org/core-concepts/tools.html#example-order-lookup-tool)\n- [Knowledge Base Search](https://atlasphp.org/core-concepts/tools.html#example-search-knowledge-base-tool)\n- [Create Ticket](https://atlasphp.org/core-concepts/tools.html#example-create-support-ticket-tool)\n- [Send Notification](https://atlasphp.org/core-concepts/tools.html#example-send-notification-tool)\n- [Database Query](https://atlasphp.org/core-concepts/tools.html#example-tool-with-dependencies)\n- [Agent Delegation](https://atlasphp.org/core-concepts/tools.html#example-agent-delegation-tools)\n\n**Pipelines** — Middleware for logging, auth, caching, and error handling.\n- [Audit Logging](https://atlasphp.org/core-concepts/pipelines.html#example-audit-logging)\n- [Authentication](https://atlasphp.org/core-concepts/pipelines.html#example-authentication-check)\n- [Rate Limiting](https://atlasphp.org/core-concepts/pipelines.html#example-tool-rate-limiting)\n- [Token Usage](https://atlasphp.org/core-concepts/pipelines.html#example-token-usage-logging)\n- [Cache Embeddings](https://atlasphp.org/core-concepts/pipelines.html#example-caching-embeddings)\n- [Error Recovery](https://atlasphp.org/core-concepts/pipelines.html#agent-on-error)\n\n**Capabilities** — Streaming, structured output, vision, audio, and more.\n- [Streaming](https://atlasphp.org/capabilities/streaming.html#example-complete-streaming-service)\n- [Structured Output](https://atlasphp.org/capabilities/structured-output.html#examples)\n- [Multi-Turn Chat](https://atlasphp.org/capabilities/chat.html#multi-turn-conversations)\n- [Semantic Search](https://atlasphp.org/capabilities/embeddings.html#example-semantic-search)\n- [RAG](https://atlasphp.org/capabilities/embeddings.html#example-rag-implementation)\n- [Vision](https://atlasphp.org/capabilities/chat.html#attachments)\n- [Text-to-Speech](https://atlasphp.org/capabilities/audio.html#text-to-speech-examples)\n- [Speech-to-Text](https://atlasphp.org/capabilities/audio.html#speech-to-text-examples)\n- [Content Moderation](https://atlasphp.org/capabilities/moderation.html#example-comment-moderation)\n- [Image Generation](https://atlasphp.org/capabilities/images.html#example-complete-image-generation)\n\n## 💬 Sandbox - Atlas Chat Example\n\nA fully functional chat interface demonstrating Atlas agents in action. Built with Vue 3, Tailwind CSS, and a Laravel JSON API.\n\n\u003cp align=\"left\"\u003e\n  \u003cimg src=\"./images/atlas-sandbox-chat.png\" alt=\"Atlas Sandbox Chat\" width=\"800\"\u003e\n\u003c/p\u003e\n\n👉 **[See the Sandbox README](./sandbox/README.md)** for setup instructions and details.\n\n## Testing and Code Quality\n\nAtlas uses several tools to maintain high code quality:\n\n```bash\ncomposer check\n```\n\n| Tool                                             | Purpose                                                                                                                |\n|--------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|\n| [Pest](https://pestphp.com)                      | Testing framework                                                                                                      |\n| [Larastan](https://github.com/larastan/larastan) | Static analysis                                                                                                        |\n| [Laravel Pint](https://laravel.com/docs/pint)    | Code style                                                                                                             |\n| [Codecov](https://codecov.io/gh/atlas-php/atlas) | [![codecov](https://codecov.io/gh/atlas-php/atlas/branch/main/graph/badge.svg)](https://codecov.io/gh/atlas-php/atlas) |\n\n## Contributing\n\nWe welcome contributions!\n\nSupport the community by giving a GitHub star ⭐️. Thank you!\n\nPlease see our [Contributing Guide](.github/CONTRIBUTING.md) for details.\n\n## License\n\nAtlas is open-sourced software licensed under the [MIT license](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatlas-php%2Fatlas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatlas-php%2Fatlas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatlas-php%2Fatlas/lists"}