{"id":33180234,"url":"https://github.com/agentframework/agentframework","last_synced_at":"2025-11-20T21:03:29.017Z","repository":{"id":46162946,"uuid":"69945573","full_name":"agentframework/agentframework","owner":"agentframework","description":"An elegant \u0026 efficient TypeScript metaprogramming API to build software agents","archived":false,"fork":false,"pushed_at":"2025-10-07T02:20:12.000Z","size":2106,"stargazers_count":124,"open_issues_count":2,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-10-07T04:21:47.473Z","etag":null,"topics":["agent-oriented-programming","aop","aspect-oriented-framework","dependency-injection","es6","interceptor","metadata","proxy","reflection","serverless","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agentframework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-10-04T08:11:47.000Z","updated_at":"2025-07-08T00:32:57.000Z","dependencies_parsed_at":"2024-08-08T03:54:45.815Z","dependency_job_id":"eb84e53a-9bdf-4757-a067-da81b2befc55","html_url":"https://github.com/agentframework/agentframework","commit_stats":{"total_commits":556,"total_committers":8,"mean_commits":69.5,"dds":"0.21223021582733814","last_synced_commit":"a94616d9c4d455c1f444ee6d6ee3dd2c79285a65"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/agentframework/agentframework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentframework%2Fagentframework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentframework%2Fagentframework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentframework%2Fagentframework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentframework%2Fagentframework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agentframework","download_url":"https://codeload.github.com/agentframework/agentframework/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentframework%2Fagentframework/sbom","scorecard":{"id":170405,"data":{"date":"2025-08-11","repo":{"name":"github.com/agentframework/agentframework","commit":"9d64e856268cda79f396f2387a11ae5297a28cf2"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"SAST","score":10,"reason":"SAST tool detected: CodeQL","details":["Info: SAST configuration detected: CodeQL","Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coveralls-coverage.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/coveralls-coverage.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coveralls-coverage.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/coveralls-coverage.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/coveralls-coverage.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/coveralls-coverage.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/macos-10.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/macos-10.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/macos-10.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/macos-10.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/macos-11.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/macos-11.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/macos-11.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/macos-11.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/macos-12.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/macos-12.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/macos-12.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/macos-12.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/macos-13.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/macos-13.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/macos-13.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/macos-13.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/macos.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/macos.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/macos.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/macos.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/semgrep.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/semgrep.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/semgrep.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/semgrep.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ubuntu-18.04.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/ubuntu-18.04.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ubuntu-18.04.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/ubuntu-18.04.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ubuntu-20.04.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/ubuntu-20.04.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ubuntu-20.04.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/ubuntu-20.04.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ubuntu-22.04.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/ubuntu-22.04.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ubuntu-22.04.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/ubuntu-22.04.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ubuntu.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/ubuntu.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ubuntu.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/ubuntu.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/windows-2019.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/windows-2019.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/windows-2019.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/windows-2019.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/windows.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/windows.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/windows.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/agentframework/agentframework/windows.yml/main?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/coveralls-coverage.yml:28","Warn: npmCommand not pinned by hash: .github/workflows/coveralls-coverage.yml:29","Warn: npmCommand not pinned by hash: .github/workflows/macos-10.yml:24","Warn: npmCommand not pinned by hash: .github/workflows/macos-10.yml:25","Warn: npmCommand not pinned by hash: .github/workflows/macos-11.yml:24","Warn: npmCommand not pinned by hash: .github/workflows/macos-11.yml:25","Warn: npmCommand not pinned by hash: .github/workflows/macos-12.yml:24","Warn: npmCommand not pinned by hash: .github/workflows/macos-12.yml:25","Warn: npmCommand not pinned by hash: .github/workflows/macos-13.yml:24","Warn: npmCommand not pinned by hash: .github/workflows/macos-13.yml:25","Warn: npmCommand not pinned by hash: .github/workflows/macos.yml:24","Warn: npmCommand not pinned by hash: .github/workflows/macos.yml:25","Warn: npmCommand not pinned by hash: .github/workflows/ubuntu-18.04.yml:23","Warn: npmCommand not pinned by hash: .github/workflows/ubuntu-18.04.yml:24","Warn: npmCommand not pinned by hash: .github/workflows/ubuntu-20.04.yml:23","Warn: npmCommand not pinned by hash: .github/workflows/ubuntu-20.04.yml:24","Warn: npmCommand not pinned by hash: .github/workflows/ubuntu-22.04.yml:23","Warn: npmCommand not pinned by hash: .github/workflows/ubuntu-22.04.yml:24","Warn: npmCommand not pinned by hash: .github/workflows/ubuntu.yml:23","Warn: npmCommand not pinned by hash: .github/workflows/ubuntu.yml:24","Info:   0 out of  29 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of  20 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:28","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:29","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Warn: no topLevel permission defined: .github/workflows/coveralls-coverage.yml:1","Warn: no topLevel permission defined: .github/workflows/macos-10.yml:1","Warn: no topLevel permission defined: .github/workflows/macos-11.yml:1","Warn: no topLevel permission defined: .github/workflows/macos-12.yml:1","Warn: no topLevel permission defined: .github/workflows/macos-13.yml:1","Warn: no topLevel permission defined: .github/workflows/macos.yml:1","Warn: no topLevel permission defined: .github/workflows/semgrep.yml:1","Warn: no topLevel permission defined: .github/workflows/ubuntu-18.04.yml:1","Warn: no topLevel permission defined: .github/workflows/ubuntu-20.04.yml:1","Warn: no topLevel permission defined: .github/workflows/ubuntu-22.04.yml:1","Warn: no topLevel permission defined: .github/workflows/ubuntu.yml:1","Warn: no topLevel permission defined: .github/workflows/windows-2019.yml:1","Warn: no topLevel permission defined: .github/workflows/windows.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-16T16:17:12.687Z","repository_id":46162946,"created_at":"2025-08-16T16:17:12.687Z","updated_at":"2025-08-16T16:17:12.687Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285511779,"owners_count":27184238,"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","status":"online","status_checked_at":"2025-11-20T02:00:05.334Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["agent-oriented-programming","aop","aspect-oriented-framework","dependency-injection","es6","interceptor","metadata","proxy","reflection","serverless","typescript"],"created_at":"2025-11-16T03:00:41.704Z","updated_at":"2025-11-20T21:03:29.010Z","avatar_url":"https://github.com/agentframework.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/agentframework/agentframework\"\u003e\n    \u003cimg alt=\"AgentFramework\" src=\"https://avatars2.githubusercontent.com/u/22611350?s=400\u0026v=4\" width=\"120\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\nAn elegant \u0026 efficient TypeScript metaprogramming API to build \u003ca target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Agent-oriented_programming\"\u003esoftware agents\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://coveralls.io/github/agentframework/agentframework?branch=main\"\u003e\u003cimg src=\"https://coveralls.io/repos/github/agentframework/agentframework/badge.svg?branch=main\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.codacy.com/app/agentframework/agentframework\"\u003e\u003cimg src=\"https://api.codacy.com/project/badge/Grade/5101dc6abfd04608b7f61636245dab05?branch=main\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://bundlephobia.com/result?p=agentframework\"\u003e\u003cimg src=\"https://img.shields.io/bundlephobia/minzip/agentframework.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://snyk.io/test/npm/agentframework\"\u003e\u003cimg src=\"https://snyk.io/test/npm/agentframework/badge.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://npmjs.com/package/agentframework\"\u003e\u003cimg src=\"https://img.shields.io/npm/dm/agentframework.svg\" alt=\"gzip size\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n:lollipop: **Modernize:** 100% for TypeScript. Side-effect free tree shaking compatible since [ES2015](https://unpkg.com/agentframework/).\n\n:zap: **Fast:** Use CodeGen to minimize overheads. Faster than es6 Proxy.\n\n:dart: **Efficient:** Well-designed and crafted api only has **1300 SLOC** and **5.6kb** after minzipped.\n\n:recycle: **Clean:** Transparent dynamic proxy. No prototype pollution. No reflect-metadata or any npm dependencies.\n\n## AgentFramework's Commitment to Metaprogramming\n\nThe new [decorator breaking changes](./doc/references/new-decorator-in-typescript-5/README.md) of [TypeScript 5](https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/), which is not compatible with the `--emitDecoratorMetadata` option, presents a challenge for metaprogramming of TypeScript developers. However, AgentFramework is dedicated to maintaining its original vision and will continue providing metadata in future versions without altering our [Reflector](src/agent/Agent/Reflector.md) API, while applying all possible solutions and efforts to ensure its continued availability.\n\n\n## Official Supported Environment\n\n| Platform       | Version                                                                 |\n| -------------- |-------------------------------------------------------------------------|\n| Node.js        | 24, 22, 20, 18, 16, 14, 12, 10, 8                                       |\n| TypeScript 5.x | 5.9.3, 5.8.2, 5.7.3, 5.6.3, 5.5.4, 5.4.5, 5.3.3, 5.2.2, 5.1.6, 5.0.4    |\n| TypeScript 4.x | 4.7.2, 4.6.3, 4.5.5, 4.4.4, 4.3.5, 4.2.4, 4.1.5, 4.0.5                  |\n| TypeScript 3.x | 3.9.7, 3.8.3, 3.7.5, 3.6.5, 3.5.1, 3.4.5, 3.3.4000, 3.2.4, 3.1.6, 3.0.3 |\n\n## Changelog\n\n| Date        | Version                                     | Status      |\n|-------------|---------------------------------------------| ----------- |\n| 2025-10-06  | [2.0.5](doc/changelogs/CHANGELOG_2.0.x.md)  | Stable      |\n| 2019-02-27  | [1.0.0](doc/changelogs/CHANGELOG_1.0.x.md)  | EOL         |\n| 2018-12-21  | [0.9.23](doc/changelogs/CHANGELOG_0.9.x.md) | EOL \t\t|\n| 2017-06-30  | [0.5.12](doc/changelogs/CHANGELOG_0.5.x.md) | EOL         |\n| 2016-11-03  | [0.2.28](doc/changelogs/CHANGELOG_0.2.x.md) | EOL         |\n\n### Install\n\n```bash\nnpm i agentframework\n```\n\n### Example code\n\n```typescript\nimport { agent, singleton } from 'agentframework';\n\nclass ComponentA {\n\tname = 'Agent Framework';\n}\n\n@agent()\nclass ProjectA {\n\t@singleton()\n\tprivate component!: ComponentA;\n\n\tconstructor() {\n\t\tconsole.log(`WOW! You working on project ${this.component.name}!`);\n\t}\n}\n\nconst project = new ProjectA();\n\nconsole.log('Is it create from the ProjectA class?', project instanceof ProjectA);\n```\n\n## Features\n\n-   Add metadata to your code at design-time (using @decorator) or runtime (using Reflector api)\n-   Access the metadata at runtime (using Reflector api)\n-   AOP, dependence injection and dependence lookup\n\n## Projects\n\n-   [Hello World!](https://github.com/agentframework/hello-world) Your first AgentFramework project.\n\n## Agent Oriented Programming\n\n### Principle\n\n| PARADIGM                   | INSPIRATION | PRINCIPLE                                             |\n| -------------------------- | ----------- | ----------------------------------------------------- |\n| Function Programming       | Math        | It transform data                                     |\n| OOP                        | The world   | It describe things and the relationships between them |\n| Agent Oriented Programming | Human       | It actions like a human (AI)                          |\n\n### Concepts\n\n| HUMAN       | AGENT FRAMEWORK | DESCRIPTION                                                             |\n| ----------- | --------------- | ----------------------------------------------------------------------- |\n| People      | Agent           | A class decorate with @agent attribute                                  |\n| Action      | Behavior        | Class method decorate with @action, @method or @behavior attribute      |\n| Belief      | Memory          | Private class field decorated with @state, @remember, @memory attribute |\n| Environment | Domain          | A container for agents, entities, services or artifacts                 |\n| Autonomy    | Activation      | Timer, scheduler which based on environment conditions                  |\n| Sociality   | Message         | Agent can communicate with other agent                                  |\n| Mobility    | Mobile Agent    | An agent can move from domain to domain with their belief unchanged     |\n\n### When use Agent Framework\n\n-   You want to build software agents.\n-   You want to use dependence injection or dependence lookup.\n-   You want to build a framework which similar to Spring Framework but in JavaScript.\n-   You want to build an abstract layer for a specific business domain in your organization.\n-   You want to remove duplicated code and keep project codebase small and clean.\n-   You need a powerful method to pre-process, post-process or modify system behaviors without touching existing code.\n\n### Agentframework 2.x milestones\n\n-   [x] Breaking change: Remove `I` from interface name\n-   [x] Breaking change: Remove `Intializer`. Use `Interceptor` instead\n-   [x] MVP: Dependency injection/dependency lookup and `Domain` driven design support\n-   [x] MVP: Improve unit test coverage rate\n-   [x] COMPATIBILITY: Revise error types and message\n-   [x] COMPATIBILITY: Revise Domain interface\n-   [x] COMPATIBILITY: Revise embedded decorators\n-   [ ] Enterprise: Abstract data layer - mongodb 4.x\n-   [ ] Enterprise: Cross architecture web application development (Server, Serverless)\n-   [ ] Enterprise: Serverless support - AWS Lambda, Google Cloud Function, Azure Function, Alicloud Function Computing\n-   [ ] Enterprise: Bot development (Telegram)\n-   [ ] Other: Example and references\n-   [ ] Other: docs.agentframework.com\n-   [ ] Other: agentframework.com\n\n### Agentframework 1.x milestones\n\n-   [x] MVP: Reflection can access type information generated by tsc. `tsc --emitDecoratorMetadata`\n-   [x] MVP: Reflection support both ES6 and ES2017 (Reflect.metadata)\n-   [x] MVP: Share metadata across different agentframework library of same application\n-   [x] MVP: Both agent or normal class can be used for dependence injection\n-   [x] MVP: Add IInitializer to init a field property\n-   [x] MVP: Interceptor can work with Initializer during dependence injection\n-   [x] EPIC: Create agent without domain\n-   [x] EPIC: Provide access to intercepted property value in constructor\n-   [x] PERFORMANCE: Metadata only attribute, attribute without interceptor\n-   [x] PERFORMANCE: Pre-compile class member interceptors to improve method call performance\n-   [x] PERFORMANCE: Caching class constructor interceptors to reduce future class instance creation time.\n-   [x] PERFORMANCE: Remove interceptor for @agent attribute to improve performance\n-   [x] PERFORMANCE: Do not add proxy if the agent don't have interceptor\n-   [x] PERFORMANCE: Remove ES6 Proxy if don't have field interceptor\n-   [x] COMPATIBILITY: Move @inject and @ready decorator out from core\n-   [x] COMPATIBILITY: GetPrototypeOf should return origin prototype\n-   [x] COMPATIBILITY: Agent should works in extended classes\n-   [x] COMPATIBILITY: instanceOf should works when compile to proxy\n-   [x] COMPATIBILITY: Revise IInvocation Interface\n-   [x] COMPATIBILITY: Revise IInitializer Interface\n-   [x] COMPATIBILITY: Revise IInterceptor Interface\n-   [x] COMPATIBILITY: Revise IAttribute Interface\n-   [x] COMPATIBILITY: Revise Reflection Interface\n-   [x] COMPATIBILITY: Revise Reflector Interface\n-   [x] COMPATIBILITY: Revise Agent Options\n-   [x] COMPATIBILITY: Revise Domain Interface (Domain is been completely moved to 2.0)\n\n\n## Special Thanks To:\n\n[\u003cimg src=\"https://user-images.githubusercontent.com/1542425/147318909-dbfbde6b-d182-4f99-bbcc-f899823d4adb.png\" alt=\"\" width=\"150\"\u003e](https://www.jetbrains.com)\n\n[JetBrains](https://www.jetbrains.com/), creators of the IntelliJ IDEA, supports AgentFramework with one of their [Open Source Licenses](https://www.jetbrains.com/opensource/). IntelliJ IDEA is the recommended IDE for working with AgentFramework.\n\n\n## License\n\nCopyright 2024 Ling Zhang!\n\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","funding_links":[],"categories":["TypeScript","CSS In JS With Types"],"sub_categories":["Runtime"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagentframework%2Fagentframework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagentframework%2Fagentframework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagentframework%2Fagentframework/lists"}