Skip to content

Commit c8981bc

Browse files
committed
initial readme
1 parent 4d47528 commit c8981bc

File tree

4 files changed

+123
-23
lines changed

4 files changed

+123
-23
lines changed

LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2023 Thousand Birds Inc
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

+95-15
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,90 @@
1-
# Thousand Birds - Chidori: A Reactive Runtime for AI Systems
1+
<div align="center">
22

3-
Thousand Birds offers a reactive environment to build AI systems seamlessly. Inspired by the notion of ["agents"](https://en.wikipedia.org/wiki/Intelligent_agent), Thousand Birds combines the strength of AI with the regularity of software development. Our goal is to create an environment where AI can operate smoothly and humans can interact efficiently with AI during its creation and maintenance.
3+
# &nbsp; Chidori &nbsp;
44

5-
### Important
5+
**A Reactive Runtime for AI Systems.**
66

7-
This is alpha software under active development. Breaking changes can happen anytime, without prior notice. You are welcome to experiment with the software, but please understand that we can't provide support at this time.
7+
<p>
8+
<a href="https://github.com/ThousandBirdsInc/chidori/commits"><img alt="GitHub Last Commit" src="https://img.shields.io/github/last-commit/ThousandBirdsInc/chidori" /></a>
9+
<a href="https://github.com/ThousandBirdsInc/chidori/issues"><img alt="GitHub Issues" src="https://img.shields.io/github/issues/ThousandBirdsInc/chidori" /></a>
10+
<a href="https://github.com/ThousandBirdsInc/chidori/pulls"><img alt="GitHub Pull Requests" src="https://img.shields.io/github/issues-pr/ThousandBirdsInc/chidori" /></a>
11+
<a href="https://github.com/ThousandBirdsInc/chidori/blob/main/LICENSE"><img alt="Github License" src="https://img.shields.io/badge/License-MIT-green.svg" /></a>
12+
<a href="https://github.com/ThousandBirdsInc/chidori"><img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/ThousandBirdsInc/chidori?style=social" /></a>
13+
</p>
814

9-
For questions, issues and bug reports, please open an issue on Github.
15+
<br />
1016

11-
### Why Another AI Framework?
17+
</div>
1218

13-
Thousand Birds pushes to be more than a simple wrapper around LLMs. Our effort is to resolve as much of the accidental complexity of building systems in the category of long running agents as possible, helping the broader developer community build successful systems.
1419

1520
### Quick Links
16-
- [Example Agents](https://www.notion.so/Example-Agents-d2c4164cb0f64f7ab6716a6f6e55577d?pvs=21)
21+
- [Getting Started](https://github.com/ThousandBirdsInc/chidori/tree/main#-getting-started)
1722
- [Documentation](https://www.notion.so/Documentation-3fe20a82965148c7a0b480f7daf0aff6?pvs=21)
18-
- [Roadmap](https://www.notion.so/Roadmap-98b73a3aab9e48dcb2e51f87d9752c1c?pvs=21)
19-
- [About](https://www.notion.so/About-da11db5a115444f68c5d912dc077daee?pvs=21)
20-
- [Blog](https://www.notion.so/Blog-4a284fcb736d4e5e8ce2309303c272a2?pvs=21)
23+
- [About](https://github.com/ThousandBirdsInc/chidori/tree/main#-about)
24+
- [Roadmap](https://github.com/ThousandBirdsInc/chidori/tree/main#-roadmap)
25+
26+
## ⚡️ Getting Started
27+
28+
29+
### Installation
30+
```bash
31+
npm i @1kbirds/chidori
32+
yarn add @1kbirds/chidori
33+
```
34+
```bash
35+
pip install chidori
36+
```
37+
```bash
38+
cargo install chidori
39+
```
40+
41+
### Environment Variables
42+
```bash
43+
OPENAI_API_KEY=...
44+
```
45+
46+
### Example
47+
```python
48+
chidori = Chidori("100", "http://localhost:9800")
49+
50+
# Generate an inspirational quote
51+
iq = await self.client.prompt_node(
52+
name="InspirationalQuote",
53+
template="""Come up with a novel and interesting quote. Something that will make them
54+
want to seize the day. Do not wrap the quote in quotes.
55+
"""
56+
)
57+
58+
# Get the current date
59+
(await self.client.deno_code_node(
60+
name="CurrentDate",
61+
code=""" return {"output": "" + new Date() } """,
62+
)).run_when(iq)
63+
64+
65+
# Format the date in a fun way
66+
await self.client.prompt_node(
67+
name="FunFormat",
68+
queries=[""" query Q { CurrentDate { output } } """],
69+
template="""Format the following in a fun and more informal way: {{CodeNode.output}} """
70+
)
71+
72+
# Return the quote with the date
73+
await self.client.deno_code_node(
74+
name="ResultingQuote",
75+
queries=[""" query Q { FunFormat { promptResult } } """],
76+
code=""" return {"output": "Your quote: " + "{{FunFormat.promptResult}}" } """
77+
)
78+
```
79+
80+
## 🤔 About
2181

2282
### Reactive Runtime
23-
At its core, Thousand Birds brings a reactive runtime that orchestrates interactions between different agents and their components. The runtime comprises of "nodes", which react to system changes they subscribe to, providing dynamic and responsive behavior to your AI systems.
24-
25-
Nodes can encompass code, prompts, vector databases, custom code, services, or even complete systems. The runtime was designed around the principles discussed in the paper ["Out of the Tar Pit"](https://github.com/papers-we-love/papers-we-love/blob/master/design/out-of-the-tar-pit.pdf), leveraging its concepts to help you create more dynamic, robust, and controlled agents.
83+
At its core, Thousand Birds brings a reactive runtime that orchestrates interactions between different agents and their components. The runtime is comprised of "nodes", which react to system changes they subscribe to, providing dynamic and responsive behavior in your AI systems.
84+
Nodes can encompass code, prompts, vector databases, custom code, services, or even complete systems.
2685

2786
### Monitoring and Observability
28-
Thousand Birds ensures comprehensive monitoring and observability of your agents. We record all the changes emitted by nodes, enabling us to explain precisely what led to what, enhancing your debugging experience and understanding of the system’s production behavior.
87+
Thousand Birds ensures comprehensive monitoring and observability of your agents. We record all the inputs and outputs emitted by nodes, enabling us to explain precisely what led to what, enhancing your debugging experience and understanding of the system’s production behavior.
2988

3089
### Branching and Time-Travel
3190
With Thousand Birds, you can take snapshots of your system and explore different possible outcomes from that point (branching), or rewind the system to a previous state (time-travel). This functionality improves error handling, debugging, and system robustness by offering alternative pathways and do-overs.
@@ -36,10 +95,31 @@ Vector databases, akin to an AI’s brain, help your AI remember and understand
3695
### Code Interpreter Environments
3796
Thousand Birds comes with first-class support for code interpreter environments like [Deno](https://deno.land/) or [Starlark](https://github.com/bazelbuild/starlark/blob/master/spec.md). You can execute code directly within your system, providing quick startup, ease of use, and secure execution. We're continually working on additional safeguards against running untrusted code, with containerized nodes support coming soon.
3897

98+
## 🛣️ Roadmap
99+
100+
### Short term
101+
* [ ] Improving the ergonomics of time travel and branching
102+
* [ ] Improving the ergonomics of subscribing nodes and constructing graphs
103+
* [ ] Adding support for containerized nodes
104+
* [ ] Allowing filtering in node queries
105+
106+
### Med term
107+
* [ ] Analysis tools for comparing executions
108+
* [ ] Agent re-evaluation with feedback
109+
* [ ] Definitive patterns for human in the loop agents
110+
* [ ] Adding support for more vector databases
111+
* [ ] Adding support for other LLM sources
112+
* [ ] Adding support for more code interpreter environments
113+
114+
39115
## Contributing
40116
We look forward to future contributions from the community. For now it will be difficult to contribute, as we are still in the process of setting up our development environment. We will update this section as soon as we have a more stable development environment.
41117
If you have feedback or would like to chat with us, please add to the discussion on our Github issues!
42118

119+
120+
### Why Another AI Framework?
121+
Thousand Birds pushes to be more than a simple wrapper around LLMs. Our effort is to resolve as much of the accidental complexity of building systems in the category of long running agents as possible, helping the broader developer community build successful systems.
122+
43123
## Inspiration
44124
Our framework is inspired by the work of many others, including:
45125
* https://temporal.io/ - providing reliability and durability to workflows

toolchain/chidori/README.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Chidori
2+
3+
## Generating Python Client
4+
- maturin develop --features python
5+
6+
## Generating Nodejs Client
7+
- npm run build-release

toolchain/prompt-graph-core/README.md

-8
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,3 @@
22

33
This implements an interface for constructing prompt graphs.
44
This can be used to annotate existing implementations with graph definitions as well.
5-
6-
Lambda definitions should include an endpoint to return the serialized prompt graph.
7-
8-
## Generating Python Client
9-
- maturin develop --features python
10-
11-
## Generating Nodejs Client
12-
- npm run build -- --release

0 commit comments

Comments
 (0)