このプロジェクトについて
attiniは、人間の制御を維持しながらワークスペース内で自律的に動作するように設計されたコマンドラインコーディングエージェントです。ストリーミング対応のHTTP/1.1 + TLSを介してDeepSeek Chat Completions APIと直接対話します。エージェントはファイルの一覧表示と読み取り、コードベースの検索、パッチの適用、コマンドの実行が可能です。git追跡ファイルへの可逆的な変更はプロンプトなしで適用されますが、新規ファイルの作成、非追跡ファイルの変更、許可リスト外のコマンド実行などの影響の大きいアクションはプレビューとして表示され、明示的な承認が必要です。
このプロジェクトはSans I/O設計に基づいています。コアのパーサー、データ型、ステートマシンはI/Oを一切行わず、非同期トランスポート、TUI、ファイルシステム統合は周辺モジュールに配置されています。この分離により、テスト容易性と保守性が向上します。
主な機能は以下の通りです:
- **読み取り専用ツール**: ワークスペース探索用の`list`、`read`、`search`。
- **パッチツール**: 追加・更新編集を適用します。追跡ファイルへの可逆的な変更は自動適用されますが、新規ファイル、非追跡変更、ワークスペース外への書き込みには承認が必要です。
- **コマンドツール**: 権限制御下でシェルコマンドを実行し、タイムアウトを設定可能です。
- **承認システム**: `attini approve`を使用して停止したセッションを再開し、保留中のツール呼び出しを承認し、`--grant`で永続的な権限を付与できます。
- **権限**: ワークスペースおよびセッションレベルのルール用のプレーンテキストJSONLファイル(`permissions.jsonl`)。手動で編集可能です。
- **セッション管理**: セッションは`.attini/<NAME>/`ディレクトリに保存され、追記専用のJSONL会話ログ、スクラッチパッド、ロックファイルが含まれます。`attini status`と`attini ask`で検査できます。
- **環境変数**: APIキー、ベースURL、セッション名、モデル、温度、タイムアウトなどを設定できます。
設計哲学は、自律性よりも制御可能性と理解可能性を重視しています。コンテキストは明示的に要求された場合(プロンプトまたは`--stdin`経由)にのみ追加され、暗黙のスキルや命令ファイルの検出、サブエージェント、プランモードはありません。エージェントは推測するのではなく、リスクの高い操作を拒否します。
意図的にサポートされていない機能には、メモリ永続化、サブエージェント委任、`AGENTS.md`スキャン、自動スキル読み込み、プランモード、既存機能を複製する便利ツールが含まれます。これはエージェントを明示的かつ安全に保つための意図的な方針です。
要件:Rust 1.93以上、`DEEPSEEK_API_KEY`環境変数、OpenAI互換エンドポイント用のオプションの`DEEPSEEK_BASE_URL`。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.