microsoft/TypeAgent
Publicmirrored from https://github.com/microsoft/TypeAgentAvailable
README.md
84lines · modecode
| 1 | # TypeAgent |
| 2 | |
| 3 | **TypeAgent** is **sample code** that explores architectures for building _interactive agents_ with _natural language interfaces_ using [TypeChat](https://github.com/microsoft/typechat). |
| 4 | |
| 5 | **TypeAgent** uses TypeChat to build a set of example agents that **take actions**. Agents define actions using TypeChat schemas. |
| 6 | |
| 7 | The TypeAgent repo contains example agents and applications, along with internal packages used to build them. |
| 8 | |
| 9 | ## Examples |
| 10 | |
| 11 | - Agents with natural language interfaces: |
| 12 | |
| 13 | - [Music Player](./ts/packages/agents/player/) |
| 14 | - [Chat](./ts/packages/agents/chat/) |
| 15 | - [Browser](./ts/packages/agents/browser/) |
| 16 | - [VS Code](./ts/packages/agents/code/) |
| 17 | - [List Management](./ts/packages/agents/list/) |
| 18 | - [Calendar](./ts/packages/agents/calendar/) |
| 19 | - [Email](./ts/packages/agents/email/) |
| 20 | - [Desktop](./ts/packages/agents/desktop/) |
| 21 | |
| 22 | - [Agent Dispatcher](./ts/packages/dispatcher/) |
| 23 | |
| 24 | Explores applying TypeChat to route user requests to agents whose typed contract best matches user intent. |
| 25 | |
| 26 | - [Agent Cache](./ts/packages/cache/) |
| 27 | |
| 28 | Explores how TypeChat translations from user intent to actions can be cached, minimizing the need to go the LLM. |
| 29 | |
| 30 | - [Agent Shell](./ts/packages/shell/) |
| 31 | |
| 32 | An Electron application for interacting with multiple registered agents using a single unified user interface. Agent Shell includes: |
| 33 | |
| 34 | - Integrated chat experience with voice support |
| 35 | - Dispatcher that dispatches to registered agents |
| 36 | - Structured memory |
| 37 | - Structured RAG |
| 38 | |
| 39 | ### State Management |
| 40 | |
| 41 | All storage, registration, chat, memory and other state maintained by examples is stored **_locally_** in **your user folder** on your development machine. State is typically saved as ordinary text or JSON files in sub-folders below your user folder . |
| 42 | |
| 43 | ## Intended Uses |
| 44 | |
| 45 | - TypeAgent is sample code shared to encourage the exploration of natural language agent architectures using TypeChat. |
| 46 | - Sample agents are not intended to be implemented in real-world settings without further testing/validation. |
| 47 | |
| 48 | ## Limitations |
| 49 | |
| 50 | TypeAgent is early stage sample code over TypeChat. TypeAgent is not a framework. All library code is used to build our own example apps and agents only. |
| 51 | |
| 52 | - TypeAgent is in **active development** with frequent updates and refactoring. |
| 53 | - TypeAgent has been tested with Azure Open AI services on developer's own machines only. |
| 54 | - TypeAgent is currently tested in English. Performance may vary in other languages. |
| 55 | - TypeAgent relies on [TypeChat](https://github.com/microsoft/typechat), which uses schema to validate LLM responses. An agent's validity therefore depends on how well _its schema_ represents the user intents and LLM responses _for its domains_. |
| 56 | - You are responsible for supplying any **API keys** used by examples. |
| 57 | |
| 58 | ## Getting Started |
| 59 | |
| 60 | TypeAgent is written in TypeScript and relies on TypeChat. To understand how TypeAgent examples work, we recommend getting comfortable with TypeChat and [TypeChat examples](https://github.com/microsoft/TypeChat/tree/main/typescript/examples) first. |
| 61 | |
| 62 | ## Developers |
| 63 | |
| 64 | Microsoft AI Systems Repo is a mono-repo, with components organized with the following root folders based on language used. |
| 65 | |
| 66 | - [`ts`](./ts) TypeScript code ([Readme](./ts/README.md)) |
| 67 | |
| 68 | ### Agent Shell Example |
| 69 | |
| 70 | The main entry point to explore TypeAgent is the Agent Shell example. Follow the [instructions](./ts/README.md) in the typescript code [directory](./ts) to get started. |
| 71 | |
| 72 | ## Code of Conduct |
| 73 | |
| 74 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). |
| 75 | For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or |
| 76 | contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. |
| 77 | |
| 78 | ## Trademarks |
| 79 | |
| 80 | This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft |
| 81 | trademarks or logos is subject to and must follow |
| 82 | [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). |
| 83 | Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. |
| 84 | Any use of third-party trademarks or logos are subject to those third-party's policies. |