earendil-works/pi
Bộ công cụ tác nhân AI: hợp nhất LLM API, vòng lặp tác nhân, TUI, tác nhân mã hóa CLI
README
Các vấn đề mới và PR từ những người đóng góp mới được tự động đóng theo mặc định. Người bảo trì xem xét các vấn đề tự động đóng hàng ngày. Xem ĐÓNG GÓP.md.
Khai thác đại lý Pi
Đây là ngôi nhà của dự án khai thác tác nhân Pi bao gồm tác nhân mã hóa tự mở rộng của chúng tôi.
- @earendil-works/pi-coding-agent: Tác nhân mã hóa tương tác CLI
- @earendil-works/pi-agent-core: Thời gian chạy tác nhân với chức năng gọi công cụ và quản lý trạng thái
- @earendil-works/pi-ai: Hợp nhất nhiều nhà cung cấp LLM API (OpenAI, Anthropic, Google, …)
Để tìm hiểu thêm về Pi:
- Ghé thăm pi.dev, trang web của dự án có bản demo
- Đọc tài liệu, nhưng bạn cũng có thể yêu cầu đại lý tự giải thích
Tất cả các gói
| Gói | Mô tả |
|---|---|
| @earendil-works/pi-telemetry | Hợp đồng đo từ xa với nhà cung cấp trung lập, bộ điều hợp tham chiếu, kiểm tra sự phù hợp và lược đồ đã nhập |
| @earendil-works/pi-ai | Nhiều nhà cung cấp hợp nhất LLM API (OpenAI, Anthropic, Google, v.v.) |
| @earendil-works/pi-agent-core | Thời gian chạy tác nhân với chức năng gọi công cụ và quản lý trạng thái |
| @earendil-works/pi-coding-agent | Tác nhân mã hóa tương tác CLI |
| @earendil-works/pi-tui | Thư viện giao diện người dùng đầu cuối với kết xuất vi sai |
Để biết quy trình làm việc và tự động hóa trò chuyện/Slack, hãy xem Earendil-works/pi-chat.
Quyền & Container hóa
Pi không bao gồm hệ thống cấp phép tích hợp để hạn chế quyền truy cập vào hệ thống tệp, quy trình, mạng hoặc thông tin xác thực. Theo mặc định, nó chạy với sự cho phép của người dùng và quy trình đã khởi chạy nó.
Nếu bạn cần ranh giới mạnh mẽ hơn, hãy chứa Pi hoặc sandbox. Xem gói/coding-agent/docs/containerization.md cho ba mẫu:
- Phần mở rộng Gondolin: giữ
pivà xác thực nhà cung cấp trên máy chủ trong khi định tuyến các công cụ và!lệnh vào một máy ảo Linux cục bộ. - Trơn Docker: chạy toàn bộ
pixử lý trong một thùng chứa cục bộ để cách ly đơn giản. - OpenShell: chạy toàn bộ
pixử lý trong hộp cát được kiểm soát bằng chính sách.
Đóng góp
Xem ĐÓNG GÓP.md để biết hướng dẫn đóng góp và ĐẠI LÝ.md đối với các quy tắc dành riêng cho dự án (cho cả con người và tác nhân). Các kế hoạch dài hạn hơn cho Pi cũng có thể được tìm thấy trong RFC.
Phát triển
npm install --ignore-scripts # Install all dependencies without running lifecycle scripts
npm run build # Refresh model data, then build all packages
npm run build:offline # Rebuild using existing model data without network access
npm run check # Lint, format, and type check
./test.sh # Run tests (skips LLM-dependent tests without API keys)
./pi-test.sh # Run pi from sources (can be run from any directory)
Xây dựng các tệp nhị phân độc lập từ nguồn phát hành
Bản phát hành GitHub bao gồm kho lưu trữ nguồn được phiên bản nằm trong phạm vi của bản phát hành SHA256SUMS tập tin. Giải nén nó và chạy tập lệnh xây dựng tương tự được sử dụng cho các tệp nhị phân độc lập chính thức:
VERSION="<release-version>"
tar -xzf "pi-${VERSION}-source.tar.gz"
cd "pi-${VERSION}"
./scripts/build-binaries.sh --offline-model-data --platform linux-x64 --out "$PWD/out"
Kho lưu trữ nguồn bao gồm dữ liệu mô hình nhà cung cấp đã tạo được sử dụng cho bản phát hành. --offline-model-data xây dựng bằng ảnh chụp nhanh đó thay vì làm mới nó từ danh mục nhà cung cấp trực tiếp. Tập lệnh vẫn cài đặt các phần phụ thuộc, xây dựng monorepo, biên dịch tệp thực thi Bun và xử lý nội dung thời gian chạy của nó. Người bảo trì gói cung cấp các phần phụ thuộc riêng biệt có thể vượt qua --skip-install --skip-deps.
Củng cố chuỗi cung ứng
Chúng tôi coi những thay đổi phụ thuộc của npm là những thay đổi mã được xem xét.
- Các phần phụ thuộc trực tiếp bên ngoài được ghim vào các phiên bản chính xác. Các gói không gian làm việc nội bộ vẫn có phạm vi phiên bản.
.npmrcbộsave-exact=truevàmin-release-age=2để tránh phát hành phụ thuộc trong cùng ngày trong quá trình phân giải npm.package-lock.jsonlà sự thật nền tảng phụ thuộc. Cam kết trước chặn các cam kết lockfile vô tình trừ khiPI_ALLOW_LOCKFILE_CHANGE=1được thiết lập.npm run checkxác minh các dep trực tiếp được ghim, khả năng tương thích nhập TypeScript gốc và trình thu gọn tác nhân mã hóa được tạo.- Gói CLI được xuất bản bao gồm
packages/coding-agent/npm-shrinkwrap.json, được tạo từ tệp khóa gốc, để ghim các phần phụ chuyển tiếp cho người dùng npm. - Phát hành thử nghiệm khói sử dụng
npm run release:localđể xây dựng, đóng gói và tạo các bản cài đặt npm và Bun riêng biệt bên ngoài kho lưu trữ trước khi gắn thẻ bản phát hành. - Lượt cài đặt bản phát hành cục bộ, lượt cài đặt npm được ghi lại và
pi update --selfsử dụng--ignore-scriptsđược hỗ trợ ở đâu. - CI cài đặt với
npm ci --ignore-scriptsvà quy trình công việc GitHub đã lên lịch sẽ chạynpm audit --omit=devcộng thêmnpm audit signatures --omit=dev. - Thế hệ Shrinkwrap có danh sách cho phép rõ ràng đối với các tập lệnh vòng đời phụ thuộc; các tập lệnh vòng đời mới không được kiểm tra cho đến khi được xem xét.
Chia sẻ các phiên tác nhân mã hóa OSS của bạn
Nếu bạn sử dụng Pi hoặc các tác nhân mã hóa khác cho công việc nguồn mở, vui lòng chia sẻ các phiên của bạn.
Dữ liệu phiên OSS công khai giúp cải thiện các tác nhân mã hóa bằng các tác vụ trong thế giới thực, việc sử dụng công cụ, lỗi và sửa lỗi thay vì điểm chuẩn đồ chơi.
Để có lời giải thích đầy đủ, xem bài đăng này trên X.
Để xuất bản phiên, sử dụng badlogic/pi-share-hf. Đọc README.md của nó để biết hướng dẫn thiết lập. Tất cả những gì bạn cần là tài khoản Hugging Face, Hugging Face CLI và pi-share-hf.
Bạn cũng có thể xem video này, nơi tôi trình bày cách tôi xuất bản pi-mono phiên.
Tôi thường xuyên xuất bản bài viết của riêng mình pi-mono buổi làm việc tại đây:
Giấy phép
MIT
Dự án cùng danh mục
Trợ lý AI cá nhân của riêng bạn. Bất kỳ hệ điều hành nào. Bất kỳ nền tảng nào. Cách tôm hùm. 🦞
Hệ thống tối ưu hóa hiệu suất khai thác tác nhân. Kỹ năng, bản năng, trí nhớ, bảo mật và sự phát triển ưu tiên nghiên cứu cho Claude Code, Codex, Opencode, Cursor và hơn thế nữa.
Đại lý phát triển cùng bạn
Kỹ năng dành cho kỹ sư thực sự. Trực tiếp từ thư mục .agents của tôi.
Triển lãm bảo tàng do đại lý quản lý, được xây dựng trong Rust với Gajae-Code / LazyCodex — được phát triển và duy trì mà không có sự can thiệp của con người.