{"id":28454772,"url":"https://github.com/kaikaikaifang/divine-agent","last_synced_at":"2025-06-28T07:31:06.607Z","repository":{"id":292386959,"uuid":"917087108","full_name":"Kaikaikaifang/divine-agent","owner":"Kaikaikaifang","description":"Creating Your Divine Agent  😇","archived":false,"fork":false,"pushed_at":"2025-05-26T15:52:11.000Z","size":3866,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-27T11:07:36.978Z","etag":null,"topics":["agent","agents","ai","monorepo","observability","sdk-python"],"latest_commit_sha":null,"homepage":"https://docs.divine-agent.com","language":"TypeScript","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/Kaikaikaifang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-15T10:29:32.000Z","updated_at":"2025-05-29T08:46:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"2c9b474c-a5b5-465b-89ea-b2bed631c053","html_url":"https://github.com/Kaikaikaifang/divine-agent","commit_stats":null,"previous_names":["kaikaikaifang/divine-agent"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Kaikaikaifang/divine-agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kaikaikaifang%2Fdivine-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kaikaikaifang%2Fdivine-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kaikaikaifang%2Fdivine-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kaikaikaifang%2Fdivine-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kaikaikaifang","download_url":"https://codeload.github.com/Kaikaikaifang/divine-agent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kaikaikaifang%2Fdivine-agent/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262244952,"owners_count":23281033,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["agent","agents","ai","monorepo","observability","sdk-python"],"created_at":"2025-06-06T20:46:27.204Z","updated_at":"2025-06-28T07:31:06.597Z","avatar_url":"https://github.com/Kaikaikaifang.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://divine-agent.com/\"\u003e\u003cimg width=\"128\" height=\"128\" src=\"https://raw.githubusercontent.com/Kaikaikaifang/divine-agent/main/docs/images/thinking-angel.png\" alt='Divine Agent'\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cstrong\u003eDivine Agent\u003c/strong\u003e \u003cem\u003e– Fully open-source agent observability. Simple. Clear.\u003c/em\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://pypi.org/project/divi/\"\u003e\n    \u003cimg src=\"https://img.shields.io/pypi/v/divi.svg\" alt=\"Package version\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"./docs/README_ZH.md\"\u003e中文\u003c/a\u003e / English\n\u003c/p\u003e\n\ndivine-agent is an observability tool for LLM-based agents, offering tracing, evaluation, and usage statistics.\n\n---\n\n\u003e [!IMPORTANT]\n\u003e **divine-agent is currently experimental** and may undergo significant changes at any time. This project is in active development, which means APIs and features might change without prior notice.\n\u003e\n\u003e We do not recommend using divine-agent in production environments until a stable release is available.\n\n## Install\n\nRequires Python 3.11+\n\n```shell\npip install divi\n```\n\n## Trace\n\n1. Get API Key from [Web](https://www.divine-agent.com/dashboard/api-keys).\n2. Create a `.env` file and add the following line:\n  ```env\n  DIVI_API_KEY=your_api_key\n  ```\n3. Run the following code:\n  ```python\n  from divi import obs_openai, observable\n  from dotenv import load_dotenv\n  from openai import OpenAI\n\n  load_dotenv()\n\n\n  class Pirate:\n      def __init__(self):\n          self.client = obs_openai(\n              OpenAI(),\n              name=\"Pirate\",\n          )\n\n      @observable(name=\"Talk with pirate\")\n      def talk(self, message: str):\n          \"\"\"Talk like a pirate.\"\"\"\n          res = self.client.chat.completions.create(\n              model=\"gpt-4o\",\n              messages=[\n                  {\"role\": \"developer\", \"content\": \"Talk like a pirate.\"},\n                  {\n                      \"role\": \"user\",\n                      \"content\": message,\n                  },\n              ],\n          )\n          return res.choices[0].message.content\n\n\n  pirate = Pirate()\n  pirate.talk(\"How do I check if a Python object is an instance of a class?\")\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaikaikaifang%2Fdivine-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaikaikaifang%2Fdivine-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaikaikaifang%2Fdivine-agent/lists"}