@lazyingart/agintiflow 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +41 -0
- package/LICENSE +201 -0
- package/README.md +294 -0
- package/bin/aginti-cli.js +7 -0
- package/docker/sandbox.Dockerfile +22 -0
- package/docs/npm-publishing.md +45 -0
- package/i18n/README.ar.md +51 -0
- package/i18n/README.de.md +51 -0
- package/i18n/README.es.md +51 -0
- package/i18n/README.fr.md +51 -0
- package/i18n/README.ja.md +51 -0
- package/i18n/README.ko.md +51 -0
- package/i18n/README.ru.md +51 -0
- package/i18n/README.vi.md +51 -0
- package/i18n/README.zh-Hans.md +51 -0
- package/i18n/README.zh-Hant.md +171 -0
- package/logos/banner-opaque.png +0 -0
- package/logos/logo.png +0 -0
- package/package.json +62 -0
- package/public/app.js +1060 -0
- package/public/index.html +198 -0
- package/public/styles.css +305 -0
- package/run.js +6 -0
- package/scripts/install-docker-ubuntu.sh +140 -0
- package/src/agent-runner.js +686 -0
- package/src/cli.js +181 -0
- package/src/command-policy.js +185 -0
- package/src/config.js +89 -0
- package/src/docker-sandbox.js +309 -0
- package/src/guardrails.js +122 -0
- package/src/model-client.js +212 -0
- package/src/model-routing.js +135 -0
- package/src/redaction.js +29 -0
- package/src/session-store.js +73 -0
- package/src/snapshot.js +55 -0
- package/src/tool-wrappers.js +193 -0
- package/src/web-db.js +158 -0
- package/web.js +530 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
[English](../README.md) · [العربية](README.ar.md) · [Español](README.es.md) · [Français](README.fr.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Tiếng Việt](README.vi.md) · [中文 (简体)](README.zh-Hans.md) · [中文(繁體)](README.zh-Hant.md) · [Deutsch](README.de.md) · [Русский](README.ru.md)
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="https://raw.githubusercontent.com/lachlanchen/lachlanchen/main/figs/banner.png" alt="Lachlan Chen banner" width="960" />
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<img src="../logos/banner-opaque.png" alt="AgInTiFlow banner" width="960" />
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
# AgInTiFlow
|
|
12
|
+
|
|
13
|
+
AgInTiFlow ist AgInTis Agent für kontrollierte Browser- und Tool-Nutzung: Web-Automatisierung, persistente Chats, fortsetzbare Läufe und geschützte lokale Befehle.
|
|
14
|
+
|
|
15
|
+
## Überblick
|
|
16
|
+
|
|
17
|
+
| Bereich | Richtung |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| Kernschleife | Planen -> Tools nutzen -> Ereignisse loggen -> beenden oder fortsetzen |
|
|
20
|
+
| Browser | Playwright, Lazy-Start, Domain-Allowlist |
|
|
21
|
+
| Modelle | OpenAI-kompatibles Tool Calling mit OpenAI- und DeepSeek-Presets |
|
|
22
|
+
| Lokale Tools | Optionaler Shell-Zugriff mit Guardrails und Docker-Sandbox |
|
|
23
|
+
| Speicher | Sitzungsstatus, persistente Einstellungen, Chat-Fortsetzung |
|
|
24
|
+
|
|
25
|
+
## Schnellstart
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
cd /home/lachlan/ProjectsLFS/Agent/AgInTiFlow
|
|
29
|
+
npm install
|
|
30
|
+
npx playwright install chromium
|
|
31
|
+
npm run web
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Öffne `http://127.0.0.1:3210`.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
AGENT_PROVIDER=deepseek npm start -- "List this folder"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Sicherheit
|
|
41
|
+
|
|
42
|
+
- Passwörter und destruktive Aktionen sind standardmäßig blockiert.
|
|
43
|
+
- Die Shell ist optional und kann in Docker ohne Netzwerk laufen.
|
|
44
|
+
- Jede Tool-Anfrage und jedes Ergebnis wird unter `.sessions/` protokolliert.
|
|
45
|
+
|
|
46
|
+
## Entwicklung
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm run check
|
|
50
|
+
node tools/readme_prompt_tool.js agintiflow
|
|
51
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
[English](../README.md) · [العربية](README.ar.md) · [Español](README.es.md) · [Français](README.fr.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Tiếng Việt](README.vi.md) · [中文 (简体)](README.zh-Hans.md) · [中文(繁體)](README.zh-Hant.md) · [Deutsch](README.de.md) · [Русский](README.ru.md)
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="https://raw.githubusercontent.com/lachlanchen/lachlanchen/main/figs/banner.png" alt="Lachlan Chen banner" width="960" />
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<img src="../logos/banner-opaque.png" alt="AgInTiFlow banner" width="960" />
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
# AgInTiFlow
|
|
12
|
+
|
|
13
|
+
AgInTiFlow es el agente de AgInTi para controlar sitios web y herramientas locales con seguridad: automatización de navegador, conversaciones persistentes, ejecuciones reanudables y comandos protegidos.
|
|
14
|
+
|
|
15
|
+
## Resumen
|
|
16
|
+
|
|
17
|
+
| Área | Dirección |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| Bucle central | Planificar -> usar herramientas -> registrar eventos -> finalizar o reanudar |
|
|
20
|
+
| Navegador | Playwright, arranque bajo demanda, allowlist de dominios |
|
|
21
|
+
| Modelos | Tool calling compatible con OpenAI, con presets para OpenAI y DeepSeek |
|
|
22
|
+
| Herramientas locales | Shell opcional con guardrails y sandbox Docker |
|
|
23
|
+
| Memoria | Estado de sesión, configuración persistente y continuación de chat |
|
|
24
|
+
|
|
25
|
+
## Inicio rápido
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
cd /home/lachlan/ProjectsLFS/Agent/AgInTiFlow
|
|
29
|
+
npm install
|
|
30
|
+
npx playwright install chromium
|
|
31
|
+
npm run web
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Abre `http://127.0.0.1:3210`.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
AGENT_PROVIDER=deepseek npm start -- "List this folder"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Seguridad
|
|
41
|
+
|
|
42
|
+
- Las contraseñas y acciones destructivas están bloqueadas salvo activación explícita.
|
|
43
|
+
- El shell es opcional y puede ejecutarse dentro de Docker sin red.
|
|
44
|
+
- Cada solicitud de herramienta y resultado queda registrado en `.sessions/`.
|
|
45
|
+
|
|
46
|
+
## Desarrollo
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm run check
|
|
50
|
+
node tools/readme_prompt_tool.js agintiflow
|
|
51
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
[English](../README.md) · [العربية](README.ar.md) · [Español](README.es.md) · [Français](README.fr.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Tiếng Việt](README.vi.md) · [中文 (简体)](README.zh-Hans.md) · [中文(繁體)](README.zh-Hant.md) · [Deutsch](README.de.md) · [Русский](README.ru.md)
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="https://raw.githubusercontent.com/lachlanchen/lachlanchen/main/figs/banner.png" alt="Lachlan Chen banner" width="960" />
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<img src="../logos/banner-opaque.png" alt="AgInTiFlow banner" width="960" />
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
# AgInTiFlow
|
|
12
|
+
|
|
13
|
+
AgInTiFlow est l'agent d'AgInTi pour contrôler le navigateur et les outils locaux avec des garde-fous: automatisation web, conversations persistantes, exécutions reprenables et commandes locales protégées.
|
|
14
|
+
|
|
15
|
+
## Aperçu
|
|
16
|
+
|
|
17
|
+
| Domaine | Direction |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| Boucle centrale | Planifier -> utiliser les outils -> journaliser -> terminer ou reprendre |
|
|
20
|
+
| Navigateur | Playwright, démarrage paresseux, allowlist de domaines |
|
|
21
|
+
| Modèles | Tool calling compatible OpenAI, presets OpenAI et DeepSeek |
|
|
22
|
+
| Outils locaux | Shell optionnel avec garde-fous et sandbox Docker |
|
|
23
|
+
| Mémoire | Etat de session, préférences persistantes, conversation continue |
|
|
24
|
+
|
|
25
|
+
## Démarrage rapide
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
cd /home/lachlan/ProjectsLFS/Agent/AgInTiFlow
|
|
29
|
+
npm install
|
|
30
|
+
npx playwright install chromium
|
|
31
|
+
npm run web
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Ouvrez `http://127.0.0.1:3210`.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
AGENT_PROVIDER=deepseek npm start -- "List this folder"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Sécurité
|
|
41
|
+
|
|
42
|
+
- Les mots de passe et actions destructives sont bloqués sauf activation explicite.
|
|
43
|
+
- Le shell est optionnel et peut tourner dans Docker sans réseau.
|
|
44
|
+
- Chaque appel d'outil et résultat est enregistré dans `.sessions/`.
|
|
45
|
+
|
|
46
|
+
## Développement
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm run check
|
|
50
|
+
node tools/readme_prompt_tool.js agintiflow
|
|
51
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
[English](../README.md) · [العربية](README.ar.md) · [Español](README.es.md) · [Français](README.fr.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Tiếng Việt](README.vi.md) · [中文 (简体)](README.zh-Hans.md) · [中文(繁體)](README.zh-Hant.md) · [Deutsch](README.de.md) · [Русский](README.ru.md)
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="https://raw.githubusercontent.com/lachlanchen/lachlanchen/main/figs/banner.png" alt="Lachlan Chen banner" width="960" />
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<img src="../logos/banner-opaque.png" alt="AgInTiFlow banner" width="960" />
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
# AgInTiFlow
|
|
12
|
+
|
|
13
|
+
AgInTiFlow は、AgInTi のブラウザおよびローカルツール制御エージェントです。Web 自動化、永続チャット、再開可能な実行、安全なローカルコマンドを扱います。
|
|
14
|
+
|
|
15
|
+
## 概要
|
|
16
|
+
|
|
17
|
+
| 領域 | 方針 |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| 中核ループ | 計画 -> ツール実行 -> イベント記録 -> 完了または再開 |
|
|
20
|
+
| ブラウザ | Playwright、遅延起動、ドメイン allowlist |
|
|
21
|
+
| モデル | OpenAI 互換 tool calling、OpenAI / DeepSeek プリセット |
|
|
22
|
+
| ローカルツール | 任意の shell、guardrails、Docker sandbox |
|
|
23
|
+
| メモリ | セッション状態、永続設定、会話継続 |
|
|
24
|
+
|
|
25
|
+
## クイックスタート
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
cd /home/lachlan/ProjectsLFS/Agent/AgInTiFlow
|
|
29
|
+
npm install
|
|
30
|
+
npx playwright install chromium
|
|
31
|
+
npm run web
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
`http://127.0.0.1:3210` を開きます。
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
AGENT_PROVIDER=deepseek npm start -- "List this folder"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## 安全性
|
|
41
|
+
|
|
42
|
+
- パスワード入力と破壊的操作は明示的に有効化しない限りブロックされます。
|
|
43
|
+
- Shell は任意で、ネットワークなしの Docker 内でも実行できます。
|
|
44
|
+
- すべてのツール要求と結果は `.sessions/` に記録されます。
|
|
45
|
+
|
|
46
|
+
## 開発
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm run check
|
|
50
|
+
node tools/readme_prompt_tool.js agintiflow
|
|
51
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
[English](../README.md) · [العربية](README.ar.md) · [Español](README.es.md) · [Français](README.fr.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Tiếng Việt](README.vi.md) · [中文 (简体)](README.zh-Hans.md) · [中文(繁體)](README.zh-Hant.md) · [Deutsch](README.de.md) · [Русский](README.ru.md)
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="https://raw.githubusercontent.com/lachlanchen/lachlanchen/main/figs/banner.png" alt="Lachlan Chen banner" width="960" />
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<img src="../logos/banner-opaque.png" alt="AgInTiFlow banner" width="960" />
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
# AgInTiFlow
|
|
12
|
+
|
|
13
|
+
AgInTiFlow는 AgInTi의 브라우저 및 로컬 도구 제어 에이전트입니다. 웹 자동화, 지속 대화, 재개 가능한 실행, 보호된 로컬 명령을 지원합니다.
|
|
14
|
+
|
|
15
|
+
## 개요
|
|
16
|
+
|
|
17
|
+
| 영역 | 방향 |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| 핵심 루프 | 계획 -> 도구 사용 -> 이벤트 기록 -> 완료 또는 재개 |
|
|
20
|
+
| 브라우저 | Playwright, 지연 시작, 도메인 allowlist |
|
|
21
|
+
| 모델 | OpenAI 호환 tool calling, OpenAI / DeepSeek 프리셋 |
|
|
22
|
+
| 로컬 도구 | 선택적 shell, guardrails, Docker sandbox |
|
|
23
|
+
| 메모리 | 세션 상태, 지속 설정, 대화 이어가기 |
|
|
24
|
+
|
|
25
|
+
## 빠른 시작
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
cd /home/lachlan/ProjectsLFS/Agent/AgInTiFlow
|
|
29
|
+
npm install
|
|
30
|
+
npx playwright install chromium
|
|
31
|
+
npm run web
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
`http://127.0.0.1:3210` 을 여세요.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
AGENT_PROVIDER=deepseek npm start -- "List this folder"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## 안전
|
|
41
|
+
|
|
42
|
+
- 비밀번호 입력과 파괴적 동작은 명시적으로 켜지 않으면 차단됩니다.
|
|
43
|
+
- Shell은 선택 사항이며 네트워크 없는 Docker 컨테이너에서도 실행할 수 있습니다.
|
|
44
|
+
- 모든 도구 요청과 결과는 `.sessions/` 에 기록됩니다.
|
|
45
|
+
|
|
46
|
+
## 개발
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm run check
|
|
50
|
+
node tools/readme_prompt_tool.js agintiflow
|
|
51
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
[English](../README.md) · [العربية](README.ar.md) · [Español](README.es.md) · [Français](README.fr.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Tiếng Việt](README.vi.md) · [中文 (简体)](README.zh-Hans.md) · [中文(繁體)](README.zh-Hant.md) · [Deutsch](README.de.md) · [Русский](README.ru.md)
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="https://raw.githubusercontent.com/lachlanchen/lachlanchen/main/figs/banner.png" alt="Lachlan Chen banner" width="960" />
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<img src="../logos/banner-opaque.png" alt="AgInTiFlow banner" width="960" />
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
# AgInTiFlow
|
|
12
|
+
|
|
13
|
+
AgInTiFlow — агент AgInTi для управляемой работы с браузером и локальными инструментами: веб-автоматизация, постоянный чат, возобновляемые запуски и защищенные локальные команды.
|
|
14
|
+
|
|
15
|
+
## Обзор
|
|
16
|
+
|
|
17
|
+
| Область | Направление |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| Основной цикл | План -> инструменты -> журнал событий -> завершение или возобновление |
|
|
20
|
+
| Браузер | Playwright, ленивый запуск, allowlist доменов |
|
|
21
|
+
| Модели | OpenAI-совместимый tool calling, пресеты OpenAI и DeepSeek |
|
|
22
|
+
| Локальные инструменты | Опциональный shell, guardrails, Docker sandbox |
|
|
23
|
+
| Память | Состояние сессии, сохраненные настройки, продолжение чата |
|
|
24
|
+
|
|
25
|
+
## Быстрый старт
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
cd /home/lachlan/ProjectsLFS/Agent/AgInTiFlow
|
|
29
|
+
npm install
|
|
30
|
+
npx playwright install chromium
|
|
31
|
+
npm run web
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Откройте `http://127.0.0.1:3210`.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
AGENT_PROVIDER=deepseek npm start -- "List this folder"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Безопасность
|
|
41
|
+
|
|
42
|
+
- Пароли и разрушительные действия заблокированы без явного включения.
|
|
43
|
+
- Shell опционален и может выполняться в Docker без сети.
|
|
44
|
+
- Каждый запрос инструмента и результат пишется в `.sessions/`.
|
|
45
|
+
|
|
46
|
+
## Разработка
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm run check
|
|
50
|
+
node tools/readme_prompt_tool.js agintiflow
|
|
51
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
[English](../README.md) · [العربية](README.ar.md) · [Español](README.es.md) · [Français](README.fr.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Tiếng Việt](README.vi.md) · [中文 (简体)](README.zh-Hans.md) · [中文(繁體)](README.zh-Hant.md) · [Deutsch](README.de.md) · [Русский](README.ru.md)
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="https://raw.githubusercontent.com/lachlanchen/lachlanchen/main/figs/banner.png" alt="Lachlan Chen banner" width="960" />
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<img src="../logos/banner-opaque.png" alt="AgInTiFlow banner" width="960" />
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
# AgInTiFlow
|
|
12
|
+
|
|
13
|
+
AgInTiFlow là agent của AgInTi để điều khiển trình duyệt và công cụ cục bộ một cách có kiểm soát: tự động hóa web, hội thoại bền vững, phiên có thể tiếp tục và lệnh cục bộ được bảo vệ.
|
|
14
|
+
|
|
15
|
+
## Tổng quan
|
|
16
|
+
|
|
17
|
+
| Khu vực | Hướng |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| Vòng lặp chính | Lập kế hoạch -> dùng công cụ -> ghi sự kiện -> kết thúc hoặc tiếp tục |
|
|
20
|
+
| Trình duyệt | Playwright, khởi động khi cần, allowlist domain |
|
|
21
|
+
| Mô hình | Tool calling tương thích OpenAI, preset OpenAI và DeepSeek |
|
|
22
|
+
| Công cụ cục bộ | Shell tùy chọn, guardrails, Docker sandbox |
|
|
23
|
+
| Bộ nhớ | Trạng thái phiên, cài đặt bền vững, tiếp tục chat |
|
|
24
|
+
|
|
25
|
+
## Chạy nhanh
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
cd /home/lachlan/ProjectsLFS/Agent/AgInTiFlow
|
|
29
|
+
npm install
|
|
30
|
+
npx playwright install chromium
|
|
31
|
+
npm run web
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Mở `http://127.0.0.1:3210`.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
AGENT_PROVIDER=deepseek npm start -- "List this folder"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## An toàn
|
|
41
|
+
|
|
42
|
+
- Mật khẩu và hành động phá hủy bị chặn nếu chưa bật rõ ràng.
|
|
43
|
+
- Shell là tùy chọn và có thể chạy trong Docker không có mạng.
|
|
44
|
+
- Mọi yêu cầu công cụ và kết quả được ghi vào `.sessions/`.
|
|
45
|
+
|
|
46
|
+
## Phát triển
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm run check
|
|
50
|
+
node tools/readme_prompt_tool.js agintiflow
|
|
51
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
[English](../README.md) · [العربية](README.ar.md) · [Español](README.es.md) · [Français](README.fr.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Tiếng Việt](README.vi.md) · [中文 (简体)](README.zh-Hans.md) · [中文(繁體)](README.zh-Hant.md) · [Deutsch](README.de.md) · [Русский](README.ru.md)
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="https://raw.githubusercontent.com/lachlanchen/lachlanchen/main/figs/banner.png" alt="Lachlan Chen banner" width="960" />
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<img src="../logos/banner-opaque.png" alt="AgInTiFlow banner" width="960" />
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
# AgInTiFlow
|
|
12
|
+
|
|
13
|
+
AgInTiFlow 是 AgInTi 的浏览器与工具使用智能体,用于可控网站自动化、持久对话、可恢复运行,以及受保护的本地命令。
|
|
14
|
+
|
|
15
|
+
## 概览
|
|
16
|
+
|
|
17
|
+
| 领域 | 方向 |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| 核心循环 | 规划 -> 使用工具 -> 记录事件 -> 完成或恢复 |
|
|
20
|
+
| 浏览器 | Playwright、延迟启动、域名 allowlist |
|
|
21
|
+
| 模型 | OpenAI 兼容 tool calling,内置 OpenAI 与 DeepSeek 预设 |
|
|
22
|
+
| 本地工具 | 可选 shell、guardrails、Docker sandbox |
|
|
23
|
+
| 记忆 | 会话状态、持久设置、对话延续 |
|
|
24
|
+
|
|
25
|
+
## 快速开始
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
cd /home/lachlan/ProjectsLFS/Agent/AgInTiFlow
|
|
29
|
+
npm install
|
|
30
|
+
npx playwright install chromium
|
|
31
|
+
npm run web
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
打开 `http://127.0.0.1:3210`。
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
AGENT_PROVIDER=deepseek npm start -- "List this folder"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## 安全
|
|
41
|
+
|
|
42
|
+
- 默认阻止密码输入和破坏性动作。
|
|
43
|
+
- Shell 工具是可选的,也可以在无网络 Docker 容器中运行。
|
|
44
|
+
- 每次工具请求和结果都会记录到 `.sessions/`。
|
|
45
|
+
|
|
46
|
+
## 开发
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm run check
|
|
50
|
+
node tools/readme_prompt_tool.js agintiflow
|
|
51
|
+
```
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
[English](../README.md) · [العربية](README.ar.md) · [Español](README.es.md) · [Français](README.fr.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Tiếng Việt](README.vi.md) · [中文 (简体)](README.zh-Hans.md) · [中文(繁體)](README.zh-Hant.md) · [Deutsch](README.de.md) · [Русский](README.ru.md)
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="https://raw.githubusercontent.com/lachlanchen/lachlanchen/main/figs/banner.png" alt="Lachlan Chen banner" width="960" />
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<img src="../logos/banner-opaque.png" alt="AgInTiFlow banner" width="960" />
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
# AgInTiFlow
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+

|
|
15
|
+

|
|
16
|
+

|
|
17
|
+

|
|
18
|
+

|
|
19
|
+
|
|
20
|
+
AgInTiFlow 是 AgInTi 的瀏覽器與工具使用智能體,用於可控網站自動化、持久對話、可恢復執行,以及受防護的本地指令。
|
|
21
|
+
|
|
22
|
+
它適合需要 AI 代理執行工作的場景,但每個工具動作、日誌與會話狀態都必須可檢查、可追蹤、可恢復。
|
|
23
|
+
|
|
24
|
+
## 產品快照
|
|
25
|
+
|
|
26
|
+
| 領域 | 方向 |
|
|
27
|
+
| --- | --- |
|
|
28
|
+
| 核心循環 | Plan -> use tools -> log events -> finish or resume |
|
|
29
|
+
| 瀏覽器控制 | Playwright、延遲啟動瀏覽器、網域 allowlist |
|
|
30
|
+
| 模型層 | OpenAI 相容 tool calling,內建 OpenAI 與 DeepSeek 預設 |
|
|
31
|
+
| 本地工具 | 可選受防護 shell 指令,支援 Docker sandbox |
|
|
32
|
+
| 記憶 | 會話狀態、Web 設定保存、對話延續 |
|
|
33
|
+
| 操作者介面 | Provider 選擇、執行輸出、對話歷史 |
|
|
34
|
+
|
|
35
|
+
## 快速開始
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
cd /home/lachlan/ProjectsLFS/Agent/AgInTiFlow
|
|
39
|
+
npm install
|
|
40
|
+
npx playwright install chromium
|
|
41
|
+
npm run web
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
開啟 `http://127.0.0.1:3210`。
|
|
45
|
+
|
|
46
|
+
執行 CLI 任務:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
AGENT_PROVIDER=deepseek npm start -- "List this folder and summarize what each project is for"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
從指定網站開始:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npm start -- --start-url https://news.ycombinator.com "Summarize this page"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
恢復舊會話:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npm start -- --resume your-session-id
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Web UI
|
|
65
|
+
|
|
66
|
+
Web 介面包含:
|
|
67
|
+
|
|
68
|
+
- OpenAI / DeepSeek provider 下拉選單。
|
|
69
|
+
- 可編輯模型欄位,DeepSeek 可作為方便預設。
|
|
70
|
+
- Goal、start URL、allowed domains、working directory、max steps。
|
|
71
|
+
- Shell tool、Docker sandbox、headless browser、password typing、destructive actions 開關。
|
|
72
|
+
- 即時執行日誌,以及可延續的對話面板。
|
|
73
|
+
|
|
74
|
+
`Start URL` 只是建議值。只有當模型選擇瀏覽器工具時,瀏覽器才會啟動。
|
|
75
|
+
|
|
76
|
+
## 安全模型
|
|
77
|
+
|
|
78
|
+
AgInTiFlow 預設保守:
|
|
79
|
+
|
|
80
|
+
- 未明確啟用時禁止輸入密碼。
|
|
81
|
+
- 未明確啟用時禁止破壞性瀏覽器動作。
|
|
82
|
+
- 未啟用 shell tool 時禁止本地命令。
|
|
83
|
+
- Guarded shell mode 只允許少量常見檢查命令。
|
|
84
|
+
- Docker sandbox 會在無網路本地容器中執行 shell 命令。
|
|
85
|
+
- 所有工具請求與結果都會寫入結構化日誌。
|
|
86
|
+
|
|
87
|
+
## 設定
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
AGENT_PROVIDER=deepseek
|
|
91
|
+
LLM_MODEL=deepseek-chat
|
|
92
|
+
OPENAI_API_KEY=...
|
|
93
|
+
DEEPSEEK_API_KEY=...
|
|
94
|
+
MAX_STEPS=15
|
|
95
|
+
HEADLESS=true
|
|
96
|
+
ALLOWED_DOMAINS=news.ycombinator.com,github.com
|
|
97
|
+
ALLOW_SHELL_TOOL=false
|
|
98
|
+
USE_DOCKER_SANDBOX=false
|
|
99
|
+
DOCKER_SANDBOX_IMAGE=agintiflow-sandbox:latest
|
|
100
|
+
COMMAND_CWD=/home/lachlan/ProjectsLFS/Agent
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
預設值:
|
|
104
|
+
|
|
105
|
+
| Provider | API key | Base URL | Default model |
|
|
106
|
+
| --- | --- | --- | --- |
|
|
107
|
+
| OpenAI | `OPENAI_API_KEY` | `https://api.openai.com/v1` | `gpt-5.4-mini` |
|
|
108
|
+
| DeepSeek | `DEEPSEEK_API_KEY` | `https://api.deepseek.com/v1` | `deepseek-chat` |
|
|
109
|
+
|
|
110
|
+
## Docker Bootstrap
|
|
111
|
+
|
|
112
|
+
Ubuntu helper:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
./scripts/install-docker-ubuntu.sh
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
如果以 `root` 執行,並要讓一般使用者可不透過 `sudo` 使用 Docker:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
DOCKER_TARGET_USER=lachlan ./scripts/install-docker-ubuntu.sh
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
完成後請開啟新的 login shell,或執行 `newgrp docker`,再測試非 root Docker 權限。
|
|
125
|
+
|
|
126
|
+
## 執行產物
|
|
127
|
+
|
|
128
|
+
每次 run 會在 `.sessions/<session-id>/` 保存狀態:
|
|
129
|
+
|
|
130
|
+
| File | Purpose |
|
|
131
|
+
| --- | --- |
|
|
132
|
+
| `state.json` | 可恢復的模型與工具狀態 |
|
|
133
|
+
| `plan.md` | 執行計畫 |
|
|
134
|
+
| `events.jsonl` | 結構化事件日誌 |
|
|
135
|
+
| `storage-state.json` | 瀏覽器 session 保存 |
|
|
136
|
+
| `artifacts/step-XXX.png` | 截圖 |
|
|
137
|
+
| `artifacts/step-XXX.snapshot.json` | DOM snapshot |
|
|
138
|
+
|
|
139
|
+
## 專案結構
|
|
140
|
+
|
|
141
|
+
```text
|
|
142
|
+
AgInTiFlow/
|
|
143
|
+
├── public/ # Web UI
|
|
144
|
+
├── src/ # Agent runtime, tools, guardrails, storage
|
|
145
|
+
├── docker/ # Shell sandbox image
|
|
146
|
+
├── scripts/ # Docker bootstrap helper
|
|
147
|
+
├── logos/ # Brand assets and crop notes
|
|
148
|
+
├── references/ # Design philosophy and research notes
|
|
149
|
+
├── tools/ # Reusable project documentation helpers
|
|
150
|
+
├── run.js # CLI entrypoint
|
|
151
|
+
└── web.js # Express web server
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## 開發
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
npm run check
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
此檢查會驗證 CLI、Web server 與 runtime modules 的 JavaScript 語法。
|
|
161
|
+
|
|
162
|
+
## README Prompt Tool
|
|
163
|
+
|
|
164
|
+
本 repo 包含一個小型 prompt helper,讓 README 潤色流程可重複:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
node tools/readme_prompt_tool.js agintiflow
|
|
168
|
+
node tools/readme_prompt_tool.js aginti-landing
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
它描述本文件使用的風格:簡潔 overview、完整語言連結、產品訊號、快速開始、安全說明,以及多語 README 目標。
|
|
Binary file
|
package/logos/logo.png
ADDED
|
Binary file
|
package/package.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lazyingart/agintiflow",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "AgInTiFlow is a resumable Playwright website-control agent with OpenAI-compatible tool calling.",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"homepage": "https://github.com/lazyingart/AgInTiFlow#readme",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/lazyingart/AgInTiFlow.git"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/lazyingart/AgInTiFlow/issues"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"agent",
|
|
17
|
+
"automation",
|
|
18
|
+
"browser",
|
|
19
|
+
"playwright",
|
|
20
|
+
"deepseek",
|
|
21
|
+
"sandbox",
|
|
22
|
+
"cli"
|
|
23
|
+
],
|
|
24
|
+
"engines": {
|
|
25
|
+
"node": ">=22"
|
|
26
|
+
},
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public"
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"AGENTS.md",
|
|
32
|
+
"LICENSE",
|
|
33
|
+
"README.md",
|
|
34
|
+
"bin/",
|
|
35
|
+
"docs/",
|
|
36
|
+
"docker/",
|
|
37
|
+
"i18n/",
|
|
38
|
+
"logos/banner-opaque.png",
|
|
39
|
+
"logos/logo.png",
|
|
40
|
+
"public/",
|
|
41
|
+
"scripts/install-docker-ubuntu.sh",
|
|
42
|
+
"src/",
|
|
43
|
+
"run.js",
|
|
44
|
+
"web.js"
|
|
45
|
+
],
|
|
46
|
+
"bin": {
|
|
47
|
+
"aginti": "bin/aginti-cli.js",
|
|
48
|
+
"aginti-cli": "bin/aginti-cli.js"
|
|
49
|
+
},
|
|
50
|
+
"scripts": {
|
|
51
|
+
"start": "node run.js",
|
|
52
|
+
"web": "node web.js",
|
|
53
|
+
"check": "node --check run.js && node --check web.js && node --check bin/aginti-cli.js && node --check src/*.js",
|
|
54
|
+
"test": "npm run check",
|
|
55
|
+
"pack:dry-run": "npm pack --dry-run"
|
|
56
|
+
},
|
|
57
|
+
"dependencies": {
|
|
58
|
+
"express": "^5.1.0",
|
|
59
|
+
"openai": "^6.3.0",
|
|
60
|
+
"playwright": "^1.55.0"
|
|
61
|
+
}
|
|
62
|
+
}
|